From ed02b0a7030c67216edcda6c240723863cbba4c2 Mon Sep 17 00:00:00 2001 From: MIchael Langhammer Date: Tue, 22 Dec 2015 20:54:18 +0100 Subject: [PATCH] also included Benjamins change for JavaParser (https://github.com/DevBoost/JaMoPP/issues/14) --- .../java/resource/java/mopp/JavaParser.java | 46329 ++++++++++++++++ 1 file changed, 46329 insertions(+) create mode 100644 Core/org.emftext.language.java.resource.java/src/org/emftext/language/java/resource/java/mopp/JavaParser.java diff --git a/Core/org.emftext.language.java.resource.java/src/org/emftext/language/java/resource/java/mopp/JavaParser.java b/Core/org.emftext.language.java.resource.java/src/org/emftext/language/java/resource/java/mopp/JavaParser.java new file mode 100644 index 00000000..598f4d2a --- /dev/null +++ b/Core/org.emftext.language.java.resource.java/src/org/emftext/language/java/resource/java/mopp/JavaParser.java @@ -0,0 +1,46329 @@ +// $ANTLR 3.4 + + package org.emftext.language.java.resource.java.mopp; + + import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.antlr.runtime3_4_0.ANTLRInputStream; +import org.antlr.runtime3_4_0.BaseRecognizer; +import org.antlr.runtime3_4_0.BitSet; +import org.antlr.runtime3_4_0.CommonToken; +import org.antlr.runtime3_4_0.CommonTokenStream; +import org.antlr.runtime3_4_0.DFA; +import org.antlr.runtime3_4_0.EarlyExitException; +import org.antlr.runtime3_4_0.IntStream; +import org.antlr.runtime3_4_0.Lexer; +import org.antlr.runtime3_4_0.NoViableAltException; +import org.antlr.runtime3_4_0.RecognitionException; +import org.antlr.runtime3_4_0.RecognizerSharedState; +import org.antlr.runtime3_4_0.Token; +import org.antlr.runtime3_4_0.TokenStream; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EReference; +import org.emftext.language.java.resource.java.grammar.JavaContainmentTrace; +import org.emftext.language.java.resource.java.grammar.JavaFollowSetProvider; + +@SuppressWarnings({"all", "warnings", "unchecked"}) +public class JavaParser extends JavaANTLRParserBase { + public static final String[] tokenNames = new String[] { + "", "", "", "", "BOOLEAN_LITERAL", "CHARACTER_LITERAL", "DECIMAL_DOUBLE_LITERAL", "DECIMAL_FLOAT_LITERAL", "DECIMAL_INTEGER_LITERAL", "DECIMAL_LONG_LITERAL", "HEX_DOUBLE_LITERAL", "HEX_FLOAT_LITERAL", "HEX_INTEGER_LITERAL", "HEX_LONG_LITERAL", "IDENTIFIER", "ML_COMMENT", "OCTAL_INTEGER_LITERAL", "OCTAL_LONG_LITERAL", "SL_COMMENT", "STRING_LITERAL", "WHITESPACE", "'!'", "'!='", "'&&'", "'&'", "'&='", "'('", "')'", "'*'", "'*='", "'+'", "'++'", "'+='", "','", "'-'", "'--'", "'-='", "'.'", "'...'", "'/'", "'/='", "':'", "';'", "'<'", "'='", "'=='", "'>'", "'?'", "'@'", "'['", "'\\u001a'", "'\\u0025'", "'\\u0025='", "']'", "'^'", "'^='", "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", "'case'", "'catch'", "'char'", "'class'", "'continue'", "'default'", "'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'", "'float'", "'for'", "'if'", "'implements'", "'import'", "'instanceof'", "'int'", "'interface'", "'long'", "'native'", "'new'", "'null'", "'package'", "'private'", "'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'", "'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'", "'transient'", "'try'", "'void'", "'volatile'", "'while'", "'{'", "'|'", "'|='", "'||'", "'}'", "'~'" + }; + + public static final int EOF=-1; + public static final int T__21=21; + public static final int T__22=22; + public static final int T__23=23; + public static final int T__24=24; + public static final int T__25=25; + public static final int T__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__30=30; + public static final int T__31=31; + public static final int T__32=32; + 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__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; + public static final int T__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__48=48; + public static final int T__49=49; + public static final int T__50=50; + public static final int T__51=51; + public static final int T__52=52; + public static final int T__53=53; + public static final int T__54=54; + public static final int T__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__59=59; + public static final int T__60=60; + public static final int T__61=61; + public static final int T__62=62; + public static final int T__63=63; + public static final int T__64=64; + public static final int T__65=65; + public static final int T__66=66; + public static final int T__67=67; + public static final int T__68=68; + public static final int T__69=69; + 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 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__77=77; + public static final int T__78=78; + public static final int T__79=79; + public static final int T__80=80; + public static final int T__81=81; + public static final int T__82=82; + public static final int T__83=83; + 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 static final int T__88=88; + public static final int T__89=89; + public static final int T__90=90; + public static final int T__91=91; + public static final int T__92=92; + public static final int T__93=93; + public static final int T__94=94; + 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__99=99; + public static final int T__100=100; + public static final int T__101=101; + public static final int T__102=102; + public static final int T__103=103; + public static final int T__104=104; + public static final int T__105=105; + public static final int T__106=106; + public static final int T__107=107; + public static final int T__108=108; + public static final int T__109=109; + public static final int T__110=110; + public static final int BOOLEAN_LITERAL=4; + public static final int CHARACTER_LITERAL=5; + public static final int DECIMAL_DOUBLE_LITERAL=6; + public static final int DECIMAL_FLOAT_LITERAL=7; + public static final int DECIMAL_INTEGER_LITERAL=8; + public static final int DECIMAL_LONG_LITERAL=9; + public static final int HEX_DOUBLE_LITERAL=10; + public static final int HEX_FLOAT_LITERAL=11; + public static final int HEX_INTEGER_LITERAL=12; + public static final int HEX_LONG_LITERAL=13; + public static final int IDENTIFIER=14; + public static final int ML_COMMENT=15; + public static final int OCTAL_INTEGER_LITERAL=16; + public static final int OCTAL_LONG_LITERAL=17; + public static final int SL_COMMENT=18; + public static final int STRING_LITERAL=19; + public static final int WHITESPACE=20; + + // delegates + public JavaANTLRParserBase[] getDelegates() { + return new JavaANTLRParserBase[] {}; + } + + // delegators + + + public JavaParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public JavaParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + this.state.initializeRuleMemo(541 + 1); + + + } + + public String[] getTokenNames() { return JavaParser.tokenNames; } + public String getGrammarFileName() { return "Java.g"; } + + + private org.emftext.language.java.resource.java.IJavaTokenResolverFactory tokenResolverFactory = new org.emftext.language.java.resource.java.mopp.JavaTokenResolverFactory(); + + /** + * the index of the last token that was handled by collectHiddenTokens() + */ + private int lastPosition; + + /** + * A flag that indicates whether the parser should remember all expected elements. + * This flag is set to true when using the parse for code completion. Otherwise it + * is set to false. + */ + private boolean rememberExpectedElements = false; + + private Object parseToIndexTypeObject; + private int lastTokenIndex = 0; + + /** + * A list of expected elements the were collected while parsing the input stream. + * This list is only filled if rememberExpectedElements is set to + * true. + */ + private List expectedElements = new ArrayList(); + + private int mismatchedTokenRecoveryTries = 0; + /** + * A helper list to allow a lexer to pass errors to its parser + */ + protected List lexerExceptions = Collections.synchronizedList(new ArrayList()); + + /** + * Another helper list to allow a lexer to pass positions of errors to its parser + */ + protected List lexerExceptionPositions = Collections.synchronizedList(new ArrayList()); + + /** + * A stack for incomplete objects. This stack is used filled when the parser is + * used for code completion. Whenever the parser starts to read an object it is + * pushed on the stack. Once the element was parser completely it is popped from + * the stack. + */ + List incompleteObjects = new ArrayList(); + + private int stopIncludingHiddenTokens; + private int stopExcludingHiddenTokens; + private int tokenIndexOfLastCompleteElement; + + private int expectedElementsIndexOfLastCompleteElement; + + /** + * The offset indicating the cursor position when the parser is used for code + * completion by calling parseToExpectedElements(). + */ + private int cursorOffset; + + /** + * The offset of the first hidden token of the last expected element. This offset + * is used to discard expected elements, which are not needed for code completion. + */ + private int lastStartIncludingHidden; + + private org.emftext.language.java.resource.java.IJavaLocationMap locationMap; + + private org.emftext.language.java.resource.java.mopp.JavaSyntaxErrorMessageConverter syntaxErrorMessageConverter = new org.emftext.language.java.resource.java.mopp.JavaSyntaxErrorMessageConverter(tokenNames); + + @Override + public void reportError(RecognitionException re) { + addErrorToResource(syntaxErrorMessageConverter.translateParseError(re)); + } + + protected void addErrorToResource(final String errorMessage, final int column, final int line, final int startIndex, final int stopIndex) { + postParseCommands.add(new org.emftext.language.java.resource.java.IJavaCommand() { + public boolean execute(org.emftext.language.java.resource.java.IJavaTextResource resource) { + if (resource == null) { + // the resource can be null if the parser is used for code completion + return true; + } + resource.addProblem(new org.emftext.language.java.resource.java.IJavaProblem() { + public org.emftext.language.java.resource.java.JavaEProblemSeverity getSeverity() { + return org.emftext.language.java.resource.java.JavaEProblemSeverity.ERROR; + } + public org.emftext.language.java.resource.java.JavaEProblemType getType() { + return org.emftext.language.java.resource.java.JavaEProblemType.SYNTAX_ERROR; + } + public String getMessage() { + return errorMessage; + } + public Collection getQuickFixes() { + return null; + } + }, column, line, startIndex, stopIndex); + return true; + } + }); + } + + protected void addErrorToResource(org.emftext.language.java.resource.java.mopp.JavaLocalizedMessage message) { + if (message == null) { + return; + } + addErrorToResource(message.getMessage(), message.getColumn(), message.getLine(), message.getCharStart(), message.getCharEnd()); + } + + /** + * The statically initialized cache for containment traces.
+ * The initialization makes use of the 1:1 relationship between expectation IDs and defining EClasses.
+ * The cache allows to significantly reduces the number of instantiated JavaContainmentTrace objects. + * + */ + private static LinkedHashMap containmentTraceCache = new LinkedHashMap(); + static { + for(int index = 0; index < JavaExpectationConstants.EXPECTATIONS.length; index++) { + int[] ids = JavaExpectationConstants.EXPECTATIONS[index]; + JavaContainedFeature[] containmentFeatures = new JavaContainedFeature[ids.length - 2]; + for (int i = 2; i < ids.length; i++) { + containmentFeatures[i - 2] = JavaFollowSetProvider.LINKS[ids[i]]; + } + + EClass eClass = null; + if (containmentFeatures.length > 0) { + org.eclipse.emf.ecore.EStructuralFeature feature = containmentFeatures[containmentFeatures.length - 1].getFeature(); + eClass = feature.getEContainingClass(); + } + + JavaContainmentTrace containmentTrace = new JavaContainmentTrace(eClass, containmentFeatures); + containmentTraceCache.put(index, containmentTrace); + } + } + + public void addExpectedElement(int expectationId) { + if (!this.rememberExpectedElements) { + return; + } + int[] ids = JavaExpectationConstants.EXPECTATIONS[expectationId]; + int terminalID = ids[0]; + int followSetID = ids[1]; + org.emftext.language.java.resource.java.IJavaExpectedElement terminal = org.emftext.language.java.resource.java.grammar.JavaFollowSetProvider.TERMINALS[terminalID]; + JavaContainmentTrace containmentTrace = containmentTraceCache.get(expectationId); + org.eclipse.emf.ecore.EObject container = getLastIncompleteElement(); + org.emftext.language.java.resource.java.mopp.JavaExpectedTerminal expectedElement = new org.emftext.language.java.resource.java.mopp.JavaExpectedTerminal(container, terminal, followSetID, containmentTrace); + setPosition(expectedElement, input.index()); + int startIncludingHiddenTokens = expectedElement.getStartIncludingHiddenTokens(); + if (lastStartIncludingHidden >= 0 && lastStartIncludingHidden < startIncludingHiddenTokens && cursorOffset > startIncludingHiddenTokens) { + // clear list of expected elements + this.expectedElements.clear(); + this.expectedElementsIndexOfLastCompleteElement = 0; + } + lastStartIncludingHidden = startIncludingHiddenTokens; + this.expectedElements.add(expectedElement); + } + + protected void collectHiddenTokens(EObject element) { + } + + protected void copyLocalizationInfos(final EObject source, final EObject target) { + if (disableLocationMap) { + return; + } + final org.emftext.language.java.resource.java.IJavaLocationMap locationMap = this.locationMap; + if (locationMap == null) { + // the locationMap can be null if the parser is used for code completion + return; + } + postParseCommands.add(new org.emftext.language.java.resource.java.IJavaCommand() { + public boolean execute(org.emftext.language.java.resource.java.IJavaTextResource resource) { + locationMap.setCharStart(target, locationMap.getCharStart(source)); + locationMap.setCharEnd(target, locationMap.getCharEnd(source)); + locationMap.setColumn(target, locationMap.getColumn(source)); + locationMap.setLine(target, locationMap.getLine(source)); + return true; + } + }); + } + + protected void copyLocalizationInfos(final CommonToken source, final EObject target) { + if (disableLocationMap) { + return; + } + final org.emftext.language.java.resource.java.IJavaLocationMap locationMap = this.locationMap; + if (locationMap == null) { + // the locationMap can be null if the parser is used for code completion + return; + } + postParseCommands.add(new org.emftext.language.java.resource.java.IJavaCommand() { + public boolean execute(org.emftext.language.java.resource.java.IJavaTextResource resource) { + if (source == null) { + return true; + } + locationMap.setCharStart(target, source.getStartIndex()); + locationMap.setCharEnd(target, source.getStopIndex()); + locationMap.setColumn(target, source.getCharPositionInLine()); + locationMap.setLine(target, source.getLine()); + return true; + } + }); + } + + /** + * Sets the end character index and the last line for the given object in the + * location map. + */ + protected void setLocalizationEnd(Collection> postParseCommands , final EObject object, final int endChar, final int endLine) { + if (disableLocationMap) { + return; + } + final org.emftext.language.java.resource.java.IJavaLocationMap locationMap = this.locationMap; + if (locationMap == null) { + // the locationMap can be null if the parser is used for code completion + return; + } + postParseCommands.add(new org.emftext.language.java.resource.java.IJavaCommand() { + public boolean execute(org.emftext.language.java.resource.java.IJavaTextResource resource) { + locationMap.setCharEnd(object, endChar); + locationMap.setLine(object, endLine); + return true; + } + }); + } + + public org.emftext.language.java.resource.java.IJavaTextParser createInstance(InputStream actualInputStream, String encoding) { + try { + if (encoding == null) { + return new JavaParser(new CommonTokenStream(new JavaLexer(new ANTLRInputStream(actualInputStream)))); + } else { + return new JavaParser(new CommonTokenStream(new JavaLexer(new ANTLRInputStream(actualInputStream, encoding)))); + } + } catch (IOException e) { + new org.emftext.language.java.resource.java.util.JavaRuntimeUtil().logError("Error while creating parser.", e); + return null; + } + } + + /** + * This default constructor is only used to call createInstance() on it. + */ + public JavaParser() { + super(null); + } + + protected EObject doParse() throws RecognitionException { + this.lastPosition = 0; + // required because the lexer class can not be subclassed + ((JavaLexer) getTokenStream().getTokenSource()).lexerExceptions = lexerExceptions; + ((JavaLexer) getTokenStream().getTokenSource()).lexerExceptionPositions = lexerExceptionPositions; + Object typeObject = getTypeObject(); + if (typeObject == null) { + return start(); + } else if (typeObject instanceof EClass) { + EClass type = (EClass) typeObject; + if (type.getInstanceClass() == org.emftext.language.java.containers.EmptyModel.class) { + return parse_org_emftext_language_java_containers_EmptyModel(); + } + if (type.getInstanceClass() == org.emftext.language.java.containers.Package.class) { + return parse_org_emftext_language_java_containers_Package(); + } + if (type.getInstanceClass() == org.emftext.language.java.containers.CompilationUnit.class) { + return parse_org_emftext_language_java_containers_CompilationUnit(); + } + if (type.getInstanceClass() == org.emftext.language.java.imports.ClassifierImport.class) { + return parse_org_emftext_language_java_imports_ClassifierImport(); + } + if (type.getInstanceClass() == org.emftext.language.java.imports.PackageImport.class) { + return parse_org_emftext_language_java_imports_PackageImport(); + } + if (type.getInstanceClass() == org.emftext.language.java.imports.StaticMemberImport.class) { + return parse_org_emftext_language_java_imports_StaticMemberImport(); + } + if (type.getInstanceClass() == org.emftext.language.java.imports.StaticClassifierImport.class) { + return parse_org_emftext_language_java_imports_StaticClassifierImport(); + } + if (type.getInstanceClass() == org.emftext.language.java.classifiers.Class.class) { + return parse_org_emftext_language_java_classifiers_Class(); + } + if (type.getInstanceClass() == org.emftext.language.java.classifiers.AnonymousClass.class) { + return parse_org_emftext_language_java_classifiers_AnonymousClass(); + } + if (type.getInstanceClass() == org.emftext.language.java.classifiers.Interface.class) { + return parse_org_emftext_language_java_classifiers_Interface(); + } + if (type.getInstanceClass() == org.emftext.language.java.classifiers.Enumeration.class) { + return parse_org_emftext_language_java_classifiers_Enumeration(); + } + if (type.getInstanceClass() == org.emftext.language.java.classifiers.Annotation.class) { + return parse_org_emftext_language_java_classifiers_Annotation(); + } + if (type.getInstanceClass() == org.emftext.language.java.annotations.AnnotationInstance.class) { + return parse_org_emftext_language_java_annotations_AnnotationInstance(); + } + if (type.getInstanceClass() == org.emftext.language.java.annotations.SingleAnnotationParameter.class) { + return parse_org_emftext_language_java_annotations_SingleAnnotationParameter(); + } + if (type.getInstanceClass() == org.emftext.language.java.annotations.AnnotationParameterList.class) { + return parse_org_emftext_language_java_annotations_AnnotationParameterList(); + } + if (type.getInstanceClass() == org.emftext.language.java.annotations.AnnotationAttributeSetting.class) { + return parse_org_emftext_language_java_annotations_AnnotationAttributeSetting(); + } + if (type.getInstanceClass() == org.emftext.language.java.generics.TypeParameter.class) { + return parse_org_emftext_language_java_generics_TypeParameter(); + } + if (type.getInstanceClass() == org.emftext.language.java.members.EnumConstant.class) { + return parse_org_emftext_language_java_members_EnumConstant(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.Block.class) { + return parse_org_emftext_language_java_statements_Block(); + } + if (type.getInstanceClass() == org.emftext.language.java.members.Constructor.class) { + return parse_org_emftext_language_java_members_Constructor(); + } + if (type.getInstanceClass() == org.emftext.language.java.members.InterfaceMethod.class) { + return parse_org_emftext_language_java_members_InterfaceMethod(); + } + if (type.getInstanceClass() == org.emftext.language.java.members.ClassMethod.class) { + return parse_org_emftext_language_java_members_ClassMethod(); + } + if (type.getInstanceClass() == org.emftext.language.java.annotations.AnnotationAttribute.class) { + return parse_org_emftext_language_java_annotations_AnnotationAttribute(); + } + if (type.getInstanceClass() == org.emftext.language.java.parameters.OrdinaryParameter.class) { + return parse_org_emftext_language_java_parameters_OrdinaryParameter(); + } + if (type.getInstanceClass() == org.emftext.language.java.parameters.VariableLengthParameter.class) { + return parse_org_emftext_language_java_parameters_VariableLengthParameter(); + } + if (type.getInstanceClass() == org.emftext.language.java.variables.LocalVariable.class) { + return parse_org_emftext_language_java_variables_LocalVariable(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.LocalVariableStatement.class) { + return parse_org_emftext_language_java_statements_LocalVariableStatement(); + } + if (type.getInstanceClass() == org.emftext.language.java.variables.AdditionalLocalVariable.class) { + return parse_org_emftext_language_java_variables_AdditionalLocalVariable(); + } + if (type.getInstanceClass() == org.emftext.language.java.members.Field.class) { + return parse_org_emftext_language_java_members_Field(); + } + if (type.getInstanceClass() == org.emftext.language.java.members.AdditionalField.class) { + return parse_org_emftext_language_java_members_AdditionalField(); + } + if (type.getInstanceClass() == org.emftext.language.java.members.EmptyMember.class) { + return parse_org_emftext_language_java_members_EmptyMember(); + } + if (type.getInstanceClass() == org.emftext.language.java.instantiations.NewConstructorCall.class) { + return parse_org_emftext_language_java_instantiations_NewConstructorCall(); + } + if (type.getInstanceClass() == org.emftext.language.java.instantiations.ExplicitConstructorCall.class) { + return parse_org_emftext_language_java_instantiations_ExplicitConstructorCall(); + } + if (type.getInstanceClass() == org.emftext.language.java.arrays.ArrayInstantiationByValuesTyped.class) { + return parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped(); + } + if (type.getInstanceClass() == org.emftext.language.java.arrays.ArrayInstantiationByValuesUntyped.class) { + return parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped(); + } + if (type.getInstanceClass() == org.emftext.language.java.arrays.ArrayInstantiationBySize.class) { + return parse_org_emftext_language_java_arrays_ArrayInstantiationBySize(); + } + if (type.getInstanceClass() == org.emftext.language.java.arrays.ArrayInitializer.class) { + return parse_org_emftext_language_java_arrays_ArrayInitializer(); + } + if (type.getInstanceClass() == org.emftext.language.java.arrays.ArraySelector.class) { + return parse_org_emftext_language_java_arrays_ArraySelector(); + } + if (type.getInstanceClass() == org.emftext.language.java.types.NamespaceClassifierReference.class) { + return parse_org_emftext_language_java_types_NamespaceClassifierReference(); + } + if (type.getInstanceClass() == org.emftext.language.java.types.ClassifierReference.class) { + return parse_org_emftext_language_java_types_ClassifierReference(); + } + if (type.getInstanceClass() == org.emftext.language.java.references.MethodCall.class) { + return parse_org_emftext_language_java_references_MethodCall(); + } + if (type.getInstanceClass() == org.emftext.language.java.references.IdentifierReference.class) { + return parse_org_emftext_language_java_references_IdentifierReference(); + } + if (type.getInstanceClass() == org.emftext.language.java.references.ReflectiveClassReference.class) { + return parse_org_emftext_language_java_references_ReflectiveClassReference(); + } + if (type.getInstanceClass() == org.emftext.language.java.references.SelfReference.class) { + return parse_org_emftext_language_java_references_SelfReference(); + } + if (type.getInstanceClass() == org.emftext.language.java.references.PrimitiveTypeReference.class) { + return parse_org_emftext_language_java_references_PrimitiveTypeReference(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.This.class) { + return parse_org_emftext_language_java_literals_This(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.Super.class) { + return parse_org_emftext_language_java_literals_Super(); + } + if (type.getInstanceClass() == org.emftext.language.java.references.StringReference.class) { + return parse_org_emftext_language_java_references_StringReference(); + } + if (type.getInstanceClass() == org.emftext.language.java.generics.QualifiedTypeArgument.class) { + return parse_org_emftext_language_java_generics_QualifiedTypeArgument(); + } + if (type.getInstanceClass() == org.emftext.language.java.generics.UnknownTypeArgument.class) { + return parse_org_emftext_language_java_generics_UnknownTypeArgument(); + } + if (type.getInstanceClass() == org.emftext.language.java.generics.ExtendsTypeArgument.class) { + return parse_org_emftext_language_java_generics_ExtendsTypeArgument(); + } + if (type.getInstanceClass() == org.emftext.language.java.generics.SuperTypeArgument.class) { + return parse_org_emftext_language_java_generics_SuperTypeArgument(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.Assert.class) { + return parse_org_emftext_language_java_statements_Assert(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.Condition.class) { + return parse_org_emftext_language_java_statements_Condition(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.ForLoop.class) { + return parse_org_emftext_language_java_statements_ForLoop(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.ForEachLoop.class) { + return parse_org_emftext_language_java_statements_ForEachLoop(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.WhileLoop.class) { + return parse_org_emftext_language_java_statements_WhileLoop(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.DoWhileLoop.class) { + return parse_org_emftext_language_java_statements_DoWhileLoop(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.EmptyStatement.class) { + return parse_org_emftext_language_java_statements_EmptyStatement(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.SynchronizedBlock.class) { + return parse_org_emftext_language_java_statements_SynchronizedBlock(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.TryBlock.class) { + return parse_org_emftext_language_java_statements_TryBlock(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.CatchBlock.class) { + return parse_org_emftext_language_java_statements_CatchBlock(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.Switch.class) { + return parse_org_emftext_language_java_statements_Switch(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.NormalSwitchCase.class) { + return parse_org_emftext_language_java_statements_NormalSwitchCase(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.DefaultSwitchCase.class) { + return parse_org_emftext_language_java_statements_DefaultSwitchCase(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.Return.class) { + return parse_org_emftext_language_java_statements_Return(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.Throw.class) { + return parse_org_emftext_language_java_statements_Throw(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.Break.class) { + return parse_org_emftext_language_java_statements_Break(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.Continue.class) { + return parse_org_emftext_language_java_statements_Continue(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.JumpLabel.class) { + return parse_org_emftext_language_java_statements_JumpLabel(); + } + if (type.getInstanceClass() == org.emftext.language.java.statements.ExpressionStatement.class) { + return parse_org_emftext_language_java_statements_ExpressionStatement(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.ExpressionList.class) { + return parse_org_emftext_language_java_expressions_ExpressionList(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.AssignmentExpression.class) { + return parse_org_emftext_language_java_expressions_AssignmentExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.ConditionalExpression.class) { + return parse_org_emftext_language_java_expressions_ConditionalExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.ConditionalOrExpression.class) { + return parse_org_emftext_language_java_expressions_ConditionalOrExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.ConditionalAndExpression.class) { + return parse_org_emftext_language_java_expressions_ConditionalAndExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.InclusiveOrExpression.class) { + return parse_org_emftext_language_java_expressions_InclusiveOrExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.ExclusiveOrExpression.class) { + return parse_org_emftext_language_java_expressions_ExclusiveOrExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.AndExpression.class) { + return parse_org_emftext_language_java_expressions_AndExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.EqualityExpression.class) { + return parse_org_emftext_language_java_expressions_EqualityExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.InstanceOfExpression.class) { + return parse_org_emftext_language_java_expressions_InstanceOfExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.RelationExpression.class) { + return parse_org_emftext_language_java_expressions_RelationExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.ShiftExpression.class) { + return parse_org_emftext_language_java_expressions_ShiftExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.AdditiveExpression.class) { + return parse_org_emftext_language_java_expressions_AdditiveExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.MultiplicativeExpression.class) { + return parse_org_emftext_language_java_expressions_MultiplicativeExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.UnaryExpression.class) { + return parse_org_emftext_language_java_expressions_UnaryExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.SuffixUnaryModificationExpression.class) { + return parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.PrefixUnaryModificationExpression.class) { + return parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.CastExpression.class) { + return parse_org_emftext_language_java_expressions_CastExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.expressions.NestedExpression.class) { + return parse_org_emftext_language_java_expressions_NestedExpression(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.Assignment.class) { + return parse_org_emftext_language_java_operators_Assignment(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.AssignmentPlus.class) { + return parse_org_emftext_language_java_operators_AssignmentPlus(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.AssignmentMinus.class) { + return parse_org_emftext_language_java_operators_AssignmentMinus(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.AssignmentMultiplication.class) { + return parse_org_emftext_language_java_operators_AssignmentMultiplication(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.AssignmentDivision.class) { + return parse_org_emftext_language_java_operators_AssignmentDivision(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.AssignmentAnd.class) { + return parse_org_emftext_language_java_operators_AssignmentAnd(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.AssignmentOr.class) { + return parse_org_emftext_language_java_operators_AssignmentOr(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.AssignmentExclusiveOr.class) { + return parse_org_emftext_language_java_operators_AssignmentExclusiveOr(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.AssignmentModulo.class) { + return parse_org_emftext_language_java_operators_AssignmentModulo(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.AssignmentLeftShift.class) { + return parse_org_emftext_language_java_operators_AssignmentLeftShift(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.AssignmentRightShift.class) { + return parse_org_emftext_language_java_operators_AssignmentRightShift(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.AssignmentUnsignedRightShift.class) { + return parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.Addition.class) { + return parse_org_emftext_language_java_operators_Addition(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.Subtraction.class) { + return parse_org_emftext_language_java_operators_Subtraction(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.Multiplication.class) { + return parse_org_emftext_language_java_operators_Multiplication(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.Division.class) { + return parse_org_emftext_language_java_operators_Division(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.Remainder.class) { + return parse_org_emftext_language_java_operators_Remainder(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.LessThan.class) { + return parse_org_emftext_language_java_operators_LessThan(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.LessThanOrEqual.class) { + return parse_org_emftext_language_java_operators_LessThanOrEqual(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.GreaterThan.class) { + return parse_org_emftext_language_java_operators_GreaterThan(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.GreaterThanOrEqual.class) { + return parse_org_emftext_language_java_operators_GreaterThanOrEqual(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.LeftShift.class) { + return parse_org_emftext_language_java_operators_LeftShift(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.RightShift.class) { + return parse_org_emftext_language_java_operators_RightShift(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.UnsignedRightShift.class) { + return parse_org_emftext_language_java_operators_UnsignedRightShift(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.Equal.class) { + return parse_org_emftext_language_java_operators_Equal(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.NotEqual.class) { + return parse_org_emftext_language_java_operators_NotEqual(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.PlusPlus.class) { + return parse_org_emftext_language_java_operators_PlusPlus(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.MinusMinus.class) { + return parse_org_emftext_language_java_operators_MinusMinus(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.Complement.class) { + return parse_org_emftext_language_java_operators_Complement(); + } + if (type.getInstanceClass() == org.emftext.language.java.operators.Negate.class) { + return parse_org_emftext_language_java_operators_Negate(); + } + if (type.getInstanceClass() == org.emftext.language.java.arrays.ArrayDimension.class) { + return parse_org_emftext_language_java_arrays_ArrayDimension(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.NullLiteral.class) { + return parse_org_emftext_language_java_literals_NullLiteral(); + } + if (type.getInstanceClass() == org.emftext.language.java.modifiers.Public.class) { + return parse_org_emftext_language_java_modifiers_Public(); + } + if (type.getInstanceClass() == org.emftext.language.java.modifiers.Abstract.class) { + return parse_org_emftext_language_java_modifiers_Abstract(); + } + if (type.getInstanceClass() == org.emftext.language.java.modifiers.Protected.class) { + return parse_org_emftext_language_java_modifiers_Protected(); + } + if (type.getInstanceClass() == org.emftext.language.java.modifiers.Private.class) { + return parse_org_emftext_language_java_modifiers_Private(); + } + if (type.getInstanceClass() == org.emftext.language.java.modifiers.Final.class) { + return parse_org_emftext_language_java_modifiers_Final(); + } + if (type.getInstanceClass() == org.emftext.language.java.modifiers.Static.class) { + return parse_org_emftext_language_java_modifiers_Static(); + } + if (type.getInstanceClass() == org.emftext.language.java.modifiers.Native.class) { + return parse_org_emftext_language_java_modifiers_Native(); + } + if (type.getInstanceClass() == org.emftext.language.java.modifiers.Synchronized.class) { + return parse_org_emftext_language_java_modifiers_Synchronized(); + } + if (type.getInstanceClass() == org.emftext.language.java.modifiers.Transient.class) { + return parse_org_emftext_language_java_modifiers_Transient(); + } + if (type.getInstanceClass() == org.emftext.language.java.modifiers.Volatile.class) { + return parse_org_emftext_language_java_modifiers_Volatile(); + } + if (type.getInstanceClass() == org.emftext.language.java.modifiers.Strictfp.class) { + return parse_org_emftext_language_java_modifiers_Strictfp(); + } + if (type.getInstanceClass() == org.emftext.language.java.types.Void.class) { + return parse_org_emftext_language_java_types_Void(); + } + if (type.getInstanceClass() == org.emftext.language.java.types.Boolean.class) { + return parse_org_emftext_language_java_types_Boolean(); + } + if (type.getInstanceClass() == org.emftext.language.java.types.Char.class) { + return parse_org_emftext_language_java_types_Char(); + } + if (type.getInstanceClass() == org.emftext.language.java.types.Byte.class) { + return parse_org_emftext_language_java_types_Byte(); + } + if (type.getInstanceClass() == org.emftext.language.java.types.Short.class) { + return parse_org_emftext_language_java_types_Short(); + } + if (type.getInstanceClass() == org.emftext.language.java.types.Int.class) { + return parse_org_emftext_language_java_types_Int(); + } + if (type.getInstanceClass() == org.emftext.language.java.types.Long.class) { + return parse_org_emftext_language_java_types_Long(); + } + if (type.getInstanceClass() == org.emftext.language.java.types.Float.class) { + return parse_org_emftext_language_java_types_Float(); + } + if (type.getInstanceClass() == org.emftext.language.java.types.Double.class) { + return parse_org_emftext_language_java_types_Double(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.DecimalLongLiteral.class) { + return parse_org_emftext_language_java_literals_DecimalLongLiteral(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.DecimalFloatLiteral.class) { + return parse_org_emftext_language_java_literals_DecimalFloatLiteral(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.DecimalIntegerLiteral.class) { + return parse_org_emftext_language_java_literals_DecimalIntegerLiteral(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.DecimalDoubleLiteral.class) { + return parse_org_emftext_language_java_literals_DecimalDoubleLiteral(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.HexLongLiteral.class) { + return parse_org_emftext_language_java_literals_HexLongLiteral(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.HexFloatLiteral.class) { + return parse_org_emftext_language_java_literals_HexFloatLiteral(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.HexDoubleLiteral.class) { + return parse_org_emftext_language_java_literals_HexDoubleLiteral(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.HexIntegerLiteral.class) { + return parse_org_emftext_language_java_literals_HexIntegerLiteral(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.OctalLongLiteral.class) { + return parse_org_emftext_language_java_literals_OctalLongLiteral(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.OctalIntegerLiteral.class) { + return parse_org_emftext_language_java_literals_OctalIntegerLiteral(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.CharacterLiteral.class) { + return parse_org_emftext_language_java_literals_CharacterLiteral(); + } + if (type.getInstanceClass() == org.emftext.language.java.literals.BooleanLiteral.class) { + return parse_org_emftext_language_java_literals_BooleanLiteral(); + } + } + throw new org.emftext.language.java.resource.java.mopp.JavaUnexpectedContentTypeException(typeObject); + } + + public int getMismatchedTokenRecoveryTries() { + return mismatchedTokenRecoveryTries; + } + + public Object getMissingSymbol(IntStream arg0, RecognitionException arg1, int arg2, BitSet arg3) { + mismatchedTokenRecoveryTries++; + return super.getMissingSymbol(arg0, arg1, arg2, arg3); + } + + public Object getParseToIndexTypeObject() { + return parseToIndexTypeObject; + } + + protected Object getTypeObject() { + Object typeObject = getParseToIndexTypeObject(); + if (typeObject != null) { + return typeObject; + } + Map options = getOptions(); + if (options != null) { + typeObject = options.get(org.emftext.language.java.resource.java.IJavaOptions.RESOURCE_CONTENT_TYPE); + } + return typeObject; + } + + /** + * Implementation that calls {@link #doParse()} and handles the thrown + * RecognitionExceptions. + */ + public org.emftext.language.java.resource.java.IJavaParseResult parse() { + // Reset parser state + terminateParsing = false; + postParseCommands = new ArrayList>(); + org.emftext.language.java.resource.java.mopp.JavaParseResult parseResult = new org.emftext.language.java.resource.java.mopp.JavaParseResult(); + if (disableLocationMap) { + locationMap = new org.emftext.language.java.resource.java.mopp.JavaDevNullLocationMap(); + } else { + locationMap = new org.emftext.language.java.resource.java.mopp.JavaLocationMap(); + } + // Run parser + try { + EObject result = doParse(); + if (lexerExceptions.isEmpty()) { + parseResult.setRoot(result); + parseResult.setLocationMap(locationMap); + } + } catch (RecognitionException re) { + addErrorToResource(syntaxErrorMessageConverter.translateParseError(re)); + } catch (IllegalArgumentException iae) { + if ("The 'no null' constraint is violated".equals(iae.getMessage())) { + // can be caused if a null is set on EMF models where not allowed. this will just + // happen if other errors occurred before + } else { + iae.printStackTrace(); + } + } + for (RecognitionException re : lexerExceptions) { + addErrorToResource(syntaxErrorMessageConverter.translateLexicalError(re, lexerExceptions, lexerExceptionPositions)); + } + parseResult.getPostParseCommands().addAll(postParseCommands); + return parseResult; + } + + public List parseToExpectedElements(EClass type, org.emftext.language.java.resource.java.IJavaTextResource dummyResource, int cursorOffset) { + this.rememberExpectedElements = true; + this.parseToIndexTypeObject = type; + this.cursorOffset = cursorOffset; + this.lastStartIncludingHidden = -1; + final CommonTokenStream tokenStream = (CommonTokenStream) getTokenStream(); + org.emftext.language.java.resource.java.IJavaParseResult result = parse(); + for (EObject incompleteObject : incompleteObjects) { + Lexer lexer = (Lexer) tokenStream.getTokenSource(); + int endChar = lexer.getCharIndex(); + int endLine = lexer.getLine(); + setLocalizationEnd(result.getPostParseCommands(), incompleteObject, endChar, endLine); + } + if (result != null) { + EObject root = result.getRoot(); + if (root != null) { + dummyResource.getContentsInternal().add(root); + } + for (org.emftext.language.java.resource.java.IJavaCommand command : result.getPostParseCommands()) { + command.execute(dummyResource); + } + } + int lastFollowSetID = expectedElements.get(expectedElementsIndexOfLastCompleteElement).getFollowSetID(); + Set currentFollowSet = new LinkedHashSet(); + List newFollowSet = new ArrayList(); + for (int i = expectedElementsIndexOfLastCompleteElement; i >= 0; i--) { + org.emftext.language.java.resource.java.mopp.JavaExpectedTerminal expectedElementI = expectedElements.get(i); + if (expectedElementI.getFollowSetID() == lastFollowSetID) { + currentFollowSet.add(expectedElementI); + } else { + break; + } + } + int followSetID = 804; + int i; + for (i = tokenIndexOfLastCompleteElement; i < tokenStream.size(); i++) { + CommonToken nextToken = (CommonToken) tokenStream.get(i); + if (nextToken.getType() < 0) { + break; + } + if (nextToken.getChannel() == 99) { + // hidden tokens do not reduce the follow set + } else { + // now that we have found the next visible token the position for that expected + // terminals can be set + for (org.emftext.language.java.resource.java.mopp.JavaExpectedTerminal nextFollow : newFollowSet) { + lastTokenIndex = 0; + setPosition(nextFollow, i); + } + newFollowSet.clear(); + // normal tokens do reduce the follow set - only elements that match the token are + // kept + for (org.emftext.language.java.resource.java.mopp.JavaExpectedTerminal nextFollow : currentFollowSet) { + if (nextFollow.getTerminal().getTokenNames().contains(getTokenNames()[nextToken.getType()])) { + // keep this one - it matches + Collection> newFollowers = nextFollow.getTerminal().getFollowers(); + for (org.emftext.language.java.resource.java.util.JavaPair newFollowerPair : newFollowers) { + org.emftext.language.java.resource.java.IJavaExpectedElement newFollower = newFollowerPair.getLeft(); + EObject container = getLastIncompleteElement(); + org.emftext.language.java.resource.java.grammar.JavaContainmentTrace containmentTrace = new org.emftext.language.java.resource.java.grammar.JavaContainmentTrace(null, newFollowerPair.getRight()); + org.emftext.language.java.resource.java.mopp.JavaExpectedTerminal newFollowTerminal = new org.emftext.language.java.resource.java.mopp.JavaExpectedTerminal(container, newFollower, followSetID, containmentTrace); + newFollowSet.add(newFollowTerminal); + expectedElements.add(newFollowTerminal); + } + } + } + currentFollowSet.clear(); + currentFollowSet.addAll(newFollowSet); + } + followSetID++; + } + // after the last token in the stream we must set the position for the elements + // that were added during the last iteration of the loop + for (org.emftext.language.java.resource.java.mopp.JavaExpectedTerminal nextFollow : newFollowSet) { + lastTokenIndex = 0; + setPosition(nextFollow, i); + } + return this.expectedElements; + } + + public void setPosition(org.emftext.language.java.resource.java.mopp.JavaExpectedTerminal expectedElement, int tokenIndex) { + int currentIndex = Math.max(0, tokenIndex); + for (int index = lastTokenIndex; index < currentIndex; index++) { + if (index >= input.size()) { + break; + } + CommonToken tokenAtIndex = (CommonToken) input.get(index); + stopIncludingHiddenTokens = tokenAtIndex.getStopIndex() + 1; + if (tokenAtIndex.getChannel() != 99 && !anonymousTokens.contains(tokenAtIndex)) { + stopExcludingHiddenTokens = tokenAtIndex.getStopIndex() + 1; + } + } + lastTokenIndex = Math.max(0, currentIndex); + expectedElement.setPosition(stopExcludingHiddenTokens, stopIncludingHiddenTokens); + } + + public Object recoverFromMismatchedToken(IntStream input, int ttype, BitSet follow) throws RecognitionException { + if (!rememberExpectedElements) { + return super.recoverFromMismatchedToken(input, ttype, follow); + } else { + return null; + } + } + + private void startIncompleteElement(Object object) { + if (object instanceof EObject) { + this.incompleteObjects.add((EObject) object); + } + } + + private void completedElement(Object object, boolean isContainment) { + if (isContainment && !this.incompleteObjects.isEmpty()) { + this.incompleteObjects.remove(object); + } + if (object instanceof EObject) { + this.tokenIndexOfLastCompleteElement = getTokenStream().index(); + this.expectedElementsIndexOfLastCompleteElement = expectedElements.size() - 1; + } + } + + private EObject getLastIncompleteElement() { + if (incompleteObjects.isEmpty()) { + return null; + } + return incompleteObjects.get(incompleteObjects.size() - 1); + } + + + + + // $ANTLR start "start" + // Java.g:941:1: start returns [ EObject element = null] : (c0= parse_org_emftext_language_java_containers_CompilationUnit |c1= parse_org_emftext_language_java_containers_Package |c2= parse_org_emftext_language_java_containers_EmptyModel ) EOF ; + public final EObject start() throws RecognitionException { + EObject element = null; + + int start_StartIndex = input.index(); + + org.emftext.language.java.containers.CompilationUnit c0 =null; + + org.emftext.language.java.containers.Package c1 =null; + + org.emftext.language.java.containers.EmptyModel c2 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 1) ) { return element; } + + // Java.g:942:2: ( (c0= parse_org_emftext_language_java_containers_CompilationUnit |c1= parse_org_emftext_language_java_containers_Package |c2= parse_org_emftext_language_java_containers_EmptyModel ) EOF ) + // Java.g:943:2: (c0= parse_org_emftext_language_java_containers_CompilationUnit |c1= parse_org_emftext_language_java_containers_Package |c2= parse_org_emftext_language_java_containers_EmptyModel ) EOF + { + if ( state.backtracking==0 ) { + // follow set for start rule(s) + addExpectedElement(0); + addExpectedElement(4); + addExpectedElement(5); + addExpectedElement(57); + addExpectedElement(58); + addExpectedElement(59); + addExpectedElement(63); + addExpectedElement(64); + expectedElementsIndexOfLastCompleteElement = 64; + } + + // Java.g:955:2: (c0= parse_org_emftext_language_java_containers_CompilationUnit |c1= parse_org_emftext_language_java_containers_Package |c2= parse_org_emftext_language_java_containers_EmptyModel ) + int alt1=3; + switch ( input.LA(1) ) { + case 86: + { + int LA1_1 = input.LA(2); + + if ( (synpred1_Java()) ) { + alt1=1; + } + else if ( (synpred2_Java()) ) { + alt1=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 1, 1, input); + + throw nvae; + + } + } + break; + case 78: + { + int LA1_2 = input.LA(2); + + if ( (synpred1_Java()) ) { + alt1=1; + } + else if ( (true) ) { + alt1=3; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 1, 2, input); + + throw nvae; + + } + } + break; + case 42: + { + int LA1_3 = input.LA(2); + + if ( (synpred1_Java()) ) { + alt1=1; + } + else if ( (true) ) { + alt1=3; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 1, 3, input); + + throw nvae; + + } + } + break; + case 48: + { + int LA1_4 = input.LA(2); + + if ( (synpred1_Java()) ) { + alt1=1; + } + else if ( (synpred2_Java()) ) { + alt1=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 1, 4, input); + + throw nvae; + + } + } + break; + case 56: + case 64: + case 70: + case 72: + case 81: + case 83: + case 87: + case 88: + case 89: + case 92: + case 93: + case 96: + case 100: + case 103: + { + alt1=1; + } + break; + case EOF: + { + alt1=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; + + } + + switch (alt1) { + case 1 : + // Java.g:956:3: c0= parse_org_emftext_language_java_containers_CompilationUnit + { + pushFollow(FOLLOW_parse_org_emftext_language_java_containers_CompilationUnit_in_start82); + c0=parse_org_emftext_language_java_containers_CompilationUnit(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; } + + } + break; + case 2 : + // Java.g:957:8: c1= parse_org_emftext_language_java_containers_Package + { + pushFollow(FOLLOW_parse_org_emftext_language_java_containers_Package_in_start96); + c1=parse_org_emftext_language_java_containers_Package(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; } + + } + break; + case 3 : + // Java.g:958:8: c2= parse_org_emftext_language_java_containers_EmptyModel + { + pushFollow(FOLLOW_parse_org_emftext_language_java_containers_EmptyModel_in_start110); + c2=parse_org_emftext_language_java_containers_EmptyModel(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; } + + } + break; + + } + + + match(input,EOF,FOLLOW_EOF_in_start117); if (state.failed) return element; + + if ( state.backtracking==0 ) { + retrieveLayoutInformation(element, null, null, false); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 1, start_StartIndex); } + + } + return element; + } + // $ANTLR end "start" + + + + // $ANTLR start "parse_org_emftext_language_java_containers_EmptyModel" + // Java.g:966:1: parse_org_emftext_language_java_containers_EmptyModel returns [org.emftext.language.java.containers.EmptyModel element = null] : ( ( (a0_0= parse_org_emftext_language_java_imports_Import ) a1= ';' ) )* ( (a2= ';' ) )* ; + public final org.emftext.language.java.containers.EmptyModel parse_org_emftext_language_java_containers_EmptyModel() throws RecognitionException { + org.emftext.language.java.containers.EmptyModel element = null; + + int parse_org_emftext_language_java_containers_EmptyModel_StartIndex = input.index(); + + Token a1=null; + Token a2=null; + org.emftext.language.java.imports.Import a0_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 2) ) { return element; } + + // Java.g:969:2: ( ( ( (a0_0= parse_org_emftext_language_java_imports_Import ) a1= ';' ) )* ( (a2= ';' ) )* ) + // Java.g:970:2: ( ( (a0_0= parse_org_emftext_language_java_imports_Import ) a1= ';' ) )* ( (a2= ';' ) )* + { + // Java.g:970:2: ( ( (a0_0= parse_org_emftext_language_java_imports_Import ) a1= ';' ) )* + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==78) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // Java.g:971:3: ( (a0_0= parse_org_emftext_language_java_imports_Import ) a1= ';' ) + { + // Java.g:971:3: ( (a0_0= parse_org_emftext_language_java_imports_Import ) a1= ';' ) + // Java.g:972:4: (a0_0= parse_org_emftext_language_java_imports_Import ) a1= ';' + { + // Java.g:972:4: (a0_0= parse_org_emftext_language_java_imports_Import ) + // Java.g:973:5: a0_0= parse_org_emftext_language_java_imports_Import + { + pushFollow(FOLLOW_parse_org_emftext_language_java_imports_Import_in_parse_org_emftext_language_java_containers_EmptyModel158); + a0_0=parse_org_emftext_language_java_imports_Import(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createEmptyModel(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.containers.ContainersPackage.EMPTY_MODEL__IMPORTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_0_0_0_0_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(65); + } + + a1=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_containers_EmptyModel186); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createEmptyModel(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_0_0_0_0_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(69); + addExpectedElement(70); + } + + } + + + } + break; + + default : + break loop2; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(74); + addExpectedElement(75); + } + + // Java.g:1021:2: ( (a2= ';' ) )* + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( (LA3_0==42) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // Java.g:1022:3: (a2= ';' ) + { + // Java.g:1022:3: (a2= ';' ) + // Java.g:1023:4: a2= ';' + { + a2=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_containers_EmptyModel228); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createEmptyModel(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_0_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(76); + } + + } + + + } + break; + + default : + break loop3; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(77); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 2, parse_org_emftext_language_java_containers_EmptyModel_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_containers_EmptyModel" + + + + // $ANTLR start "parse_org_emftext_language_java_containers_Package" + // Java.g:1052:1: parse_org_emftext_language_java_containers_Package returns [org.emftext.language.java.containers.Package element = null] : ( (a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance ) )* a1= 'package' ( ( (a2= IDENTIFIER ) a3= '.' ) )* (a4= IDENTIFIER ) a5= ';' ( (a6= ';' ) )? ( ( (a7_0= parse_org_emftext_language_java_imports_Import ) ) )* ( (a8= ';' ) )* ; + public final org.emftext.language.java.containers.Package parse_org_emftext_language_java_containers_Package() throws RecognitionException { + org.emftext.language.java.containers.Package element = null; + + int parse_org_emftext_language_java_containers_Package_StartIndex = input.index(); + + Token a1=null; + Token a2=null; + Token a3=null; + Token a4=null; + Token a5=null; + Token a6=null; + Token a8=null; + org.emftext.language.java.annotations.AnnotationInstance a0_0 =null; + + org.emftext.language.java.imports.Import a7_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 3) ) { return element; } + + // Java.g:1055:2: ( ( (a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance ) )* a1= 'package' ( ( (a2= IDENTIFIER ) a3= '.' ) )* (a4= IDENTIFIER ) a5= ';' ( (a6= ';' ) )? ( ( (a7_0= parse_org_emftext_language_java_imports_Import ) ) )* ( (a8= ';' ) )* ) + // Java.g:1056:2: ( (a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance ) )* a1= 'package' ( ( (a2= IDENTIFIER ) a3= '.' ) )* (a4= IDENTIFIER ) a5= ';' ( (a6= ';' ) )? ( ( (a7_0= parse_org_emftext_language_java_imports_Import ) ) )* ( (a8= ';' ) )* + { + // Java.g:1056:2: ( (a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance ) )* + loop4: + do { + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0==48) ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // Java.g:1057:3: (a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance ) + { + // Java.g:1057:3: (a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance ) + // Java.g:1058:4: a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance + { + pushFollow(FOLLOW_parse_org_emftext_language_java_annotations_AnnotationInstance_in_parse_org_emftext_language_java_containers_Package285); + a0_0=parse_org_emftext_language_java_annotations_AnnotationInstance(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createPackage(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.containers.ContainersPackage.PACKAGE__ANNOTATIONS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_1_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop4; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(78); + addExpectedElement(79); + } + + a1=(Token)match(input,86,FOLLOW_86_in_parse_org_emftext_language_java_containers_Package311); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createPackage(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_1_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(81); + } + + // Java.g:1099:2: ( ( (a2= IDENTIFIER ) a3= '.' ) )* + loop5: + do { + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0==IDENTIFIER) ) { + int LA5_1 = input.LA(2); + + if ( (LA5_1==37) ) { + alt5=1; + } + + + } + + + switch (alt5) { + case 1 : + // Java.g:1100:3: ( (a2= IDENTIFIER ) a3= '.' ) + { + // Java.g:1100:3: ( (a2= IDENTIFIER ) a3= '.' ) + // Java.g:1101:4: (a2= IDENTIFIER ) a3= '.' + { + // Java.g:1101:4: (a2= IDENTIFIER ) + // Java.g:1102:5: a2= IDENTIFIER + { + a2=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_containers_Package340); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createPackage(); + startIncompleteElement(element); + } + if (a2 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a2.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.containers.ContainersPackage.PACKAGE__NAMESPACES), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a2).getLine(), ((CommonToken) a2).getCharPositionInLine(), ((CommonToken) a2).getStartIndex(), ((CommonToken) a2).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + addObjectToList(element, org.emftext.language.java.containers.ContainersPackage.PACKAGE__NAMESPACES, value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_1_0_0_2_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a2, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(82); + } + + a3=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_containers_Package373); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createPackage(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_1_0_0_2_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(84); + } + + } + + + } + break; + + default : + break loop5; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(86); + } + + // Java.g:1158:2: (a4= IDENTIFIER ) + // Java.g:1159:3: a4= IDENTIFIER + { + a4=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_containers_Package410); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createPackage(); + startIncompleteElement(element); + } + if (a4 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a4.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.containers.ContainersPackage.PACKAGE__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a4).getLine(), ((CommonToken) a4).getCharPositionInLine(), ((CommonToken) a4).getStartIndex(), ((CommonToken) a4).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.containers.ContainersPackage.PACKAGE__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_1_0_0_3, resolved, true); + copyLocalizationInfos((CommonToken) a4, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(87); + } + + a5=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_containers_Package431); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createPackage(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_1_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(88); + addExpectedElement(92); + addExpectedElement(93); + } + + // Java.g:1210:2: ( (a6= ';' ) )? + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0==42) ) { + int LA6_1 = input.LA(2); + + if ( (synpred7_Java()) ) { + alt6=1; + } + } + switch (alt6) { + case 1 : + // Java.g:1211:3: (a6= ';' ) + { + // Java.g:1211:3: (a6= ';' ) + // Java.g:1212:4: a6= ';' + { + a6=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_containers_Package454); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createPackage(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_1_0_0_5_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a6, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(97); + addExpectedElement(98); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(102); + addExpectedElement(103); + } + + // Java.g:1235:2: ( ( (a7_0= parse_org_emftext_language_java_imports_Import ) ) )* + loop7: + do { + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0==78) ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // Java.g:1236:3: ( (a7_0= parse_org_emftext_language_java_imports_Import ) ) + { + // Java.g:1236:3: ( (a7_0= parse_org_emftext_language_java_imports_Import ) ) + // Java.g:1237:4: (a7_0= parse_org_emftext_language_java_imports_Import ) + { + // Java.g:1237:4: (a7_0= parse_org_emftext_language_java_imports_Import ) + // Java.g:1238:5: a7_0= parse_org_emftext_language_java_imports_Import + { + pushFollow(FOLLOW_parse_org_emftext_language_java_imports_Import_in_parse_org_emftext_language_java_containers_Package502); + a7_0=parse_org_emftext_language_java_imports_Import(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createPackage(); + startIncompleteElement(element); + } + if (a7_0 != null) { + if (a7_0 != null) { + Object value = a7_0; + addObjectToList(element, org.emftext.language.java.containers.ContainersPackage.PACKAGE__IMPORTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_1_0_0_8_0_0_0, a7_0, true); + copyLocalizationInfos(a7_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(107); + addExpectedElement(108); + } + + } + + + } + break; + + default : + break loop7; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(112); + addExpectedElement(113); + } + + // Java.g:1272:2: ( (a8= ';' ) )* + loop8: + do { + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0==42) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // Java.g:1273:3: (a8= ';' ) + { + // Java.g:1273:3: (a8= ';' ) + // Java.g:1274:4: a8= ';' + { + a8=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_containers_Package552); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createPackage(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_1_0_0_9_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a8, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(114); + } + + } + + + } + break; + + default : + break loop8; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(115); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 3, parse_org_emftext_language_java_containers_Package_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_containers_Package" + + + + // $ANTLR start "parse_org_emftext_language_java_containers_CompilationUnit" + // Java.g:1303:1: parse_org_emftext_language_java_containers_CompilationUnit returns [org.emftext.language.java.containers.CompilationUnit element = null] : ( (a0= 'package' (a1= IDENTIFIER ) ( (a2= '.' (a3= IDENTIFIER ) ) )* a4= ';' ) )? ( ( (a5_0= parse_org_emftext_language_java_imports_Import ) ) )* ( (a6= ';' ) )* ( ( (a7_0= parse_org_emftext_language_java_classifiers_ConcreteClassifier ) ( (a8= ';' ) )* ) )+ ( (a9= '\\u001a' ) )? ; + public final org.emftext.language.java.containers.CompilationUnit parse_org_emftext_language_java_containers_CompilationUnit() throws RecognitionException { + org.emftext.language.java.containers.CompilationUnit element = null; + + int parse_org_emftext_language_java_containers_CompilationUnit_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a2=null; + Token a3=null; + Token a4=null; + Token a6=null; + Token a8=null; + Token a9=null; + org.emftext.language.java.imports.Import a5_0 =null; + + org.emftext.language.java.classifiers.ConcreteClassifier a7_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 4) ) { return element; } + + // Java.g:1306:2: ( ( (a0= 'package' (a1= IDENTIFIER ) ( (a2= '.' (a3= IDENTIFIER ) ) )* a4= ';' ) )? ( ( (a5_0= parse_org_emftext_language_java_imports_Import ) ) )* ( (a6= ';' ) )* ( ( (a7_0= parse_org_emftext_language_java_classifiers_ConcreteClassifier ) ( (a8= ';' ) )* ) )+ ( (a9= '\\u001a' ) )? ) + // Java.g:1307:2: ( (a0= 'package' (a1= IDENTIFIER ) ( (a2= '.' (a3= IDENTIFIER ) ) )* a4= ';' ) )? ( ( (a5_0= parse_org_emftext_language_java_imports_Import ) ) )* ( (a6= ';' ) )* ( ( (a7_0= parse_org_emftext_language_java_classifiers_ConcreteClassifier ) ( (a8= ';' ) )* ) )+ ( (a9= '\\u001a' ) )? + { + // Java.g:1307:2: ( (a0= 'package' (a1= IDENTIFIER ) ( (a2= '.' (a3= IDENTIFIER ) ) )* a4= ';' ) )? + int alt10=2; + int LA10_0 = input.LA(1); + + if ( (LA10_0==86) ) { + alt10=1; + } + switch (alt10) { + case 1 : + // Java.g:1308:3: (a0= 'package' (a1= IDENTIFIER ) ( (a2= '.' (a3= IDENTIFIER ) ) )* a4= ';' ) + { + // Java.g:1308:3: (a0= 'package' (a1= IDENTIFIER ) ( (a2= '.' (a3= IDENTIFIER ) ) )* a4= ';' ) + // Java.g:1309:4: a0= 'package' (a1= IDENTIFIER ) ( (a2= '.' (a3= IDENTIFIER ) ) )* a4= ';' + { + a0=(Token)match(input,86,FOLLOW_86_in_parse_org_emftext_language_java_containers_CompilationUnit609); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createCompilationUnit(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_2_0_0_0_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(116); + } + + // Java.g:1323:4: (a1= IDENTIFIER ) + // Java.g:1324:5: a1= IDENTIFIER + { + a1=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_containers_CompilationUnit635); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createCompilationUnit(); + startIncompleteElement(element); + } + if (a1 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a1.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.containers.ContainersPackage.COMPILATION_UNIT__NAMESPACES), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a1).getLine(), ((CommonToken) a1).getCharPositionInLine(), ((CommonToken) a1).getStartIndex(), ((CommonToken) a1).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + addObjectToList(element, org.emftext.language.java.containers.ContainersPackage.COMPILATION_UNIT__NAMESPACES, value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_2_0_0_0_0_0_1, resolved, true); + copyLocalizationInfos((CommonToken) a1, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(118); + } + + // Java.g:1359:4: ( (a2= '.' (a3= IDENTIFIER ) ) )* + loop9: + do { + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0==37) ) { + alt9=1; + } + + + switch (alt9) { + case 1 : + // Java.g:1360:5: (a2= '.' (a3= IDENTIFIER ) ) + { + // Java.g:1360:5: (a2= '.' (a3= IDENTIFIER ) ) + // Java.g:1361:6: a2= '.' (a3= IDENTIFIER ) + { + a2=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_containers_CompilationUnit681); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createCompilationUnit(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_2_0_0_0_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(119); + } + + // Java.g:1375:6: (a3= IDENTIFIER ) + // Java.g:1376:7: a3= IDENTIFIER + { + a3=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_containers_CompilationUnit715); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createCompilationUnit(); + startIncompleteElement(element); + } + if (a3 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a3.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.containers.ContainersPackage.COMPILATION_UNIT__NAMESPACES), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a3).getLine(), ((CommonToken) a3).getCharPositionInLine(), ((CommonToken) a3).getStartIndex(), ((CommonToken) a3).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + addObjectToList(element, org.emftext.language.java.containers.ContainersPackage.COMPILATION_UNIT__NAMESPACES, value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_2_0_0_0_0_0_2_0_0_1, resolved, true); + copyLocalizationInfos((CommonToken) a3, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(121); + } + + } + + + } + break; + + default : + break loop9; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(123); + } + + a4=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_containers_CompilationUnit783); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createCompilationUnit(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_2_0_0_0_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(127); + addExpectedElement(128); + addExpectedElement(180); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(184); + addExpectedElement(185); + addExpectedElement(237); + } + + // Java.g:1443:2: ( ( (a5_0= parse_org_emftext_language_java_imports_Import ) ) )* + loop11: + do { + int alt11=2; + int LA11_0 = input.LA(1); + + if ( (LA11_0==78) ) { + alt11=1; + } + + + switch (alt11) { + case 1 : + // Java.g:1444:3: ( (a5_0= parse_org_emftext_language_java_imports_Import ) ) + { + // Java.g:1444:3: ( (a5_0= parse_org_emftext_language_java_imports_Import ) ) + // Java.g:1445:4: (a5_0= parse_org_emftext_language_java_imports_Import ) + { + // Java.g:1445:4: (a5_0= parse_org_emftext_language_java_imports_Import ) + // Java.g:1446:5: a5_0= parse_org_emftext_language_java_imports_Import + { + pushFollow(FOLLOW_parse_org_emftext_language_java_imports_Import_in_parse_org_emftext_language_java_containers_CompilationUnit831); + a5_0=parse_org_emftext_language_java_imports_Import(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createCompilationUnit(); + startIncompleteElement(element); + } + if (a5_0 != null) { + if (a5_0 != null) { + Object value = a5_0; + addObjectToList(element, org.emftext.language.java.containers.ContainersPackage.COMPILATION_UNIT__IMPORTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_2_0_0_3_0_0_0, a5_0, true); + copyLocalizationInfos(a5_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(241); + addExpectedElement(242); + addExpectedElement(294); + } + + } + + + } + break; + + default : + break loop11; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(298); + addExpectedElement(299); + addExpectedElement(351); + } + + // Java.g:1482:2: ( (a6= ';' ) )* + loop12: + do { + int alt12=2; + int LA12_0 = input.LA(1); + + if ( (LA12_0==42) ) { + alt12=1; + } + + + switch (alt12) { + case 1 : + // Java.g:1483:3: (a6= ';' ) + { + // Java.g:1483:3: (a6= ';' ) + // Java.g:1484:4: a6= ';' + { + a6=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_containers_CompilationUnit881); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createCompilationUnit(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_2_0_0_4_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a6, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(352); + addExpectedElement(404); + } + + } + + + } + break; + + default : + break loop12; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(405); + addExpectedElement(457); + } + + // Java.g:1507:2: ( ( (a7_0= parse_org_emftext_language_java_classifiers_ConcreteClassifier ) ( (a8= ';' ) )* ) )+ + int cnt14=0; + loop14: + do { + int alt14=2; + int LA14_0 = input.LA(1); + + if ( (LA14_0==48||LA14_0==56||LA14_0==64||LA14_0==70||LA14_0==72||LA14_0==81||LA14_0==83||(LA14_0 >= 87 && LA14_0 <= 89)||(LA14_0 >= 92 && LA14_0 <= 93)||LA14_0==96||LA14_0==100||LA14_0==103) ) { + alt14=1; + } + + + switch (alt14) { + case 1 : + // Java.g:1508:3: ( (a7_0= parse_org_emftext_language_java_classifiers_ConcreteClassifier ) ( (a8= ';' ) )* ) + { + // Java.g:1508:3: ( (a7_0= parse_org_emftext_language_java_classifiers_ConcreteClassifier ) ( (a8= ';' ) )* ) + // Java.g:1509:4: (a7_0= parse_org_emftext_language_java_classifiers_ConcreteClassifier ) ( (a8= ';' ) )* + { + // Java.g:1509:4: (a7_0= parse_org_emftext_language_java_classifiers_ConcreteClassifier ) + // Java.g:1510:5: a7_0= parse_org_emftext_language_java_classifiers_ConcreteClassifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_ConcreteClassifier_in_parse_org_emftext_language_java_containers_CompilationUnit929); + a7_0=parse_org_emftext_language_java_classifiers_ConcreteClassifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createCompilationUnit(); + startIncompleteElement(element); + } + if (a7_0 != null) { + if (a7_0 != null) { + Object value = a7_0; + addObjectToList(element, org.emftext.language.java.containers.ContainersPackage.COMPILATION_UNIT__CLASSIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_2_0_0_6_0_0_0, a7_0, true); + copyLocalizationInfos(a7_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(458); + addExpectedElement(510); + addExpectedElement(511); + } + + // Java.g:1537:4: ( (a8= ';' ) )* + loop13: + do { + int alt13=2; + int LA13_0 = input.LA(1); + + if ( (LA13_0==42) ) { + alt13=1; + } + + + switch (alt13) { + case 1 : + // Java.g:1538:5: (a8= ';' ) + { + // Java.g:1538:5: (a8= ';' ) + // Java.g:1539:6: a8= ';' + { + a8=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_containers_CompilationUnit970); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createCompilationUnit(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_2_0_0_6_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a8, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(512); + addExpectedElement(564); + addExpectedElement(565); + } + + } + + + } + break; + + default : + break loop13; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(566); + addExpectedElement(618); + addExpectedElement(619); + } + + } + + + } + break; + + default : + if ( cnt14 >= 1 ) break loop14; + if (state.backtracking>0) {state.failed=true; return element;} + EarlyExitException eee = + new EarlyExitException(14, input); + throw eee; + } + cnt14++; + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(671); + addExpectedElement(672); + } + + // Java.g:1572:2: ( (a9= '\\u001a' ) )? + int alt15=2; + int LA15_0 = input.LA(1); + + if ( (LA15_0==50) ) { + alt15=1; + } + switch (alt15) { + case 1 : + // Java.g:1573:3: (a9= '\\u001a' ) + { + // Java.g:1573:3: (a9= '\\u001a' ) + // Java.g:1574:4: a9= '\\u001a' + { + a9=(Token)match(input,50,FOLLOW_50_in_parse_org_emftext_language_java_containers_CompilationUnit1041); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.containers.ContainersFactory.eINSTANCE.createCompilationUnit(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_2_0_0_7_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a9, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 4, parse_org_emftext_language_java_containers_CompilationUnit_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_containers_CompilationUnit" + + + + // $ANTLR start "parse_org_emftext_language_java_imports_ClassifierImport" + // Java.g:1601:1: parse_org_emftext_language_java_imports_ClassifierImport returns [org.emftext.language.java.imports.ClassifierImport element = null] : a0= 'import' ( ( (a1= IDENTIFIER ) a2= '.' ) )* (a3= IDENTIFIER ) a4= ';' ; + public final org.emftext.language.java.imports.ClassifierImport parse_org_emftext_language_java_imports_ClassifierImport() throws RecognitionException { + org.emftext.language.java.imports.ClassifierImport element = null; + + int parse_org_emftext_language_java_imports_ClassifierImport_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a2=null; + Token a3=null; + Token a4=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 5) ) { return element; } + + // Java.g:1604:2: (a0= 'import' ( ( (a1= IDENTIFIER ) a2= '.' ) )* (a3= IDENTIFIER ) a4= ';' ) + // Java.g:1605:2: a0= 'import' ( ( (a1= IDENTIFIER ) a2= '.' ) )* (a3= IDENTIFIER ) a4= ';' + { + a0=(Token)match(input,78,FOLLOW_78_in_parse_org_emftext_language_java_imports_ClassifierImport1089); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createClassifierImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_3_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(674); + } + + // Java.g:1619:2: ( ( (a1= IDENTIFIER ) a2= '.' ) )* + loop16: + do { + int alt16=2; + int LA16_0 = input.LA(1); + + if ( (LA16_0==IDENTIFIER) ) { + int LA16_1 = input.LA(2); + + if ( (LA16_1==37) ) { + alt16=1; + } + + + } + + + switch (alt16) { + case 1 : + // Java.g:1620:3: ( (a1= IDENTIFIER ) a2= '.' ) + { + // Java.g:1620:3: ( (a1= IDENTIFIER ) a2= '.' ) + // Java.g:1621:4: (a1= IDENTIFIER ) a2= '.' + { + // Java.g:1621:4: (a1= IDENTIFIER ) + // Java.g:1622:5: a1= IDENTIFIER + { + a1=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_imports_ClassifierImport1118); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createClassifierImport(); + startIncompleteElement(element); + } + if (a1 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a1.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.imports.ImportsPackage.CLASSIFIER_IMPORT__NAMESPACES), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a1).getLine(), ((CommonToken) a1).getCharPositionInLine(), ((CommonToken) a1).getStartIndex(), ((CommonToken) a1).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + addObjectToList(element, org.emftext.language.java.imports.ImportsPackage.CLASSIFIER_IMPORT__NAMESPACES, value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_3_0_0_1_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a1, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(675); + } + + a2=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_imports_ClassifierImport1151); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createClassifierImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_3_0_0_1_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(677); + } + + } + + + } + break; + + default : + break loop16; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(679); + } + + // Java.g:1678:2: (a3= IDENTIFIER ) + // Java.g:1679:3: a3= IDENTIFIER + { + a3=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_imports_ClassifierImport1188); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createClassifierImport(); + startIncompleteElement(element); + } + if (a3 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a3.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.imports.ImportsPackage.CLASSIFIER_IMPORT__CLASSIFIER), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a3).getLine(), ((CommonToken) a3).getCharPositionInLine(), ((CommonToken) a3).getStartIndex(), ((CommonToken) a3).getStopIndex()); + } + String resolved = (String) resolvedObject; + org.emftext.language.java.classifiers.ConcreteClassifier proxy = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + collectHiddenTokens(element); + registerContextDependentProxy(new org.emftext.language.java.resource.java.mopp.JavaContextDependentURIFragmentFactory(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getClassifierImportClassifierReferenceResolver()), element, (EReference) element.eClass().getEStructuralFeature(org.emftext.language.java.imports.ImportsPackage.CLASSIFIER_IMPORT__CLASSIFIER), resolved, proxy); + if (proxy != null) { + Object value = proxy; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.imports.ImportsPackage.CLASSIFIER_IMPORT__CLASSIFIER), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_3_0_0_2, proxy, true); + copyLocalizationInfos((CommonToken) a3, element); + copyLocalizationInfos((CommonToken) a3, proxy); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(680); + } + + a4=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_imports_ClassifierImport1209); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createClassifierImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_3_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(681); + addExpectedElement(685); + addExpectedElement(686); + addExpectedElement(690); + addExpectedElement(691); + addExpectedElement(743); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 5, parse_org_emftext_language_java_imports_ClassifierImport_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_imports_ClassifierImport" + + + + // $ANTLR start "parse_org_emftext_language_java_imports_PackageImport" + // Java.g:1742:1: parse_org_emftext_language_java_imports_PackageImport returns [org.emftext.language.java.imports.PackageImport element = null] : a0= 'import' ( ( (a1= IDENTIFIER ) a2= '.' ) )+ a3= '*' a4= ';' ; + public final org.emftext.language.java.imports.PackageImport parse_org_emftext_language_java_imports_PackageImport() throws RecognitionException { + org.emftext.language.java.imports.PackageImport element = null; + + int parse_org_emftext_language_java_imports_PackageImport_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a2=null; + Token a3=null; + Token a4=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 6) ) { return element; } + + // Java.g:1745:2: (a0= 'import' ( ( (a1= IDENTIFIER ) a2= '.' ) )+ a3= '*' a4= ';' ) + // Java.g:1746:2: a0= 'import' ( ( (a1= IDENTIFIER ) a2= '.' ) )+ a3= '*' a4= ';' + { + a0=(Token)match(input,78,FOLLOW_78_in_parse_org_emftext_language_java_imports_PackageImport1238); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createPackageImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_4_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(744); + } + + // Java.g:1760:2: ( ( (a1= IDENTIFIER ) a2= '.' ) )+ + int cnt17=0; + loop17: + do { + int alt17=2; + int LA17_0 = input.LA(1); + + if ( (LA17_0==IDENTIFIER) ) { + alt17=1; + } + + + switch (alt17) { + case 1 : + // Java.g:1761:3: ( (a1= IDENTIFIER ) a2= '.' ) + { + // Java.g:1761:3: ( (a1= IDENTIFIER ) a2= '.' ) + // Java.g:1762:4: (a1= IDENTIFIER ) a2= '.' + { + // Java.g:1762:4: (a1= IDENTIFIER ) + // Java.g:1763:5: a1= IDENTIFIER + { + a1=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_imports_PackageImport1267); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createPackageImport(); + startIncompleteElement(element); + } + if (a1 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a1.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.imports.ImportsPackage.PACKAGE_IMPORT__NAMESPACES), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a1).getLine(), ((CommonToken) a1).getCharPositionInLine(), ((CommonToken) a1).getStartIndex(), ((CommonToken) a1).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + addObjectToList(element, org.emftext.language.java.imports.ImportsPackage.PACKAGE_IMPORT__NAMESPACES, value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_4_0_0_1_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a1, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(745); + } + + a2=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_imports_PackageImport1300); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createPackageImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_4_0_0_1_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(747); + } + + } + + + } + break; + + default : + if ( cnt17 >= 1 ) break loop17; + if (state.backtracking>0) {state.failed=true; return element;} + EarlyExitException eee = + new EarlyExitException(17, input); + throw eee; + } + cnt17++; + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(749); + } + + a3=(Token)match(input,28,FOLLOW_28_in_parse_org_emftext_language_java_imports_PackageImport1333); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createPackageImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_4_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(750); + } + + a4=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_imports_PackageImport1347); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createPackageImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_4_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(751); + addExpectedElement(755); + addExpectedElement(756); + addExpectedElement(760); + addExpectedElement(761); + addExpectedElement(813); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 6, parse_org_emftext_language_java_imports_PackageImport_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_imports_PackageImport" + + + + // $ANTLR start "parse_org_emftext_language_java_imports_StaticMemberImport" + // Java.g:1857:1: parse_org_emftext_language_java_imports_StaticMemberImport returns [org.emftext.language.java.imports.StaticMemberImport element = null] : a0= 'import' (a1_0= parse_org_emftext_language_java_modifiers_Static ) ( ( (a2= IDENTIFIER ) a3= '.' ) )* (a4= IDENTIFIER ) a5= ';' ; + public final org.emftext.language.java.imports.StaticMemberImport parse_org_emftext_language_java_imports_StaticMemberImport() throws RecognitionException { + org.emftext.language.java.imports.StaticMemberImport element = null; + + int parse_org_emftext_language_java_imports_StaticMemberImport_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + Token a3=null; + Token a4=null; + Token a5=null; + org.emftext.language.java.modifiers.Static a1_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 7) ) { return element; } + + // Java.g:1860:2: (a0= 'import' (a1_0= parse_org_emftext_language_java_modifiers_Static ) ( ( (a2= IDENTIFIER ) a3= '.' ) )* (a4= IDENTIFIER ) a5= ';' ) + // Java.g:1861:2: a0= 'import' (a1_0= parse_org_emftext_language_java_modifiers_Static ) ( ( (a2= IDENTIFIER ) a3= '.' ) )* (a4= IDENTIFIER ) a5= ';' + { + a0=(Token)match(input,78,FOLLOW_78_in_parse_org_emftext_language_java_imports_StaticMemberImport1376); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createStaticMemberImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_5_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(814); + } + + // Java.g:1875:2: (a1_0= parse_org_emftext_language_java_modifiers_Static ) + // Java.g:1876:3: a1_0= parse_org_emftext_language_java_modifiers_Static + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Static_in_parse_org_emftext_language_java_imports_StaticMemberImport1394); + a1_0=parse_org_emftext_language_java_modifiers_Static(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createStaticMemberImport(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.imports.ImportsPackage.STATIC_MEMBER_IMPORT__STATIC), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_5_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(816); + } + + // Java.g:1901:2: ( ( (a2= IDENTIFIER ) a3= '.' ) )* + loop18: + do { + int alt18=2; + int LA18_0 = input.LA(1); + + if ( (LA18_0==IDENTIFIER) ) { + int LA18_1 = input.LA(2); + + if ( (LA18_1==37) ) { + alt18=1; + } + + + } + + + switch (alt18) { + case 1 : + // Java.g:1902:3: ( (a2= IDENTIFIER ) a3= '.' ) + { + // Java.g:1902:3: ( (a2= IDENTIFIER ) a3= '.' ) + // Java.g:1903:4: (a2= IDENTIFIER ) a3= '.' + { + // Java.g:1903:4: (a2= IDENTIFIER ) + // Java.g:1904:5: a2= IDENTIFIER + { + a2=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_imports_StaticMemberImport1427); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createStaticMemberImport(); + startIncompleteElement(element); + } + if (a2 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a2.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.imports.ImportsPackage.STATIC_MEMBER_IMPORT__NAMESPACES), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a2).getLine(), ((CommonToken) a2).getCharPositionInLine(), ((CommonToken) a2).getStartIndex(), ((CommonToken) a2).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + addObjectToList(element, org.emftext.language.java.imports.ImportsPackage.STATIC_MEMBER_IMPORT__NAMESPACES, value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_5_0_0_2_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a2, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(817); + } + + a3=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_imports_StaticMemberImport1460); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createStaticMemberImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_5_0_0_2_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(819); + } + + } + + + } + break; + + default : + break loop18; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(821); + } + + // Java.g:1960:2: (a4= IDENTIFIER ) + // Java.g:1961:3: a4= IDENTIFIER + { + a4=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_imports_StaticMemberImport1497); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createStaticMemberImport(); + startIncompleteElement(element); + } + if (a4 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a4.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.imports.ImportsPackage.STATIC_MEMBER_IMPORT__STATIC_MEMBERS), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a4).getLine(), ((CommonToken) a4).getCharPositionInLine(), ((CommonToken) a4).getStartIndex(), ((CommonToken) a4).getStopIndex()); + } + String resolved = (String) resolvedObject; + org.emftext.language.java.references.ReferenceableElement proxy = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + collectHiddenTokens(element); + registerContextDependentProxy(new org.emftext.language.java.resource.java.mopp.JavaContextDependentURIFragmentFactory(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getStaticMemberImportStaticMembersReferenceResolver()), element, (EReference) element.eClass().getEStructuralFeature(org.emftext.language.java.imports.ImportsPackage.STATIC_MEMBER_IMPORT__STATIC_MEMBERS), resolved, proxy); + if (proxy != null) { + Object value = proxy; + addObjectToList(element, org.emftext.language.java.imports.ImportsPackage.STATIC_MEMBER_IMPORT__STATIC_MEMBERS, value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_5_0_0_3, proxy, true); + copyLocalizationInfos((CommonToken) a4, element); + copyLocalizationInfos((CommonToken) a4, proxy); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(822); + } + + a5=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_imports_StaticMemberImport1518); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createStaticMemberImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_5_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(823); + addExpectedElement(827); + addExpectedElement(828); + addExpectedElement(832); + addExpectedElement(833); + addExpectedElement(885); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 7, parse_org_emftext_language_java_imports_StaticMemberImport_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_imports_StaticMemberImport" + + + + // $ANTLR start "parse_org_emftext_language_java_imports_StaticClassifierImport" + // Java.g:2024:1: parse_org_emftext_language_java_imports_StaticClassifierImport returns [org.emftext.language.java.imports.StaticClassifierImport element = null] : a0= 'import' (a1_0= parse_org_emftext_language_java_modifiers_Static ) ( ( (a2= IDENTIFIER ) a3= '.' ) )+ a4= '*' a5= ';' ; + public final org.emftext.language.java.imports.StaticClassifierImport parse_org_emftext_language_java_imports_StaticClassifierImport() throws RecognitionException { + org.emftext.language.java.imports.StaticClassifierImport element = null; + + int parse_org_emftext_language_java_imports_StaticClassifierImport_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + Token a3=null; + Token a4=null; + Token a5=null; + org.emftext.language.java.modifiers.Static a1_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 8) ) { return element; } + + // Java.g:2027:2: (a0= 'import' (a1_0= parse_org_emftext_language_java_modifiers_Static ) ( ( (a2= IDENTIFIER ) a3= '.' ) )+ a4= '*' a5= ';' ) + // Java.g:2028:2: a0= 'import' (a1_0= parse_org_emftext_language_java_modifiers_Static ) ( ( (a2= IDENTIFIER ) a3= '.' ) )+ a4= '*' a5= ';' + { + a0=(Token)match(input,78,FOLLOW_78_in_parse_org_emftext_language_java_imports_StaticClassifierImport1547); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createStaticClassifierImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_6_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(886); + } + + // Java.g:2042:2: (a1_0= parse_org_emftext_language_java_modifiers_Static ) + // Java.g:2043:3: a1_0= parse_org_emftext_language_java_modifiers_Static + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Static_in_parse_org_emftext_language_java_imports_StaticClassifierImport1565); + a1_0=parse_org_emftext_language_java_modifiers_Static(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createStaticClassifierImport(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.imports.ImportsPackage.STATIC_CLASSIFIER_IMPORT__STATIC), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_6_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(887); + } + + // Java.g:2068:2: ( ( (a2= IDENTIFIER ) a3= '.' ) )+ + int cnt19=0; + loop19: + do { + int alt19=2; + int LA19_0 = input.LA(1); + + if ( (LA19_0==IDENTIFIER) ) { + alt19=1; + } + + + switch (alt19) { + case 1 : + // Java.g:2069:3: ( (a2= IDENTIFIER ) a3= '.' ) + { + // Java.g:2069:3: ( (a2= IDENTIFIER ) a3= '.' ) + // Java.g:2070:4: (a2= IDENTIFIER ) a3= '.' + { + // Java.g:2070:4: (a2= IDENTIFIER ) + // Java.g:2071:5: a2= IDENTIFIER + { + a2=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_imports_StaticClassifierImport1598); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createStaticClassifierImport(); + startIncompleteElement(element); + } + if (a2 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a2.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.imports.ImportsPackage.STATIC_CLASSIFIER_IMPORT__NAMESPACES), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a2).getLine(), ((CommonToken) a2).getCharPositionInLine(), ((CommonToken) a2).getStartIndex(), ((CommonToken) a2).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + addObjectToList(element, org.emftext.language.java.imports.ImportsPackage.STATIC_CLASSIFIER_IMPORT__NAMESPACES, value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_6_0_0_2_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a2, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(888); + } + + a3=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_imports_StaticClassifierImport1631); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createStaticClassifierImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_6_0_0_2_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(890); + } + + } + + + } + break; + + default : + if ( cnt19 >= 1 ) break loop19; + if (state.backtracking>0) {state.failed=true; return element;} + EarlyExitException eee = + new EarlyExitException(19, input); + throw eee; + } + cnt19++; + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(892); + } + + a4=(Token)match(input,28,FOLLOW_28_in_parse_org_emftext_language_java_imports_StaticClassifierImport1664); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createStaticClassifierImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_6_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(893); + } + + a5=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_imports_StaticClassifierImport1678); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.imports.ImportsFactory.eINSTANCE.createStaticClassifierImport(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_6_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(894); + addExpectedElement(898); + addExpectedElement(899); + addExpectedElement(903); + addExpectedElement(904); + addExpectedElement(956); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 8, parse_org_emftext_language_java_imports_StaticClassifierImport_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_imports_StaticClassifierImport" + + + + // $ANTLR start "parse_org_emftext_language_java_classifiers_Class" + // Java.g:2165:1: parse_org_emftext_language_java_classifiers_Class returns [org.emftext.language.java.classifiers.Class element = null] : ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* a1= 'class' (a2= IDENTIFIER ) ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' ) )? ( (a8= 'extends' (a9_0= parse_org_emftext_language_java_types_TypeReference ) ) )? ( (a10= 'implements' ( (a11_0= parse_org_emftext_language_java_types_TypeReference ) ( (a12= ',' (a13_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) )? a14= '{' ( ( (a15_0= parse_org_emftext_language_java_members_Member ) ) )* a16= '}' ; + public final org.emftext.language.java.classifiers.Class parse_org_emftext_language_java_classifiers_Class() throws RecognitionException { + org.emftext.language.java.classifiers.Class element = null; + + int parse_org_emftext_language_java_classifiers_Class_StartIndex = input.index(); + + Token a1=null; + Token a2=null; + Token a3=null; + Token a5=null; + Token a7=null; + Token a8=null; + Token a10=null; + Token a12=null; + Token a14=null; + Token a16=null; + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier a0_0 =null; + + org.emftext.language.java.generics.TypeParameter a4_0 =null; + + org.emftext.language.java.generics.TypeParameter a6_0 =null; + + org.emftext.language.java.types.TypeReference a9_0 =null; + + org.emftext.language.java.types.TypeReference a11_0 =null; + + org.emftext.language.java.types.TypeReference a13_0 =null; + + org.emftext.language.java.members.Member a15_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 9) ) { return element; } + + // Java.g:2168:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* a1= 'class' (a2= IDENTIFIER ) ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' ) )? ( (a8= 'extends' (a9_0= parse_org_emftext_language_java_types_TypeReference ) ) )? ( (a10= 'implements' ( (a11_0= parse_org_emftext_language_java_types_TypeReference ) ( (a12= ',' (a13_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) )? a14= '{' ( ( (a15_0= parse_org_emftext_language_java_members_Member ) ) )* a16= '}' ) + // Java.g:2169:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* a1= 'class' (a2= IDENTIFIER ) ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' ) )? ( (a8= 'extends' (a9_0= parse_org_emftext_language_java_types_TypeReference ) ) )? ( (a10= 'implements' ( (a11_0= parse_org_emftext_language_java_types_TypeReference ) ( (a12= ',' (a13_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) )? a14= '{' ( ( (a15_0= parse_org_emftext_language_java_members_Member ) ) )* a16= '}' + { + // Java.g:2169:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* + loop20: + do { + int alt20=2; + int LA20_0 = input.LA(1); + + if ( (LA20_0==48||LA20_0==56||LA20_0==72||LA20_0==83||(LA20_0 >= 87 && LA20_0 <= 89)||(LA20_0 >= 92 && LA20_0 <= 93)||LA20_0==96||LA20_0==100||LA20_0==103) ) { + alt20=1; + } + + + switch (alt20) { + case 1 : + // Java.g:2170:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + { + // Java.g:2170:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + // Java.g:2171:4: a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_classifiers_Class1716); + a0_0=parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.CLASS__ANNOTATIONS_AND_MODIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop20; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(968); + addExpectedElement(969); + } + + a1=(Token)match(input,64,FOLLOW_64_in_parse_org_emftext_language_java_classifiers_Class1742); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(970); + } + + // Java.g:2212:2: (a2= IDENTIFIER ) + // Java.g:2213:3: a2= IDENTIFIER + { + a2=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_classifiers_Class1760); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + if (a2 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a2.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.classifiers.ClassifiersPackage.CLASS__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a2).getLine(), ((CommonToken) a2).getCharPositionInLine(), ((CommonToken) a2).getStartIndex(), ((CommonToken) a2).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.classifiers.ClassifiersPackage.CLASS__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_2, resolved, true); + copyLocalizationInfos((CommonToken) a2, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(974); + } + + // Java.g:2248:2: ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' ) )? + int alt22=2; + int LA22_0 = input.LA(1); + + if ( (LA22_0==43) ) { + alt22=1; + } + switch (alt22) { + case 1 : + // Java.g:2249:3: (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' ) + { + // Java.g:2249:3: (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' ) + // Java.g:2250:4: a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' + { + a3=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_classifiers_Class1790); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_3_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(975); + } + + // Java.g:2264:4: (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:2265:5: a4_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_classifiers_Class1816); + a4_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.CLASS__TYPE_PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_3_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(977); + } + + // Java.g:2290:4: ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* + loop21: + do { + int alt21=2; + int LA21_0 = input.LA(1); + + if ( (LA21_0==33) ) { + alt21=1; + } + + + switch (alt21) { + case 1 : + // Java.g:2291:5: (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + { + // Java.g:2291:5: (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + // Java.g:2292:6: a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) + { + a5=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Class1857); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_3_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(978); + } + + // Java.g:2306:6: (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:2307:7: a6_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_classifiers_Class1891); + a6_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.CLASS__TYPE_PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_3_0_0_2_0_0_1, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(980); + } + + } + + + } + break; + + default : + break loop21; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(982); + } + + a7=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_classifiers_Class1952); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_3_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a7, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(985); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(988); + } + + // Java.g:2360:2: ( (a8= 'extends' (a9_0= parse_org_emftext_language_java_types_TypeReference ) ) )? + int alt23=2; + int LA23_0 = input.LA(1); + + if ( (LA23_0==71) ) { + alt23=1; + } + switch (alt23) { + case 1 : + // Java.g:2361:3: (a8= 'extends' (a9_0= parse_org_emftext_language_java_types_TypeReference ) ) + { + // Java.g:2361:3: (a8= 'extends' (a9_0= parse_org_emftext_language_java_types_TypeReference ) ) + // Java.g:2362:4: a8= 'extends' (a9_0= parse_org_emftext_language_java_types_TypeReference ) + { + a8=(Token)match(input,71,FOLLOW_71_in_parse_org_emftext_language_java_classifiers_Class1994); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_4_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a8, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(1000); + } + + // Java.g:2376:4: (a9_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:2377:5: a9_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Class2020); + a9_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + if (a9_0 != null) { + if (a9_0 != null) { + Object value = a9_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.classifiers.ClassifiersPackage.CLASS__EXTENDS), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_4_0_0_1, a9_0, true); + copyLocalizationInfos(a9_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(1002); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(1004); + } + + // Java.g:2409:2: ( (a10= 'implements' ( (a11_0= parse_org_emftext_language_java_types_TypeReference ) ( (a12= ',' (a13_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) )? + int alt25=2; + int LA25_0 = input.LA(1); + + if ( (LA25_0==77) ) { + alt25=1; + } + switch (alt25) { + case 1 : + // Java.g:2410:3: (a10= 'implements' ( (a11_0= parse_org_emftext_language_java_types_TypeReference ) ( (a12= ',' (a13_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) + { + // Java.g:2410:3: (a10= 'implements' ( (a11_0= parse_org_emftext_language_java_types_TypeReference ) ( (a12= ',' (a13_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) + // Java.g:2411:4: a10= 'implements' ( (a11_0= parse_org_emftext_language_java_types_TypeReference ) ( (a12= ',' (a13_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) + { + a10=(Token)match(input,77,FOLLOW_77_in_parse_org_emftext_language_java_classifiers_Class2070); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_5_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a10, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(1016); + } + + // Java.g:2425:4: ( (a11_0= parse_org_emftext_language_java_types_TypeReference ) ( (a12= ',' (a13_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) + // Java.g:2426:5: (a11_0= parse_org_emftext_language_java_types_TypeReference ) ( (a12= ',' (a13_0= parse_org_emftext_language_java_types_TypeReference ) ) )* + { + // Java.g:2426:5: (a11_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:2427:6: a11_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Class2103); + a11_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + if (a11_0 != null) { + if (a11_0 != null) { + Object value = a11_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.CLASS__IMPLEMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_5_0_0_1_0_0_0, a11_0, true); + copyLocalizationInfos(a11_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(1018); + } + + // Java.g:2452:5: ( (a12= ',' (a13_0= parse_org_emftext_language_java_types_TypeReference ) ) )* + loop24: + do { + int alt24=2; + int LA24_0 = input.LA(1); + + if ( (LA24_0==33) ) { + alt24=1; + } + + + switch (alt24) { + case 1 : + // Java.g:2453:6: (a12= ',' (a13_0= parse_org_emftext_language_java_types_TypeReference ) ) + { + // Java.g:2453:6: (a12= ',' (a13_0= parse_org_emftext_language_java_types_TypeReference ) ) + // Java.g:2454:7: a12= ',' (a13_0= parse_org_emftext_language_java_types_TypeReference ) + { + a12=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Class2151); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_5_0_0_1_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a12, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(1030); + } + + // Java.g:2468:7: (a13_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:2469:8: a13_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Class2189); + a13_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + if (a13_0 != null) { + if (a13_0 != null) { + Object value = a13_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.CLASS__IMPLEMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_5_0_0_1_0_0_1_0_0_1, a13_0, true); + copyLocalizationInfos(a13_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(1032); + } + + } + + + } + break; + + default : + break loop24; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(1034); + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(1035); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(1036); + } + + a14=(Token)match(input,105,FOLLOW_105_in_parse_org_emftext_language_java_classifiers_Class2286); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_7, null, true); + copyLocalizationInfos((CommonToken)a14, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(1214); + addExpectedElement(1215); + } + + // Java.g:2529:2: ( ( (a15_0= parse_org_emftext_language_java_members_Member ) ) )* + loop26: + do { + int alt26=2; + int LA26_0 = input.LA(1); + + if ( (LA26_0==IDENTIFIER||(LA26_0 >= 42 && LA26_0 <= 43)||LA26_0==48||LA26_0==56||LA26_0==58||LA26_0==60||(LA26_0 >= 63 && LA26_0 <= 64)||LA26_0==68||LA26_0==70||LA26_0==72||LA26_0==74||(LA26_0 >= 80 && LA26_0 <= 83)||(LA26_0 >= 87 && LA26_0 <= 89)||(LA26_0 >= 91 && LA26_0 <= 93)||LA26_0==96||LA26_0==100||(LA26_0 >= 102 && LA26_0 <= 103)||LA26_0==105) ) { + alt26=1; + } + + + switch (alt26) { + case 1 : + // Java.g:2530:3: ( (a15_0= parse_org_emftext_language_java_members_Member ) ) + { + // Java.g:2530:3: ( (a15_0= parse_org_emftext_language_java_members_Member ) ) + // Java.g:2531:4: (a15_0= parse_org_emftext_language_java_members_Member ) + { + // Java.g:2531:4: (a15_0= parse_org_emftext_language_java_members_Member ) + // Java.g:2532:5: a15_0= parse_org_emftext_language_java_members_Member + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_Member_in_parse_org_emftext_language_java_classifiers_Class2315); + a15_0=parse_org_emftext_language_java_members_Member(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + if (a15_0 != null) { + if (a15_0 != null) { + Object value = a15_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.CLASS__MEMBERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_8_0_0_1, a15_0, true); + copyLocalizationInfos(a15_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(1393); + addExpectedElement(1394); + } + + } + + + } + break; + + default : + break loop26; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(1572); + addExpectedElement(1573); + } + + a16=(Token)match(input,109,FOLLOW_109_in_parse_org_emftext_language_java_classifiers_Class2356); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_7_0_0_10, null, true); + copyLocalizationInfos((CommonToken)a16, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(1574); + addExpectedElement(1626); + addExpectedElement(1627); + addExpectedElement(1805); + addExpectedElement(1806); + addExpectedElement(1984); + addExpectedElement(1985); + addExpectedElement(2163); + addExpectedElement(2164); + addExpectedElement(2342); + addExpectedElement(2343); + addExpectedElement(2521); + addExpectedElement(2522); + addExpectedElement(2709); + addExpectedElement(2710); + addExpectedElement(2897); + addExpectedElement(2898); + addExpectedElement(3085); + addExpectedElement(3088); + addExpectedElement(3275); + addExpectedElement(3276); + addExpectedElement(3463); + addExpectedElement(3464); + addExpectedElement(3651); + addExpectedElement(3652); + addExpectedElement(3839); + addExpectedElement(3841); + addExpectedElement(3842); + addExpectedElement(4029); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 9, parse_org_emftext_language_java_classifiers_Class_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_classifiers_Class" + + + + // $ANTLR start "parse_org_emftext_language_java_classifiers_AnonymousClass" + // Java.g:2613:1: parse_org_emftext_language_java_classifiers_AnonymousClass returns [org.emftext.language.java.classifiers.AnonymousClass element = null] : a0= '{' ( ( (a1_0= parse_org_emftext_language_java_members_Member ) ) )* a2= '}' ; + public final org.emftext.language.java.classifiers.AnonymousClass parse_org_emftext_language_java_classifiers_AnonymousClass() throws RecognitionException { + org.emftext.language.java.classifiers.AnonymousClass element = null; + + int parse_org_emftext_language_java_classifiers_AnonymousClass_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + org.emftext.language.java.members.Member a1_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 10) ) { return element; } + + // Java.g:2616:2: (a0= '{' ( ( (a1_0= parse_org_emftext_language_java_members_Member ) ) )* a2= '}' ) + // Java.g:2617:2: a0= '{' ( ( (a1_0= parse_org_emftext_language_java_members_Member ) ) )* a2= '}' + { + a0=(Token)match(input,105,FOLLOW_105_in_parse_org_emftext_language_java_classifiers_AnonymousClass2385); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createAnonymousClass(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_8_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4207); + addExpectedElement(4208); + } + + // Java.g:2632:2: ( ( (a1_0= parse_org_emftext_language_java_members_Member ) ) )* + loop27: + do { + int alt27=2; + int LA27_0 = input.LA(1); + + if ( (LA27_0==IDENTIFIER||(LA27_0 >= 42 && LA27_0 <= 43)||LA27_0==48||LA27_0==56||LA27_0==58||LA27_0==60||(LA27_0 >= 63 && LA27_0 <= 64)||LA27_0==68||LA27_0==70||LA27_0==72||LA27_0==74||(LA27_0 >= 80 && LA27_0 <= 83)||(LA27_0 >= 87 && LA27_0 <= 89)||(LA27_0 >= 91 && LA27_0 <= 93)||LA27_0==96||LA27_0==100||(LA27_0 >= 102 && LA27_0 <= 103)||LA27_0==105) ) { + alt27=1; + } + + + switch (alt27) { + case 1 : + // Java.g:2633:3: ( (a1_0= parse_org_emftext_language_java_members_Member ) ) + { + // Java.g:2633:3: ( (a1_0= parse_org_emftext_language_java_members_Member ) ) + // Java.g:2634:4: (a1_0= parse_org_emftext_language_java_members_Member ) + { + // Java.g:2634:4: (a1_0= parse_org_emftext_language_java_members_Member ) + // Java.g:2635:5: a1_0= parse_org_emftext_language_java_members_Member + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_Member_in_parse_org_emftext_language_java_classifiers_AnonymousClass2414); + a1_0=parse_org_emftext_language_java_members_Member(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createAnonymousClass(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.ANONYMOUS_CLASS__MEMBERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_8_0_0_2_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4386); + addExpectedElement(4387); + } + + } + + + } + break; + + default : + break loop27; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4565); + addExpectedElement(4566); + } + + a2=(Token)match(input,109,FOLLOW_109_in_parse_org_emftext_language_java_classifiers_AnonymousClass2455); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createAnonymousClass(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_8_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(4571); + addExpectedElement(4573); + addExpectedElement(4576); + addExpectedElement(4578); + addExpectedElement(4581); + addExpectedElement(4585); + addExpectedElement(4586); + addExpectedElement(4588); + addExpectedElement(4597); + addExpectedElement(4609); + addExpectedElement(4633); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 10, parse_org_emftext_language_java_classifiers_AnonymousClass_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_classifiers_AnonymousClass" + + + + // $ANTLR start "parse_org_emftext_language_java_classifiers_Interface" + // Java.g:2698:1: parse_org_emftext_language_java_classifiers_Interface returns [org.emftext.language.java.classifiers.Interface element = null] : ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* a1= 'interface' (a2= IDENTIFIER ) ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' ) )? ( (a8= 'extends' ( (a9_0= parse_org_emftext_language_java_types_TypeReference ) ( (a10= ',' (a11_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) )? a12= '{' ( ( (a13_0= parse_org_emftext_language_java_members_Member ) ) )* a14= '}' ; + public final org.emftext.language.java.classifiers.Interface parse_org_emftext_language_java_classifiers_Interface() throws RecognitionException { + org.emftext.language.java.classifiers.Interface element = null; + + int parse_org_emftext_language_java_classifiers_Interface_StartIndex = input.index(); + + Token a1=null; + Token a2=null; + Token a3=null; + Token a5=null; + Token a7=null; + Token a8=null; + Token a10=null; + Token a12=null; + Token a14=null; + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier a0_0 =null; + + org.emftext.language.java.generics.TypeParameter a4_0 =null; + + org.emftext.language.java.generics.TypeParameter a6_0 =null; + + org.emftext.language.java.types.TypeReference a9_0 =null; + + org.emftext.language.java.types.TypeReference a11_0 =null; + + org.emftext.language.java.members.Member a13_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 11) ) { return element; } + + // Java.g:2701:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* a1= 'interface' (a2= IDENTIFIER ) ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' ) )? ( (a8= 'extends' ( (a9_0= parse_org_emftext_language_java_types_TypeReference ) ( (a10= ',' (a11_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) )? a12= '{' ( ( (a13_0= parse_org_emftext_language_java_members_Member ) ) )* a14= '}' ) + // Java.g:2702:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* a1= 'interface' (a2= IDENTIFIER ) ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' ) )? ( (a8= 'extends' ( (a9_0= parse_org_emftext_language_java_types_TypeReference ) ( (a10= ',' (a11_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) )? a12= '{' ( ( (a13_0= parse_org_emftext_language_java_members_Member ) ) )* a14= '}' + { + // Java.g:2702:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* + loop28: + do { + int alt28=2; + int LA28_0 = input.LA(1); + + if ( (LA28_0==48||LA28_0==56||LA28_0==72||LA28_0==83||(LA28_0 >= 87 && LA28_0 <= 89)||(LA28_0 >= 92 && LA28_0 <= 93)||LA28_0==96||LA28_0==100||LA28_0==103) ) { + alt28=1; + } + + + switch (alt28) { + case 1 : + // Java.g:2703:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + { + // Java.g:2703:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + // Java.g:2704:4: a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_classifiers_Interface2493); + a0_0=parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.INTERFACE__ANNOTATIONS_AND_MODIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop28; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4645); + addExpectedElement(4646); + } + + a1=(Token)match(input,81,FOLLOW_81_in_parse_org_emftext_language_java_classifiers_Interface2519); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4647); + } + + // Java.g:2745:2: (a2= IDENTIFIER ) + // Java.g:2746:3: a2= IDENTIFIER + { + a2=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_classifiers_Interface2537); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + if (a2 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a2.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.classifiers.ClassifiersPackage.INTERFACE__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a2).getLine(), ((CommonToken) a2).getCharPositionInLine(), ((CommonToken) a2).getStartIndex(), ((CommonToken) a2).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.classifiers.ClassifiersPackage.INTERFACE__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_2, resolved, true); + copyLocalizationInfos((CommonToken) a2, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4650); + } + + // Java.g:2781:2: ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' ) )? + int alt30=2; + int LA30_0 = input.LA(1); + + if ( (LA30_0==43) ) { + alt30=1; + } + switch (alt30) { + case 1 : + // Java.g:2782:3: (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' ) + { + // Java.g:2782:3: (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' ) + // Java.g:2783:4: a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a7= '>' + { + a3=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_classifiers_Interface2567); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_3_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4651); + } + + // Java.g:2797:4: (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:2798:5: a4_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_classifiers_Interface2593); + a4_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.INTERFACE__TYPE_PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_3_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4653); + } + + // Java.g:2823:4: ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* + loop29: + do { + int alt29=2; + int LA29_0 = input.LA(1); + + if ( (LA29_0==33) ) { + alt29=1; + } + + + switch (alt29) { + case 1 : + // Java.g:2824:5: (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + { + // Java.g:2824:5: (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + // Java.g:2825:6: a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) + { + a5=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Interface2634); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_3_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4654); + } + + // Java.g:2839:6: (a6_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:2840:7: a6_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_classifiers_Interface2668); + a6_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.INTERFACE__TYPE_PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_3_0_0_2_0_0_1, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4656); + } + + } + + + } + break; + + default : + break loop29; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4658); + } + + a7=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_classifiers_Interface2729); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_3_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a7, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4660); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4662); + } + + // Java.g:2893:2: ( (a8= 'extends' ( (a9_0= parse_org_emftext_language_java_types_TypeReference ) ( (a10= ',' (a11_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) )? + int alt32=2; + int LA32_0 = input.LA(1); + + if ( (LA32_0==71) ) { + alt32=1; + } + switch (alt32) { + case 1 : + // Java.g:2894:3: (a8= 'extends' ( (a9_0= parse_org_emftext_language_java_types_TypeReference ) ( (a10= ',' (a11_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) + { + // Java.g:2894:3: (a8= 'extends' ( (a9_0= parse_org_emftext_language_java_types_TypeReference ) ( (a10= ',' (a11_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) + // Java.g:2895:4: a8= 'extends' ( (a9_0= parse_org_emftext_language_java_types_TypeReference ) ( (a10= ',' (a11_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) + { + a8=(Token)match(input,71,FOLLOW_71_in_parse_org_emftext_language_java_classifiers_Interface2771); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_4_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a8, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4674); + } + + // Java.g:2909:4: ( (a9_0= parse_org_emftext_language_java_types_TypeReference ) ( (a10= ',' (a11_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) + // Java.g:2910:5: (a9_0= parse_org_emftext_language_java_types_TypeReference ) ( (a10= ',' (a11_0= parse_org_emftext_language_java_types_TypeReference ) ) )* + { + // Java.g:2910:5: (a9_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:2911:6: a9_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Interface2804); + a9_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + if (a9_0 != null) { + if (a9_0 != null) { + Object value = a9_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.INTERFACE__EXTENDS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_4_0_0_1_0_0_0, a9_0, true); + copyLocalizationInfos(a9_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4676); + } + + // Java.g:2936:5: ( (a10= ',' (a11_0= parse_org_emftext_language_java_types_TypeReference ) ) )* + loop31: + do { + int alt31=2; + int LA31_0 = input.LA(1); + + if ( (LA31_0==33) ) { + alt31=1; + } + + + switch (alt31) { + case 1 : + // Java.g:2937:6: (a10= ',' (a11_0= parse_org_emftext_language_java_types_TypeReference ) ) + { + // Java.g:2937:6: (a10= ',' (a11_0= parse_org_emftext_language_java_types_TypeReference ) ) + // Java.g:2938:7: a10= ',' (a11_0= parse_org_emftext_language_java_types_TypeReference ) + { + a10=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Interface2852); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_4_0_0_1_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a10, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4688); + } + + // Java.g:2952:7: (a11_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:2953:8: a11_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Interface2890); + a11_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + if (a11_0 != null) { + if (a11_0 != null) { + Object value = a11_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.INTERFACE__EXTENDS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_4_0_0_1_0_0_1_0_0_1, a11_0, true); + copyLocalizationInfos(a11_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4690); + } + + } + + + } + break; + + default : + break loop31; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4692); + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4693); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4694); + } + + a12=(Token)match(input,105,FOLLOW_105_in_parse_org_emftext_language_java_classifiers_Interface2987); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_6, null, true); + copyLocalizationInfos((CommonToken)a12, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(4872); + addExpectedElement(4873); + } + + // Java.g:3013:2: ( ( (a13_0= parse_org_emftext_language_java_members_Member ) ) )* + loop33: + do { + int alt33=2; + int LA33_0 = input.LA(1); + + if ( (LA33_0==IDENTIFIER||(LA33_0 >= 42 && LA33_0 <= 43)||LA33_0==48||LA33_0==56||LA33_0==58||LA33_0==60||(LA33_0 >= 63 && LA33_0 <= 64)||LA33_0==68||LA33_0==70||LA33_0==72||LA33_0==74||(LA33_0 >= 80 && LA33_0 <= 83)||(LA33_0 >= 87 && LA33_0 <= 89)||(LA33_0 >= 91 && LA33_0 <= 93)||LA33_0==96||LA33_0==100||(LA33_0 >= 102 && LA33_0 <= 103)||LA33_0==105) ) { + alt33=1; + } + + + switch (alt33) { + case 1 : + // Java.g:3014:3: ( (a13_0= parse_org_emftext_language_java_members_Member ) ) + { + // Java.g:3014:3: ( (a13_0= parse_org_emftext_language_java_members_Member ) ) + // Java.g:3015:4: (a13_0= parse_org_emftext_language_java_members_Member ) + { + // Java.g:3015:4: (a13_0= parse_org_emftext_language_java_members_Member ) + // Java.g:3016:5: a13_0= parse_org_emftext_language_java_members_Member + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_Member_in_parse_org_emftext_language_java_classifiers_Interface3016); + a13_0=parse_org_emftext_language_java_members_Member(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + if (a13_0 != null) { + if (a13_0 != null) { + Object value = a13_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.INTERFACE__MEMBERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_7_0_0_1, a13_0, true); + copyLocalizationInfos(a13_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(5051); + addExpectedElement(5052); + } + + } + + + } + break; + + default : + break loop33; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(5230); + addExpectedElement(5231); + } + + a14=(Token)match(input,109,FOLLOW_109_in_parse_org_emftext_language_java_classifiers_Interface3057); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createInterface(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_9_0_0_9, null, true); + copyLocalizationInfos((CommonToken)a14, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(5232); + addExpectedElement(5284); + addExpectedElement(5285); + addExpectedElement(5463); + addExpectedElement(5464); + addExpectedElement(5642); + addExpectedElement(5643); + addExpectedElement(5821); + addExpectedElement(5822); + addExpectedElement(6000); + addExpectedElement(6001); + addExpectedElement(6179); + addExpectedElement(6180); + addExpectedElement(6367); + addExpectedElement(6368); + addExpectedElement(6555); + addExpectedElement(6556); + addExpectedElement(6743); + addExpectedElement(6746); + addExpectedElement(6933); + addExpectedElement(6934); + addExpectedElement(7121); + addExpectedElement(7122); + addExpectedElement(7309); + addExpectedElement(7310); + addExpectedElement(7497); + addExpectedElement(7499); + addExpectedElement(7500); + addExpectedElement(7687); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 11, parse_org_emftext_language_java_classifiers_Interface_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_classifiers_Interface" + + + + // $ANTLR start "parse_org_emftext_language_java_classifiers_Enumeration" + // Java.g:3097:1: parse_org_emftext_language_java_classifiers_Enumeration returns [org.emftext.language.java.classifiers.Enumeration element = null] : ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* a1= 'enum' (a2= IDENTIFIER ) ( (a3= 'implements' ( (a4_0= parse_org_emftext_language_java_types_TypeReference ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) )? a7= '{' ( ( (a8_0= parse_org_emftext_language_java_members_EnumConstant ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_members_EnumConstant ) ) )* ) )? ( (a11= ',' ) )? ( (a12= ';' ( ( (a13_0= parse_org_emftext_language_java_members_Member ) ) )* ) )? a14= '}' ; + public final org.emftext.language.java.classifiers.Enumeration parse_org_emftext_language_java_classifiers_Enumeration() throws RecognitionException { + org.emftext.language.java.classifiers.Enumeration element = null; + + int parse_org_emftext_language_java_classifiers_Enumeration_StartIndex = input.index(); + + Token a1=null; + Token a2=null; + Token a3=null; + Token a5=null; + Token a7=null; + Token a9=null; + Token a11=null; + Token a12=null; + Token a14=null; + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier a0_0 =null; + + org.emftext.language.java.types.TypeReference a4_0 =null; + + org.emftext.language.java.types.TypeReference a6_0 =null; + + org.emftext.language.java.members.EnumConstant a8_0 =null; + + org.emftext.language.java.members.EnumConstant a10_0 =null; + + org.emftext.language.java.members.Member a13_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 12) ) { return element; } + + // Java.g:3100:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* a1= 'enum' (a2= IDENTIFIER ) ( (a3= 'implements' ( (a4_0= parse_org_emftext_language_java_types_TypeReference ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) )? a7= '{' ( ( (a8_0= parse_org_emftext_language_java_members_EnumConstant ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_members_EnumConstant ) ) )* ) )? ( (a11= ',' ) )? ( (a12= ';' ( ( (a13_0= parse_org_emftext_language_java_members_Member ) ) )* ) )? a14= '}' ) + // Java.g:3101:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* a1= 'enum' (a2= IDENTIFIER ) ( (a3= 'implements' ( (a4_0= parse_org_emftext_language_java_types_TypeReference ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) )? a7= '{' ( ( (a8_0= parse_org_emftext_language_java_members_EnumConstant ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_members_EnumConstant ) ) )* ) )? ( (a11= ',' ) )? ( (a12= ';' ( ( (a13_0= parse_org_emftext_language_java_members_Member ) ) )* ) )? a14= '}' + { + // Java.g:3101:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* + loop34: + do { + int alt34=2; + int LA34_0 = input.LA(1); + + if ( (LA34_0==48||LA34_0==56||LA34_0==72||LA34_0==83||(LA34_0 >= 87 && LA34_0 <= 89)||(LA34_0 >= 92 && LA34_0 <= 93)||LA34_0==96||LA34_0==100||LA34_0==103) ) { + alt34=1; + } + + + switch (alt34) { + case 1 : + // Java.g:3102:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + { + // Java.g:3102:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + // Java.g:3103:4: a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_classifiers_Enumeration3095); + a0_0=parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.ENUMERATION__ANNOTATIONS_AND_MODIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop34; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7699); + addExpectedElement(7700); + } + + a1=(Token)match(input,70,FOLLOW_70_in_parse_org_emftext_language_java_classifiers_Enumeration3121); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7701); + } + + // Java.g:3144:2: (a2= IDENTIFIER ) + // Java.g:3145:3: a2= IDENTIFIER + { + a2=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_classifiers_Enumeration3139); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + if (a2 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a2.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.classifiers.ClassifiersPackage.ENUMERATION__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a2).getLine(), ((CommonToken) a2).getCharPositionInLine(), ((CommonToken) a2).getStartIndex(), ((CommonToken) a2).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.classifiers.ClassifiersPackage.ENUMERATION__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_2, resolved, true); + copyLocalizationInfos((CommonToken) a2, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7703); + } + + // Java.g:3180:2: ( (a3= 'implements' ( (a4_0= parse_org_emftext_language_java_types_TypeReference ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) )? + int alt36=2; + int LA36_0 = input.LA(1); + + if ( (LA36_0==77) ) { + alt36=1; + } + switch (alt36) { + case 1 : + // Java.g:3181:3: (a3= 'implements' ( (a4_0= parse_org_emftext_language_java_types_TypeReference ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) + { + // Java.g:3181:3: (a3= 'implements' ( (a4_0= parse_org_emftext_language_java_types_TypeReference ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) ) + // Java.g:3182:4: a3= 'implements' ( (a4_0= parse_org_emftext_language_java_types_TypeReference ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) + { + a3=(Token)match(input,77,FOLLOW_77_in_parse_org_emftext_language_java_classifiers_Enumeration3169); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_3_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7715); + } + + // Java.g:3196:4: ( (a4_0= parse_org_emftext_language_java_types_TypeReference ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) + // Java.g:3197:5: (a4_0= parse_org_emftext_language_java_types_TypeReference ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_types_TypeReference ) ) )* + { + // Java.g:3197:5: (a4_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:3198:6: a4_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Enumeration3202); + a4_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.ENUMERATION__IMPLEMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_3_0_0_1_0_0_0, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7717); + } + + // Java.g:3223:5: ( (a5= ',' (a6_0= parse_org_emftext_language_java_types_TypeReference ) ) )* + loop35: + do { + int alt35=2; + int LA35_0 = input.LA(1); + + if ( (LA35_0==33) ) { + alt35=1; + } + + + switch (alt35) { + case 1 : + // Java.g:3224:6: (a5= ',' (a6_0= parse_org_emftext_language_java_types_TypeReference ) ) + { + // Java.g:3224:6: (a5= ',' (a6_0= parse_org_emftext_language_java_types_TypeReference ) ) + // Java.g:3225:7: a5= ',' (a6_0= parse_org_emftext_language_java_types_TypeReference ) + { + a5=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Enumeration3250); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_3_0_0_1_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7729); + } + + // Java.g:3239:7: (a6_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:3240:8: a6_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Enumeration3288); + a6_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.ENUMERATION__IMPLEMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_3_0_0_1_0_0_1_0_0_1, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7731); + } + + } + + + } + break; + + default : + break loop35; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7733); + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7734); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7735); + } + + a7=(Token)match(input,105,FOLLOW_105_in_parse_org_emftext_language_java_classifiers_Enumeration3385); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_5, null, true); + copyLocalizationInfos((CommonToken)a7, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7737); + addExpectedElement(7740); + } + + // Java.g:3300:2: ( ( (a8_0= parse_org_emftext_language_java_members_EnumConstant ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_members_EnumConstant ) ) )* ) )? + int alt38=2; + int LA38_0 = input.LA(1); + + if ( (LA38_0==IDENTIFIER||LA38_0==48) ) { + alt38=1; + } + switch (alt38) { + case 1 : + // Java.g:3301:3: ( (a8_0= parse_org_emftext_language_java_members_EnumConstant ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_members_EnumConstant ) ) )* ) + { + // Java.g:3301:3: ( (a8_0= parse_org_emftext_language_java_members_EnumConstant ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_members_EnumConstant ) ) )* ) + // Java.g:3302:4: (a8_0= parse_org_emftext_language_java_members_EnumConstant ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_members_EnumConstant ) ) )* + { + // Java.g:3302:4: (a8_0= parse_org_emftext_language_java_members_EnumConstant ) + // Java.g:3303:5: a8_0= parse_org_emftext_language_java_members_EnumConstant + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_EnumConstant_in_parse_org_emftext_language_java_classifiers_Enumeration3414); + a8_0=parse_org_emftext_language_java_members_EnumConstant(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + if (a8_0 != null) { + if (a8_0 != null) { + Object value = a8_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.ENUMERATION__CONSTANTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_6_0_0_1, a8_0, true); + copyLocalizationInfos(a8_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7744); + } + + // Java.g:3328:4: ( (a9= ',' (a10_0= parse_org_emftext_language_java_members_EnumConstant ) ) )* + loop37: + do { + int alt37=2; + int LA37_0 = input.LA(1); + + if ( (LA37_0==33) ) { + int LA37_1 = input.LA(2); + + if ( (LA37_1==IDENTIFIER||LA37_1==48) ) { + alt37=1; + } + + + } + + + switch (alt37) { + case 1 : + // Java.g:3329:5: (a9= ',' (a10_0= parse_org_emftext_language_java_members_EnumConstant ) ) + { + // Java.g:3329:5: (a9= ',' (a10_0= parse_org_emftext_language_java_members_EnumConstant ) ) + // Java.g:3330:6: a9= ',' (a10_0= parse_org_emftext_language_java_members_EnumConstant ) + { + a9=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Enumeration3455); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_6_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a9, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7746); + } + + // Java.g:3344:6: (a10_0= parse_org_emftext_language_java_members_EnumConstant ) + // Java.g:3345:7: a10_0= parse_org_emftext_language_java_members_EnumConstant + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_EnumConstant_in_parse_org_emftext_language_java_classifiers_Enumeration3489); + a10_0=parse_org_emftext_language_java_members_EnumConstant(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + if (a10_0 != null) { + if (a10_0 != null) { + Object value = a10_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.ENUMERATION__CONSTANTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_6_0_0_2_0_0_2, a10_0, true); + copyLocalizationInfos(a10_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7750); + } + + } + + + } + break; + + default : + break loop37; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7754); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7757); + } + + // Java.g:3384:2: ( (a11= ',' ) )? + int alt39=2; + int LA39_0 = input.LA(1); + + if ( (LA39_0==33) ) { + alt39=1; + } + switch (alt39) { + case 1 : + // Java.g:3385:3: (a11= ',' ) + { + // Java.g:3385:3: (a11= ',' ) + // Java.g:3386:4: a11= ',' + { + a11=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Enumeration3572); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_7_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a11, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7759); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7761); + } + + // Java.g:3407:2: ( (a12= ';' ( ( (a13_0= parse_org_emftext_language_java_members_Member ) ) )* ) )? + int alt41=2; + int LA41_0 = input.LA(1); + + if ( (LA41_0==42) ) { + alt41=1; + } + switch (alt41) { + case 1 : + // Java.g:3408:3: (a12= ';' ( ( (a13_0= parse_org_emftext_language_java_members_Member ) ) )* ) + { + // Java.g:3408:3: (a12= ';' ( ( (a13_0= parse_org_emftext_language_java_members_Member ) ) )* ) + // Java.g:3409:4: a12= ';' ( ( (a13_0= parse_org_emftext_language_java_members_Member ) ) )* + { + a12=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_classifiers_Enumeration3614); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_8_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a12, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(7939); + addExpectedElement(7940); + } + + // Java.g:3424:4: ( ( (a13_0= parse_org_emftext_language_java_members_Member ) ) )* + loop40: + do { + int alt40=2; + int LA40_0 = input.LA(1); + + if ( (LA40_0==IDENTIFIER||(LA40_0 >= 42 && LA40_0 <= 43)||LA40_0==48||LA40_0==56||LA40_0==58||LA40_0==60||(LA40_0 >= 63 && LA40_0 <= 64)||LA40_0==68||LA40_0==70||LA40_0==72||LA40_0==74||(LA40_0 >= 80 && LA40_0 <= 83)||(LA40_0 >= 87 && LA40_0 <= 89)||(LA40_0 >= 91 && LA40_0 <= 93)||LA40_0==96||LA40_0==100||(LA40_0 >= 102 && LA40_0 <= 103)||LA40_0==105) ) { + alt40=1; + } + + + switch (alt40) { + case 1 : + // Java.g:3425:5: ( (a13_0= parse_org_emftext_language_java_members_Member ) ) + { + // Java.g:3425:5: ( (a13_0= parse_org_emftext_language_java_members_Member ) ) + // Java.g:3426:6: (a13_0= parse_org_emftext_language_java_members_Member ) + { + // Java.g:3426:6: (a13_0= parse_org_emftext_language_java_members_Member ) + // Java.g:3427:7: a13_0= parse_org_emftext_language_java_members_Member + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_Member_in_parse_org_emftext_language_java_classifiers_Enumeration3655); + a13_0=parse_org_emftext_language_java_members_Member(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + if (a13_0 != null) { + if (a13_0 != null) { + Object value = a13_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.ENUMERATION__MEMBERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_8_0_0_1_0_0_1, a13_0, true); + copyLocalizationInfos(a13_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(8118); + addExpectedElement(8119); + } + + } + + + } + break; + + default : + break loop40; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(8297); + addExpectedElement(8298); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(8299); + } + + a14=(Token)match(input,109,FOLLOW_109_in_parse_org_emftext_language_java_classifiers_Enumeration3729); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createEnumeration(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_10_0_0_9, null, true); + copyLocalizationInfos((CommonToken)a14, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(8300); + addExpectedElement(8352); + addExpectedElement(8353); + addExpectedElement(8531); + addExpectedElement(8532); + addExpectedElement(8710); + addExpectedElement(8711); + addExpectedElement(8889); + addExpectedElement(8890); + addExpectedElement(9068); + addExpectedElement(9069); + addExpectedElement(9247); + addExpectedElement(9248); + addExpectedElement(9435); + addExpectedElement(9436); + addExpectedElement(9623); + addExpectedElement(9624); + addExpectedElement(9811); + addExpectedElement(9814); + addExpectedElement(10001); + addExpectedElement(10002); + addExpectedElement(10189); + addExpectedElement(10190); + addExpectedElement(10377); + addExpectedElement(10378); + addExpectedElement(10565); + addExpectedElement(10567); + addExpectedElement(10568); + addExpectedElement(10755); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 12, parse_org_emftext_language_java_classifiers_Enumeration_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_classifiers_Enumeration" + + + + // $ANTLR start "parse_org_emftext_language_java_classifiers_Annotation" + // Java.g:3515:1: parse_org_emftext_language_java_classifiers_Annotation returns [org.emftext.language.java.classifiers.Annotation element = null] : ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* a1= '@' a2= 'interface' (a3= IDENTIFIER ) a4= '{' ( ( (a5_0= parse_org_emftext_language_java_members_Member ) ) )* a6= '}' ; + public final org.emftext.language.java.classifiers.Annotation parse_org_emftext_language_java_classifiers_Annotation() throws RecognitionException { + org.emftext.language.java.classifiers.Annotation element = null; + + int parse_org_emftext_language_java_classifiers_Annotation_StartIndex = input.index(); + + Token a1=null; + Token a2=null; + Token a3=null; + Token a4=null; + Token a6=null; + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier a0_0 =null; + + org.emftext.language.java.members.Member a5_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 13) ) { return element; } + + // Java.g:3518:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* a1= '@' a2= 'interface' (a3= IDENTIFIER ) a4= '{' ( ( (a5_0= parse_org_emftext_language_java_members_Member ) ) )* a6= '}' ) + // Java.g:3519:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* a1= '@' a2= 'interface' (a3= IDENTIFIER ) a4= '{' ( ( (a5_0= parse_org_emftext_language_java_members_Member ) ) )* a6= '}' + { + // Java.g:3519:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* + loop42: + do { + int alt42=2; + int LA42_0 = input.LA(1); + + if ( (LA42_0==48) ) { + int LA42_1 = input.LA(2); + + if ( (LA42_1==IDENTIFIER) ) { + alt42=1; + } + + + } + else if ( (LA42_0==56||LA42_0==72||LA42_0==83||(LA42_0 >= 87 && LA42_0 <= 89)||(LA42_0 >= 92 && LA42_0 <= 93)||LA42_0==96||LA42_0==100||LA42_0==103) ) { + alt42=1; + } + + + switch (alt42) { + case 1 : + // Java.g:3520:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + { + // Java.g:3520:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + // Java.g:3521:4: a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_classifiers_Annotation3767); + a0_0=parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createAnnotation(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.ANNOTATION__ANNOTATIONS_AND_MODIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_11_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop42; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(10767); + addExpectedElement(10768); + } + + a1=(Token)match(input,48,FOLLOW_48_in_parse_org_emftext_language_java_classifiers_Annotation3793); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createAnnotation(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_11_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(10769); + } + + a2=(Token)match(input,81,FOLLOW_81_in_parse_org_emftext_language_java_classifiers_Annotation3807); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createAnnotation(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_11_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(10770); + } + + // Java.g:3576:2: (a3= IDENTIFIER ) + // Java.g:3577:3: a3= IDENTIFIER + { + a3=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_classifiers_Annotation3825); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createAnnotation(); + startIncompleteElement(element); + } + if (a3 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a3.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.classifiers.ClassifiersPackage.ANNOTATION__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a3).getLine(), ((CommonToken) a3).getCharPositionInLine(), ((CommonToken) a3).getStartIndex(), ((CommonToken) a3).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.classifiers.ClassifiersPackage.ANNOTATION__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_11_0_0_3, resolved, true); + copyLocalizationInfos((CommonToken) a3, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(10771); + } + + a4=(Token)match(input,105,FOLLOW_105_in_parse_org_emftext_language_java_classifiers_Annotation3846); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createAnnotation(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_11_0_0_5, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(10949); + addExpectedElement(10950); + } + + // Java.g:3627:2: ( ( (a5_0= parse_org_emftext_language_java_members_Member ) ) )* + loop43: + do { + int alt43=2; + int LA43_0 = input.LA(1); + + if ( (LA43_0==IDENTIFIER||(LA43_0 >= 42 && LA43_0 <= 43)||LA43_0==48||LA43_0==56||LA43_0==58||LA43_0==60||(LA43_0 >= 63 && LA43_0 <= 64)||LA43_0==68||LA43_0==70||LA43_0==72||LA43_0==74||(LA43_0 >= 80 && LA43_0 <= 83)||(LA43_0 >= 87 && LA43_0 <= 89)||(LA43_0 >= 91 && LA43_0 <= 93)||LA43_0==96||LA43_0==100||(LA43_0 >= 102 && LA43_0 <= 103)||LA43_0==105) ) { + alt43=1; + } + + + switch (alt43) { + case 1 : + // Java.g:3628:3: ( (a5_0= parse_org_emftext_language_java_members_Member ) ) + { + // Java.g:3628:3: ( (a5_0= parse_org_emftext_language_java_members_Member ) ) + // Java.g:3629:4: (a5_0= parse_org_emftext_language_java_members_Member ) + { + // Java.g:3629:4: (a5_0= parse_org_emftext_language_java_members_Member ) + // Java.g:3630:5: a5_0= parse_org_emftext_language_java_members_Member + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_Member_in_parse_org_emftext_language_java_classifiers_Annotation3875); + a5_0=parse_org_emftext_language_java_members_Member(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createAnnotation(); + startIncompleteElement(element); + } + if (a5_0 != null) { + if (a5_0 != null) { + Object value = a5_0; + addObjectToList(element, org.emftext.language.java.classifiers.ClassifiersPackage.ANNOTATION__MEMBERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_11_0_0_6_0_0_1, a5_0, true); + copyLocalizationInfos(a5_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(11128); + addExpectedElement(11129); + } + + } + + + } + break; + + default : + break loop43; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(11307); + addExpectedElement(11308); + } + + a6=(Token)match(input,109,FOLLOW_109_in_parse_org_emftext_language_java_classifiers_Annotation3916); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createAnnotation(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_11_0_0_8, null, true); + copyLocalizationInfos((CommonToken)a6, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(11309); + addExpectedElement(11361); + addExpectedElement(11362); + addExpectedElement(11540); + addExpectedElement(11541); + addExpectedElement(11719); + addExpectedElement(11720); + addExpectedElement(11898); + addExpectedElement(11899); + addExpectedElement(12077); + addExpectedElement(12078); + addExpectedElement(12256); + addExpectedElement(12257); + addExpectedElement(12444); + addExpectedElement(12445); + addExpectedElement(12632); + addExpectedElement(12633); + addExpectedElement(12820); + addExpectedElement(12823); + addExpectedElement(13010); + addExpectedElement(13011); + addExpectedElement(13198); + addExpectedElement(13199); + addExpectedElement(13386); + addExpectedElement(13387); + addExpectedElement(13574); + addExpectedElement(13576); + addExpectedElement(13577); + addExpectedElement(13764); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 13, parse_org_emftext_language_java_classifiers_Annotation_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_classifiers_Annotation" + + + + // $ANTLR start "parse_org_emftext_language_java_annotations_AnnotationInstance" + // Java.g:3711:1: parse_org_emftext_language_java_annotations_AnnotationInstance returns [org.emftext.language.java.annotations.AnnotationInstance element = null] : a0= '@' ( ( (a1= IDENTIFIER ) a2= '.' ) )* (a3= IDENTIFIER ) ( ( (a4_0= parse_org_emftext_language_java_annotations_AnnotationParameter ) ) )? ; + public final org.emftext.language.java.annotations.AnnotationInstance parse_org_emftext_language_java_annotations_AnnotationInstance() throws RecognitionException { + org.emftext.language.java.annotations.AnnotationInstance element = null; + + int parse_org_emftext_language_java_annotations_AnnotationInstance_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a2=null; + Token a3=null; + org.emftext.language.java.annotations.AnnotationParameter a4_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 14) ) { return element; } + + // Java.g:3714:2: (a0= '@' ( ( (a1= IDENTIFIER ) a2= '.' ) )* (a3= IDENTIFIER ) ( ( (a4_0= parse_org_emftext_language_java_annotations_AnnotationParameter ) ) )? ) + // Java.g:3715:2: a0= '@' ( ( (a1= IDENTIFIER ) a2= '.' ) )* (a3= IDENTIFIER ) ( ( (a4_0= parse_org_emftext_language_java_annotations_AnnotationParameter ) ) )? + { + a0=(Token)match(input,48,FOLLOW_48_in_parse_org_emftext_language_java_annotations_AnnotationInstance3945); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationInstance(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_12_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(13766); + } + + // Java.g:3729:2: ( ( (a1= IDENTIFIER ) a2= '.' ) )* + loop44: + do { + int alt44=2; + int LA44_0 = input.LA(1); + + if ( (LA44_0==IDENTIFIER) ) { + int LA44_1 = input.LA(2); + + if ( (LA44_1==37) ) { + alt44=1; + } + + + } + + + switch (alt44) { + case 1 : + // Java.g:3730:3: ( (a1= IDENTIFIER ) a2= '.' ) + { + // Java.g:3730:3: ( (a1= IDENTIFIER ) a2= '.' ) + // Java.g:3731:4: (a1= IDENTIFIER ) a2= '.' + { + // Java.g:3731:4: (a1= IDENTIFIER ) + // Java.g:3732:5: a1= IDENTIFIER + { + a1=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_annotations_AnnotationInstance3974); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationInstance(); + startIncompleteElement(element); + } + if (a1 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a1.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_INSTANCE__NAMESPACES), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a1).getLine(), ((CommonToken) a1).getCharPositionInLine(), ((CommonToken) a1).getStartIndex(), ((CommonToken) a1).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + addObjectToList(element, org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_INSTANCE__NAMESPACES, value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_12_0_0_1_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a1, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(13767); + } + + a2=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_annotations_AnnotationInstance4007); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationInstance(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_12_0_0_1_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(13769); + } + + } + + + } + break; + + default : + break loop44; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(13771); + } + + // Java.g:3788:2: (a3= IDENTIFIER ) + // Java.g:3789:3: a3= IDENTIFIER + { + a3=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_annotations_AnnotationInstance4044); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationInstance(); + startIncompleteElement(element); + } + if (a3 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a3.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_INSTANCE__ANNOTATION), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a3).getLine(), ((CommonToken) a3).getCharPositionInLine(), ((CommonToken) a3).getStartIndex(), ((CommonToken) a3).getStopIndex()); + } + String resolved = (String) resolvedObject; + org.emftext.language.java.classifiers.Classifier proxy = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + collectHiddenTokens(element); + registerContextDependentProxy(new org.emftext.language.java.resource.java.mopp.JavaContextDependentURIFragmentFactory(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getAnnotationInstanceAnnotationReferenceResolver()), element, (EReference) element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_INSTANCE__ANNOTATION), resolved, proxy); + if (proxy != null) { + Object value = proxy; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_INSTANCE__ANNOTATION), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_12_0_0_2, proxy, true); + copyLocalizationInfos((CommonToken) a3, element); + copyLocalizationInfos((CommonToken) a3, proxy); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(13773); + addExpectedElement(13774); + addExpectedElement(13775); + addExpectedElement(13787); + addExpectedElement(13788); + addExpectedElement(13800); + addExpectedElement(13801); + addExpectedElement(13813); + addExpectedElement(13814); + addExpectedElement(13826); + addExpectedElement(13827); + addExpectedElement(13828); + addExpectedElement(13829); + addExpectedElement(13841); + addExpectedElement(13843); + addExpectedElement(13855); + addExpectedElement(13856); + addExpectedElement(13868); + addExpectedElement(13880); + addExpectedElement(13881); + addExpectedElement(13893); + addExpectedElement(13905); + addExpectedElement(13906); + addExpectedElement(13918); + addExpectedElement(13942); + addExpectedElement(13966); + addExpectedElement(13990); + addExpectedElement(14014); + addExpectedElement(14016); + addExpectedElement(14019); + addExpectedElement(14021); + addExpectedElement(14024); + addExpectedElement(14028); + addExpectedElement(14029); + addExpectedElement(14031); + addExpectedElement(14040); + addExpectedElement(14052); + addExpectedElement(14071); + } + + // Java.g:3865:2: ( ( (a4_0= parse_org_emftext_language_java_annotations_AnnotationParameter ) ) )? + int alt45=2; + int LA45_0 = input.LA(1); + + if ( (LA45_0==26) ) { + alt45=1; + } + switch (alt45) { + case 1 : + // Java.g:3866:3: ( (a4_0= parse_org_emftext_language_java_annotations_AnnotationParameter ) ) + { + // Java.g:3866:3: ( (a4_0= parse_org_emftext_language_java_annotations_AnnotationParameter ) ) + // Java.g:3867:4: (a4_0= parse_org_emftext_language_java_annotations_AnnotationParameter ) + { + // Java.g:3867:4: (a4_0= parse_org_emftext_language_java_annotations_AnnotationParameter ) + // Java.g:3868:5: a4_0= parse_org_emftext_language_java_annotations_AnnotationParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_annotations_AnnotationParameter_in_parse_org_emftext_language_java_annotations_AnnotationInstance4080); + a4_0=parse_org_emftext_language_java_annotations_AnnotationParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationInstance(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_INSTANCE__PARAMETER), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_12_0_0_3_0_0_0, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(14072); + addExpectedElement(14073); + addExpectedElement(14085); + addExpectedElement(14086); + addExpectedElement(14098); + addExpectedElement(14099); + addExpectedElement(14111); + addExpectedElement(14112); + addExpectedElement(14124); + addExpectedElement(14125); + addExpectedElement(14126); + addExpectedElement(14127); + addExpectedElement(14139); + addExpectedElement(14141); + addExpectedElement(14153); + addExpectedElement(14154); + addExpectedElement(14166); + addExpectedElement(14178); + addExpectedElement(14179); + addExpectedElement(14191); + addExpectedElement(14203); + addExpectedElement(14204); + addExpectedElement(14216); + addExpectedElement(14240); + addExpectedElement(14264); + addExpectedElement(14288); + addExpectedElement(14312); + addExpectedElement(14314); + addExpectedElement(14317); + addExpectedElement(14319); + addExpectedElement(14322); + addExpectedElement(14326); + addExpectedElement(14327); + addExpectedElement(14329); + addExpectedElement(14338); + addExpectedElement(14350); + addExpectedElement(14369); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(14370); + addExpectedElement(14371); + addExpectedElement(14383); + addExpectedElement(14384); + addExpectedElement(14396); + addExpectedElement(14397); + addExpectedElement(14409); + addExpectedElement(14410); + addExpectedElement(14422); + addExpectedElement(14423); + addExpectedElement(14424); + addExpectedElement(14425); + addExpectedElement(14437); + addExpectedElement(14439); + addExpectedElement(14451); + addExpectedElement(14452); + addExpectedElement(14464); + addExpectedElement(14476); + addExpectedElement(14477); + addExpectedElement(14489); + addExpectedElement(14501); + addExpectedElement(14502); + addExpectedElement(14514); + addExpectedElement(14538); + addExpectedElement(14562); + addExpectedElement(14586); + addExpectedElement(14610); + addExpectedElement(14612); + addExpectedElement(14615); + addExpectedElement(14617); + addExpectedElement(14620); + addExpectedElement(14624); + addExpectedElement(14625); + addExpectedElement(14627); + addExpectedElement(14636); + addExpectedElement(14648); + addExpectedElement(14667); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 14, parse_org_emftext_language_java_annotations_AnnotationInstance_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_annotations_AnnotationInstance" + + + + // $ANTLR start "parse_org_emftext_language_java_annotations_SingleAnnotationParameter" + // Java.g:3980:1: parse_org_emftext_language_java_annotations_SingleAnnotationParameter returns [org.emftext.language.java.annotations.SingleAnnotationParameter element = null] : a0= '(' (a1_0= parse_org_emftext_language_java_arrays_ArrayInitializer |a1_1= parse_org_emftext_language_java_expressions_ConditionalExpression ) a2= ')' ; + public final org.emftext.language.java.annotations.SingleAnnotationParameter parse_org_emftext_language_java_annotations_SingleAnnotationParameter() throws RecognitionException { + org.emftext.language.java.annotations.SingleAnnotationParameter element = null; + + int parse_org_emftext_language_java_annotations_SingleAnnotationParameter_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + org.emftext.language.java.arrays.ArrayInitializer a1_0 =null; + + org.emftext.language.java.expressions.ConditionalExpression a1_1 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 15) ) { return element; } + + // Java.g:3983:2: (a0= '(' (a1_0= parse_org_emftext_language_java_arrays_ArrayInitializer |a1_1= parse_org_emftext_language_java_expressions_ConditionalExpression ) a2= ')' ) + // Java.g:3984:2: a0= '(' (a1_0= parse_org_emftext_language_java_arrays_ArrayInitializer |a1_1= parse_org_emftext_language_java_expressions_ConditionalExpression ) a2= ')' + { + a0=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_annotations_SingleAnnotationParameter4136); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createSingleAnnotationParameter(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_13_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(14752); + } + + // Java.g:3998:2: (a1_0= parse_org_emftext_language_java_arrays_ArrayInitializer |a1_1= parse_org_emftext_language_java_expressions_ConditionalExpression ) + int alt46=2; + int LA46_0 = input.LA(1); + + if ( (LA46_0==105) ) { + int LA46_1 = input.LA(2); + + if ( (synpred47_Java()) ) { + alt46=1; + } + else if ( (true) ) { + alt46=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 46, 1, input); + + throw nvae; + + } + } + else if ( ((LA46_0 >= BOOLEAN_LITERAL && LA46_0 <= IDENTIFIER)||(LA46_0 >= OCTAL_INTEGER_LITERAL && LA46_0 <= OCTAL_LONG_LITERAL)||LA46_0==STRING_LITERAL||LA46_0==21||LA46_0==26||(LA46_0 >= 30 && LA46_0 <= 31)||(LA46_0 >= 34 && LA46_0 <= 35)||LA46_0==43||LA46_0==48||LA46_0==58||LA46_0==60||(LA46_0 >= 63 && LA46_0 <= 64)||LA46_0==68||LA46_0==74||LA46_0==80||LA46_0==82||(LA46_0 >= 84 && LA46_0 <= 85)||LA46_0==91||LA46_0==94||LA46_0==97||LA46_0==102||LA46_0==110) ) { + alt46=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 46, 0, input); + + throw nvae; + + } + switch (alt46) { + case 1 : + // Java.g:3999:3: a1_0= parse_org_emftext_language_java_arrays_ArrayInitializer + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_parse_org_emftext_language_java_annotations_SingleAnnotationParameter4154); + a1_0=parse_org_emftext_language_java_arrays_ArrayInitializer(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createSingleAnnotationParameter(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.SINGLE_ANNOTATION_PARAMETER__VALUE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_13_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + break; + case 2 : + // Java.g:4018:6: a1_1= parse_org_emftext_language_java_expressions_ConditionalExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_ConditionalExpression_in_parse_org_emftext_language_java_annotations_SingleAnnotationParameter4168); + a1_1=parse_org_emftext_language_java_expressions_ConditionalExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createSingleAnnotationParameter(); + startIncompleteElement(element); + } + if (a1_1 != null) { + if (a1_1 != null) { + Object value = a1_1; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.SINGLE_ANNOTATION_PARAMETER__VALUE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_13_0_0_1, a1_1, true); + copyLocalizationInfos(a1_1, element); + } + } + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(14753); + } + + a2=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_annotations_SingleAnnotationParameter4186); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createSingleAnnotationParameter(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_13_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(14754); + addExpectedElement(14755); + addExpectedElement(14767); + addExpectedElement(14768); + addExpectedElement(14780); + addExpectedElement(14781); + addExpectedElement(14793); + addExpectedElement(14794); + addExpectedElement(14806); + addExpectedElement(14807); + addExpectedElement(14808); + addExpectedElement(14809); + addExpectedElement(14821); + addExpectedElement(14823); + addExpectedElement(14835); + addExpectedElement(14836); + addExpectedElement(14848); + addExpectedElement(14860); + addExpectedElement(14861); + addExpectedElement(14873); + addExpectedElement(14885); + addExpectedElement(14886); + addExpectedElement(14898); + addExpectedElement(14922); + addExpectedElement(14946); + addExpectedElement(14970); + addExpectedElement(14994); + addExpectedElement(14996); + addExpectedElement(14999); + addExpectedElement(15001); + addExpectedElement(15004); + addExpectedElement(15008); + addExpectedElement(15009); + addExpectedElement(15011); + addExpectedElement(15020); + addExpectedElement(15032); + addExpectedElement(15051); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 15, parse_org_emftext_language_java_annotations_SingleAnnotationParameter_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_annotations_SingleAnnotationParameter" + + + + // $ANTLR start "parse_org_emftext_language_java_annotations_AnnotationParameterList" + // Java.g:4098:1: parse_org_emftext_language_java_annotations_AnnotationParameterList returns [org.emftext.language.java.annotations.AnnotationParameterList element = null] : a0= '(' ( ( (a1_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ) )* ) )? a4= ')' ; + public final org.emftext.language.java.annotations.AnnotationParameterList parse_org_emftext_language_java_annotations_AnnotationParameterList() throws RecognitionException { + org.emftext.language.java.annotations.AnnotationParameterList element = null; + + int parse_org_emftext_language_java_annotations_AnnotationParameterList_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + Token a4=null; + org.emftext.language.java.annotations.AnnotationAttributeSetting a1_0 =null; + + org.emftext.language.java.annotations.AnnotationAttributeSetting a3_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 16) ) { return element; } + + // Java.g:4101:2: (a0= '(' ( ( (a1_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ) )* ) )? a4= ')' ) + // Java.g:4102:2: a0= '(' ( ( (a1_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ) )* ) )? a4= ')' + { + a0=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_annotations_AnnotationParameterList4215); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationParameterList(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_14_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15052); + addExpectedElement(15053); + } + + // Java.g:4117:2: ( ( (a1_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ) )* ) )? + int alt48=2; + int LA48_0 = input.LA(1); + + if ( (LA48_0==IDENTIFIER) ) { + alt48=1; + } + switch (alt48) { + case 1 : + // Java.g:4118:3: ( (a1_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ) )* ) + { + // Java.g:4118:3: ( (a1_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ) )* ) + // Java.g:4119:4: (a1_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ) )* + { + // Java.g:4119:4: (a1_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) + // Java.g:4120:5: a1_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting + { + pushFollow(FOLLOW_parse_org_emftext_language_java_annotations_AnnotationAttributeSetting_in_parse_org_emftext_language_java_annotations_AnnotationParameterList4244); + a1_0=parse_org_emftext_language_java_annotations_AnnotationAttributeSetting(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationParameterList(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_PARAMETER_LIST__SETTINGS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_14_0_0_1_0_0_0, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15055); + } + + // Java.g:4145:4: ( (a2= ',' (a3_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ) )* + loop47: + do { + int alt47=2; + int LA47_0 = input.LA(1); + + if ( (LA47_0==33) ) { + alt47=1; + } + + + switch (alt47) { + case 1 : + // Java.g:4146:5: (a2= ',' (a3_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ) + { + // Java.g:4146:5: (a2= ',' (a3_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) ) + // Java.g:4147:6: a2= ',' (a3_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) + { + a2=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_annotations_AnnotationParameterList4285); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationParameterList(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_14_0_0_1_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15056); + } + + // Java.g:4161:6: (a3_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting ) + // Java.g:4162:7: a3_0= parse_org_emftext_language_java_annotations_AnnotationAttributeSetting + { + pushFollow(FOLLOW_parse_org_emftext_language_java_annotations_AnnotationAttributeSetting_in_parse_org_emftext_language_java_annotations_AnnotationParameterList4319); + a3_0=parse_org_emftext_language_java_annotations_AnnotationAttributeSetting(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationParameterList(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + addObjectToList(element, org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_PARAMETER_LIST__SETTINGS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_14_0_0_1_0_0_1_0_0_1, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15058); + } + + } + + + } + break; + + default : + break loop47; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15060); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15061); + } + + a4=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_annotations_AnnotationParameterList4393); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationParameterList(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_14_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(15062); + addExpectedElement(15063); + addExpectedElement(15075); + addExpectedElement(15076); + addExpectedElement(15088); + addExpectedElement(15089); + addExpectedElement(15101); + addExpectedElement(15102); + addExpectedElement(15114); + addExpectedElement(15115); + addExpectedElement(15116); + addExpectedElement(15117); + addExpectedElement(15129); + addExpectedElement(15131); + addExpectedElement(15143); + addExpectedElement(15144); + addExpectedElement(15156); + addExpectedElement(15168); + addExpectedElement(15169); + addExpectedElement(15181); + addExpectedElement(15193); + addExpectedElement(15194); + addExpectedElement(15206); + addExpectedElement(15230); + addExpectedElement(15254); + addExpectedElement(15278); + addExpectedElement(15302); + addExpectedElement(15304); + addExpectedElement(15307); + addExpectedElement(15309); + addExpectedElement(15312); + addExpectedElement(15316); + addExpectedElement(15317); + addExpectedElement(15319); + addExpectedElement(15328); + addExpectedElement(15340); + addExpectedElement(15359); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 16, parse_org_emftext_language_java_annotations_AnnotationParameterList_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_annotations_AnnotationParameterList" + + + + // $ANTLR start "parse_org_emftext_language_java_annotations_AnnotationAttributeSetting" + // Java.g:4256:1: parse_org_emftext_language_java_annotations_AnnotationAttributeSetting returns [org.emftext.language.java.annotations.AnnotationAttributeSetting element = null] : (a0= IDENTIFIER ) a1= '=' (a2_0= parse_org_emftext_language_java_arrays_ArrayInitializer |a2_1= parse_org_emftext_language_java_expressions_ConditionalExpression ) ; + public final org.emftext.language.java.annotations.AnnotationAttributeSetting parse_org_emftext_language_java_annotations_AnnotationAttributeSetting() throws RecognitionException { + org.emftext.language.java.annotations.AnnotationAttributeSetting element = null; + + int parse_org_emftext_language_java_annotations_AnnotationAttributeSetting_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + org.emftext.language.java.arrays.ArrayInitializer a2_0 =null; + + org.emftext.language.java.expressions.ConditionalExpression a2_1 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 17) ) { return element; } + + // Java.g:4259:2: ( (a0= IDENTIFIER ) a1= '=' (a2_0= parse_org_emftext_language_java_arrays_ArrayInitializer |a2_1= parse_org_emftext_language_java_expressions_ConditionalExpression ) ) + // Java.g:4260:2: (a0= IDENTIFIER ) a1= '=' (a2_0= parse_org_emftext_language_java_arrays_ArrayInitializer |a2_1= parse_org_emftext_language_java_expressions_ConditionalExpression ) + { + // Java.g:4260:2: (a0= IDENTIFIER ) + // Java.g:4261:3: a0= IDENTIFIER + { + a0=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_annotations_AnnotationAttributeSetting4426); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttributeSetting(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE_SETTING__ATTRIBUTE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + String resolved = (String) resolvedObject; + org.emftext.language.java.members.InterfaceMethod proxy = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + collectHiddenTokens(element); + registerContextDependentProxy(new org.emftext.language.java.resource.java.mopp.JavaContextDependentURIFragmentFactory(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getAnnotationAttributeSettingAttributeReferenceResolver()), element, (EReference) element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE_SETTING__ATTRIBUTE), resolved, proxy); + if (proxy != null) { + Object value = proxy; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE_SETTING__ATTRIBUTE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_15_0_0_0, proxy, true); + copyLocalizationInfos((CommonToken) a0, element); + copyLocalizationInfos((CommonToken) a0, proxy); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15360); + } + + a1=(Token)match(input,44,FOLLOW_44_in_parse_org_emftext_language_java_annotations_AnnotationAttributeSetting4447); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttributeSetting(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_15_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15445); + } + + // Java.g:4314:2: (a2_0= parse_org_emftext_language_java_arrays_ArrayInitializer |a2_1= parse_org_emftext_language_java_expressions_ConditionalExpression ) + int alt49=2; + int LA49_0 = input.LA(1); + + if ( (LA49_0==105) ) { + int LA49_1 = input.LA(2); + + if ( (synpred50_Java()) ) { + alt49=1; + } + else if ( (true) ) { + alt49=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 49, 1, input); + + throw nvae; + + } + } + else if ( ((LA49_0 >= BOOLEAN_LITERAL && LA49_0 <= IDENTIFIER)||(LA49_0 >= OCTAL_INTEGER_LITERAL && LA49_0 <= OCTAL_LONG_LITERAL)||LA49_0==STRING_LITERAL||LA49_0==21||LA49_0==26||(LA49_0 >= 30 && LA49_0 <= 31)||(LA49_0 >= 34 && LA49_0 <= 35)||LA49_0==43||LA49_0==48||LA49_0==58||LA49_0==60||(LA49_0 >= 63 && LA49_0 <= 64)||LA49_0==68||LA49_0==74||LA49_0==80||LA49_0==82||(LA49_0 >= 84 && LA49_0 <= 85)||LA49_0==91||LA49_0==94||LA49_0==97||LA49_0==102||LA49_0==110) ) { + alt49=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 49, 0, input); + + throw nvae; + + } + switch (alt49) { + case 1 : + // Java.g:4315:3: a2_0= parse_org_emftext_language_java_arrays_ArrayInitializer + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_parse_org_emftext_language_java_annotations_AnnotationAttributeSetting4465); + a2_0=parse_org_emftext_language_java_arrays_ArrayInitializer(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttributeSetting(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE_SETTING__VALUE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_15_0_0_4, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + break; + case 2 : + // Java.g:4334:6: a2_1= parse_org_emftext_language_java_expressions_ConditionalExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_ConditionalExpression_in_parse_org_emftext_language_java_annotations_AnnotationAttributeSetting4479); + a2_1=parse_org_emftext_language_java_expressions_ConditionalExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttributeSetting(); + startIncompleteElement(element); + } + if (a2_1 != null) { + if (a2_1 != null) { + Object value = a2_1; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE_SETTING__VALUE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_15_0_0_4, a2_1, true); + copyLocalizationInfos(a2_1, element); + } + } + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(15447); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 17, parse_org_emftext_language_java_annotations_AnnotationAttributeSetting_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_annotations_AnnotationAttributeSetting" + + + + // $ANTLR start "parse_org_emftext_language_java_generics_TypeParameter" + // Java.g:4364:1: parse_org_emftext_language_java_generics_TypeParameter returns [org.emftext.language.java.generics.TypeParameter element = null] : (a0= IDENTIFIER ) ( (a1= 'extends' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) )? ; + public final org.emftext.language.java.generics.TypeParameter parse_org_emftext_language_java_generics_TypeParameter() throws RecognitionException { + org.emftext.language.java.generics.TypeParameter element = null; + + int parse_org_emftext_language_java_generics_TypeParameter_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + org.emftext.language.java.types.TypeReference a2_0 =null; + + org.emftext.language.java.types.TypeReference a4_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 18) ) { return element; } + + // Java.g:4367:2: ( (a0= IDENTIFIER ) ( (a1= 'extends' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) )? ) + // Java.g:4368:2: (a0= IDENTIFIER ) ( (a1= 'extends' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) )? + { + // Java.g:4368:2: (a0= IDENTIFIER ) + // Java.g:4369:3: a0= IDENTIFIER + { + a0=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_generics_TypeParameter4516); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createTypeParameter(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.generics.GenericsPackage.TYPE_PARAMETER__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.generics.GenericsPackage.TYPE_PARAMETER__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_16_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15460); + } + + // Java.g:4404:2: ( (a1= 'extends' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) )? + int alt51=2; + int LA51_0 = input.LA(1); + + if ( (LA51_0==71) ) { + alt51=1; + } + switch (alt51) { + case 1 : + // Java.g:4405:3: (a1= 'extends' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) + { + // Java.g:4405:3: (a1= 'extends' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ) + // Java.g:4406:4: a1= 'extends' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) )* + { + a1=(Token)match(input,71,FOLLOW_71_in_parse_org_emftext_language_java_generics_TypeParameter4546); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createTypeParameter(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_16_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15472); + } + + // Java.g:4420:4: (a2_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:4421:5: a2_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_generics_TypeParameter4572); + a2_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createTypeParameter(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.generics.GenericsPackage.TYPE_PARAMETER__EXTEND_TYPES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_16_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15485); + } + + // Java.g:4446:4: ( (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) )* + loop50: + do { + int alt50=2; + int LA50_0 = input.LA(1); + + if ( (LA50_0==24) ) { + alt50=1; + } + + + switch (alt50) { + case 1 : + // Java.g:4447:5: (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) + { + // Java.g:4447:5: (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) + // Java.g:4448:6: a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) + { + a3=(Token)match(input,24,FOLLOW_24_in_parse_org_emftext_language_java_generics_TypeParameter4613); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createTypeParameter(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_16_0_0_1_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15497); + } + + // Java.g:4462:6: (a4_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:4463:7: a4_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_generics_TypeParameter4647); + a4_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createTypeParameter(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.generics.GenericsPackage.TYPE_PARAMETER__EXTEND_TYPES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_16_0_0_1_0_0_2_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(15510); + } + + } + + + } + break; + + default : + break loop50; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(15523); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(15535); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 18, parse_org_emftext_language_java_generics_TypeParameter_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_generics_TypeParameter" + + + + // $ANTLR start "parse_org_emftext_language_java_members_EnumConstant" + // Java.g:4513:1: parse_org_emftext_language_java_members_EnumConstant returns [org.emftext.language.java.members.EnumConstant element = null] : ( (a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance ) )* (a1= IDENTIFIER ) ( (a2= '(' ( ( (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a6= ')' ) )? ( ( (a7_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) ) )? ; + public final org.emftext.language.java.members.EnumConstant parse_org_emftext_language_java_members_EnumConstant() throws RecognitionException { + org.emftext.language.java.members.EnumConstant element = null; + + int parse_org_emftext_language_java_members_EnumConstant_StartIndex = input.index(); + + Token a1=null; + Token a2=null; + Token a4=null; + Token a6=null; + org.emftext.language.java.annotations.AnnotationInstance a0_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a3_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a5_0 =null; + + org.emftext.language.java.classifiers.AnonymousClass a7_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 19) ) { return element; } + + // Java.g:4516:2: ( ( (a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance ) )* (a1= IDENTIFIER ) ( (a2= '(' ( ( (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a6= ')' ) )? ( ( (a7_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) ) )? ) + // Java.g:4517:2: ( (a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance ) )* (a1= IDENTIFIER ) ( (a2= '(' ( ( (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a6= ')' ) )? ( ( (a7_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) ) )? + { + // Java.g:4517:2: ( (a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance ) )* + loop52: + do { + int alt52=2; + int LA52_0 = input.LA(1); + + if ( (LA52_0==48) ) { + alt52=1; + } + + + switch (alt52) { + case 1 : + // Java.g:4518:3: (a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance ) + { + // Java.g:4518:3: (a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance ) + // Java.g:4519:4: a0_0= parse_org_emftext_language_java_annotations_AnnotationInstance + { + pushFollow(FOLLOW_parse_org_emftext_language_java_annotations_AnnotationInstance_in_parse_org_emftext_language_java_members_EnumConstant4745); + a0_0=parse_org_emftext_language_java_annotations_AnnotationInstance(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createEnumConstant(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.ENUM_CONSTANT__ANNOTATIONS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_17_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop52; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15536); + addExpectedElement(15537); + } + + // Java.g:4546:2: (a1= IDENTIFIER ) + // Java.g:4547:3: a1= IDENTIFIER + { + a1=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_members_EnumConstant4775); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createEnumConstant(); + startIncompleteElement(element); + } + if (a1 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a1.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.ENUM_CONSTANT__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a1).getLine(), ((CommonToken) a1).getCharPositionInLine(), ((CommonToken) a1).getStartIndex(), ((CommonToken) a1).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.ENUM_CONSTANT__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_17_0_0_1, resolved, true); + copyLocalizationInfos((CommonToken) a1, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15538); + addExpectedElement(15539); + addExpectedElement(15543); + } + + // Java.g:4584:2: ( (a2= '(' ( ( (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a6= ')' ) )? + int alt55=2; + int LA55_0 = input.LA(1); + + if ( (LA55_0==26) ) { + alt55=1; + } + switch (alt55) { + case 1 : + // Java.g:4585:3: (a2= '(' ( ( (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a6= ')' ) + { + // Java.g:4585:3: (a2= '(' ( ( (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a6= ')' ) + // Java.g:4586:4: a2= '(' ( ( (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a6= ')' + { + a2=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_members_EnumConstant4805); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createEnumConstant(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_17_0_0_2_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15627); + addExpectedElement(15628); + } + + // Java.g:4601:4: ( ( (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? + int alt54=2; + int LA54_0 = input.LA(1); + + if ( ((LA54_0 >= BOOLEAN_LITERAL && LA54_0 <= IDENTIFIER)||(LA54_0 >= OCTAL_INTEGER_LITERAL && LA54_0 <= OCTAL_LONG_LITERAL)||LA54_0==STRING_LITERAL||LA54_0==21||LA54_0==26||(LA54_0 >= 30 && LA54_0 <= 31)||(LA54_0 >= 34 && LA54_0 <= 35)||LA54_0==43||LA54_0==48||LA54_0==58||LA54_0==60||(LA54_0 >= 63 && LA54_0 <= 64)||LA54_0==68||LA54_0==74||LA54_0==80||LA54_0==82||(LA54_0 >= 84 && LA54_0 <= 85)||LA54_0==91||LA54_0==94||LA54_0==97||LA54_0==102||LA54_0==105||LA54_0==110) ) { + alt54=1; + } + switch (alt54) { + case 1 : + // Java.g:4602:5: ( (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) + { + // Java.g:4602:5: ( (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) + // Java.g:4603:6: (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* + { + // Java.g:4603:6: (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:4604:7: a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_members_EnumConstant4846); + a3_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createEnumConstant(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.ENUM_CONSTANT__ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_17_0_0_2_0_0_2_0_0_0, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15630); + } + + // Java.g:4629:6: ( (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* + loop53: + do { + int alt53=2; + int LA53_0 = input.LA(1); + + if ( (LA53_0==33) ) { + alt53=1; + } + + + switch (alt53) { + case 1 : + // Java.g:4630:7: (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + { + // Java.g:4630:7: (a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + // Java.g:4631:8: a4= ',' (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + a4=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_members_EnumConstant4901); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createEnumConstant(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_17_0_0_2_0_0_2_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15714); + } + + // Java.g:4645:8: (a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:4646:9: a5_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_members_EnumConstant4943); + a5_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createEnumConstant(); + startIncompleteElement(element); + } + if (a5_0 != null) { + if (a5_0 != null) { + Object value = a5_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.ENUM_CONSTANT__ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_17_0_0_2_0_0_2_0_0_1_0_0_1, a5_0, true); + copyLocalizationInfos(a5_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15716); + } + + } + + + } + break; + + default : + break loop53; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15718); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15719); + } + + a6=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_members_EnumConstant5047); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createEnumConstant(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_17_0_0_2_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a6, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15720); + addExpectedElement(15724); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15725); + addExpectedElement(15729); + } + + // Java.g:4708:2: ( ( (a7_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) ) )? + int alt56=2; + int LA56_0 = input.LA(1); + + if ( (LA56_0==105) ) { + alt56=1; + } + switch (alt56) { + case 1 : + // Java.g:4709:3: ( (a7_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) ) + { + // Java.g:4709:3: ( (a7_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) ) + // Java.g:4710:4: (a7_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) + { + // Java.g:4710:4: (a7_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) + // Java.g:4711:5: a7_0= parse_org_emftext_language_java_classifiers_AnonymousClass + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_AnonymousClass_in_parse_org_emftext_language_java_members_EnumConstant5095); + a7_0=parse_org_emftext_language_java_classifiers_AnonymousClass(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createEnumConstant(); + startIncompleteElement(element); + } + if (a7_0 != null) { + if (a7_0 != null) { + Object value = a7_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.ENUM_CONSTANT__ANONYMOUS_CLASS), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_17_0_0_3_0_0_0, a7_0, true); + copyLocalizationInfos(a7_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(15733); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(15737); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 19, parse_org_emftext_language_java_members_EnumConstant_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_members_EnumConstant" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_Block" + // Java.g:4751:1: parse_org_emftext_language_java_statements_Block returns [org.emftext.language.java.statements.Block element = null] : ( (a0_0= parse_org_emftext_language_java_modifiers_Modifier ) )* a1= '{' ( ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) )* a3= '}' ; + public final org.emftext.language.java.statements.Block parse_org_emftext_language_java_statements_Block() throws RecognitionException { + org.emftext.language.java.statements.Block element = null; + + int parse_org_emftext_language_java_statements_Block_StartIndex = input.index(); + + Token a1=null; + Token a3=null; + org.emftext.language.java.modifiers.Modifier a0_0 =null; + + org.emftext.language.java.statements.Statement a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 20) ) { return element; } + + // Java.g:4754:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_Modifier ) )* a1= '{' ( ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) )* a3= '}' ) + // Java.g:4755:2: ( (a0_0= parse_org_emftext_language_java_modifiers_Modifier ) )* a1= '{' ( ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) )* a3= '}' + { + // Java.g:4755:2: ( (a0_0= parse_org_emftext_language_java_modifiers_Modifier ) )* + loop57: + do { + int alt57=2; + int LA57_0 = input.LA(1); + + if ( (LA57_0==56||LA57_0==72||LA57_0==83||(LA57_0 >= 87 && LA57_0 <= 89)||(LA57_0 >= 92 && LA57_0 <= 93)||LA57_0==96||LA57_0==100||LA57_0==103) ) { + alt57=1; + } + + + switch (alt57) { + case 1 : + // Java.g:4756:3: (a0_0= parse_org_emftext_language_java_modifiers_Modifier ) + { + // Java.g:4756:3: (a0_0= parse_org_emftext_language_java_modifiers_Modifier ) + // Java.g:4757:4: a0_0= parse_org_emftext_language_java_modifiers_Modifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Modifier_in_parse_org_emftext_language_java_statements_Block5160); + a0_0=parse_org_emftext_language_java_modifiers_Modifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createBlock(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.statements.StatementsPackage.BLOCK__MODIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_18_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop57; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15748); + addExpectedElement(15749); + } + + a1=(Token)match(input,105,FOLLOW_105_in_parse_org_emftext_language_java_statements_Block5186); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_18_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(15936); + addExpectedElement(15937); + } + + // Java.g:4799:2: ( ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) )* + loop58: + do { + int alt58=2; + int LA58_0 = input.LA(1); + + if ( ((LA58_0 >= BOOLEAN_LITERAL && LA58_0 <= IDENTIFIER)||(LA58_0 >= OCTAL_INTEGER_LITERAL && LA58_0 <= OCTAL_LONG_LITERAL)||LA58_0==STRING_LITERAL||LA58_0==21||LA58_0==26||(LA58_0 >= 30 && LA58_0 <= 31)||(LA58_0 >= 34 && LA58_0 <= 35)||(LA58_0 >= 42 && LA58_0 <= 43)||LA58_0==48||(LA58_0 >= 56 && LA58_0 <= 60)||(LA58_0 >= 63 && LA58_0 <= 65)||(LA58_0 >= 67 && LA58_0 <= 68)||LA58_0==70||LA58_0==72||(LA58_0 >= 74 && LA58_0 <= 76)||(LA58_0 >= 80 && LA58_0 <= 85)||(LA58_0 >= 87 && LA58_0 <= 98)||(LA58_0 >= 100 && LA58_0 <= 105)||LA58_0==110) ) { + alt58=1; + } + + + switch (alt58) { + case 1 : + // Java.g:4800:3: ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) + { + // Java.g:4800:3: ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) + // Java.g:4801:4: (a2_0= parse_org_emftext_language_java_statements_Statement ) + { + // Java.g:4801:4: (a2_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:4802:5: a2_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_Block5215); + a2_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createBlock(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.statements.StatementsPackage.BLOCK__STATEMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_18_0_0_3_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(16124); + addExpectedElement(16125); + } + + } + + + } + break; + + default : + break loop58; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(16312); + addExpectedElement(16313); + } + + a3=(Token)match(input,109,FOLLOW_109_in_parse_org_emftext_language_java_statements_Block5256); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_18_0_0_5, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(16491); + addExpectedElement(16492); + addExpectedElement(16670); + addExpectedElement(16671); + addExpectedElement(16849); + addExpectedElement(16850); + addExpectedElement(17028); + addExpectedElement(17029); + addExpectedElement(17207); + addExpectedElement(17208); + addExpectedElement(17395); + addExpectedElement(17396); + addExpectedElement(17583); + addExpectedElement(17584); + addExpectedElement(17771); + addExpectedElement(17774); + addExpectedElement(17961); + addExpectedElement(17962); + addExpectedElement(18149); + addExpectedElement(18150); + addExpectedElement(18337); + addExpectedElement(18338); + addExpectedElement(18525); + addExpectedElement(18527); + addExpectedElement(18528); + addExpectedElement(18715); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 20, parse_org_emftext_language_java_statements_Block_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_Block" + + + + // $ANTLR start "parse_org_emftext_language_java_members_Constructor" + // Java.g:4880:1: parse_org_emftext_language_java_members_Constructor returns [org.emftext.language.java.members.Constructor element = null] : ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? (a6= IDENTIFIER ) a7= '(' ( ( (a8_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a11= ')' ( (a12= 'throws' (a13_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a16= '{' ( ( (a17_0= parse_org_emftext_language_java_statements_Statement ) ) )* a18= '}' ; + public final org.emftext.language.java.members.Constructor parse_org_emftext_language_java_members_Constructor() throws RecognitionException { + org.emftext.language.java.members.Constructor element = null; + + int parse_org_emftext_language_java_members_Constructor_StartIndex = input.index(); + + Token a1=null; + Token a3=null; + Token a5=null; + Token a6=null; + Token a7=null; + Token a9=null; + Token a11=null; + Token a12=null; + Token a14=null; + Token a16=null; + Token a18=null; + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier a0_0 =null; + + org.emftext.language.java.generics.TypeParameter a2_0 =null; + + org.emftext.language.java.generics.TypeParameter a4_0 =null; + + org.emftext.language.java.parameters.Parameter a8_0 =null; + + org.emftext.language.java.parameters.Parameter a10_0 =null; + + org.emftext.language.java.types.NamespaceClassifierReference a13_0 =null; + + org.emftext.language.java.types.NamespaceClassifierReference a15_0 =null; + + org.emftext.language.java.statements.Statement a17_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return element; } + + // Java.g:4883:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? (a6= IDENTIFIER ) a7= '(' ( ( (a8_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a11= ')' ( (a12= 'throws' (a13_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a16= '{' ( ( (a17_0= parse_org_emftext_language_java_statements_Statement ) ) )* a18= '}' ) + // Java.g:4884:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? (a6= IDENTIFIER ) a7= '(' ( ( (a8_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a11= ')' ( (a12= 'throws' (a13_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a16= '{' ( ( (a17_0= parse_org_emftext_language_java_statements_Statement ) ) )* a18= '}' + { + // Java.g:4884:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* + loop59: + do { + int alt59=2; + int LA59_0 = input.LA(1); + + if ( (LA59_0==48||LA59_0==56||LA59_0==72||LA59_0==83||(LA59_0 >= 87 && LA59_0 <= 89)||(LA59_0 >= 92 && LA59_0 <= 93)||LA59_0==96||LA59_0==100||LA59_0==103) ) { + alt59=1; + } + + + switch (alt59) { + case 1 : + // Java.g:4885:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + { + // Java.g:4885:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + // Java.g:4886:4: a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_members_Constructor5294); + a0_0=parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CONSTRUCTOR__ANNOTATIONS_AND_MODIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop59; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18727); + addExpectedElement(18729); + } + + // Java.g:4913:2: ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? + int alt61=2; + int LA61_0 = input.LA(1); + + if ( (LA61_0==43) ) { + alt61=1; + } + switch (alt61) { + case 1 : + // Java.g:4914:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) + { + // Java.g:4914:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) + // Java.g:4915:4: a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' + { + a1=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_members_Constructor5329); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18730); + } + + // Java.g:4929:4: (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:4930:5: a2_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_members_Constructor5355); + a2_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CONSTRUCTOR__TYPE_PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18732); + } + + // Java.g:4955:4: ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* + loop60: + do { + int alt60=2; + int LA60_0 = input.LA(1); + + if ( (LA60_0==33) ) { + alt60=1; + } + + + switch (alt60) { + case 1 : + // Java.g:4956:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + { + // Java.g:4956:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + // Java.g:4957:6: a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) + { + a3=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_members_Constructor5396); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_1_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18733); + } + + // Java.g:4971:6: (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:4972:7: a4_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_members_Constructor5430); + a4_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CONSTRUCTOR__TYPE_PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_1_0_0_2_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18735); + } + + } + + + } + break; + + default : + break loop60; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18737); + } + + a5=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_members_Constructor5491); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_1_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18738); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18739); + } + + // Java.g:5025:2: (a6= IDENTIFIER ) + // Java.g:5026:3: a6= IDENTIFIER + { + a6=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_members_Constructor5528); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + if (a6 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a6.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.CONSTRUCTOR__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a6).getLine(), ((CommonToken) a6).getCharPositionInLine(), ((CommonToken) a6).getStartIndex(), ((CommonToken) a6).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.CONSTRUCTOR__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_2, resolved, true); + copyLocalizationInfos((CommonToken) a6, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18740); + } + + a7=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_members_Constructor5549); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a7, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18788); + addExpectedElement(18789); + } + + // Java.g:5076:2: ( ( (a8_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? + int alt63=2; + int LA63_0 = input.LA(1); + + if ( (LA63_0==IDENTIFIER||LA63_0==48||LA63_0==56||LA63_0==58||LA63_0==60||LA63_0==63||LA63_0==68||LA63_0==72||LA63_0==74||LA63_0==80||(LA63_0 >= 82 && LA63_0 <= 83)||(LA63_0 >= 87 && LA63_0 <= 89)||(LA63_0 >= 91 && LA63_0 <= 93)||LA63_0==96||LA63_0==100||(LA63_0 >= 102 && LA63_0 <= 103)) ) { + alt63=1; + } + switch (alt63) { + case 1 : + // Java.g:5077:3: ( (a8_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) + { + // Java.g:5077:3: ( (a8_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) + // Java.g:5078:4: (a8_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* + { + // Java.g:5078:4: (a8_0= parse_org_emftext_language_java_parameters_Parameter ) + // Java.g:5079:5: a8_0= parse_org_emftext_language_java_parameters_Parameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_members_Constructor5578); + a8_0=parse_org_emftext_language_java_parameters_Parameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + if (a8_0 != null) { + if (a8_0 != null) { + Object value = a8_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CONSTRUCTOR__PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_4_0_0_0, a8_0, true); + copyLocalizationInfos(a8_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18791); + } + + // Java.g:5104:4: ( (a9= ',' (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* + loop62: + do { + int alt62=2; + int LA62_0 = input.LA(1); + + if ( (LA62_0==33) ) { + alt62=1; + } + + + switch (alt62) { + case 1 : + // Java.g:5105:5: (a9= ',' (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ) + { + // Java.g:5105:5: (a9= ',' (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ) + // Java.g:5106:6: a9= ',' (a10_0= parse_org_emftext_language_java_parameters_Parameter ) + { + a9=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_members_Constructor5619); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_4_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a9, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18839); + } + + // Java.g:5120:6: (a10_0= parse_org_emftext_language_java_parameters_Parameter ) + // Java.g:5121:7: a10_0= parse_org_emftext_language_java_parameters_Parameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_members_Constructor5653); + a10_0=parse_org_emftext_language_java_parameters_Parameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + if (a10_0 != null) { + if (a10_0 != null) { + Object value = a10_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CONSTRUCTOR__PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_4_0_0_1_0_0_1, a10_0, true); + copyLocalizationInfos(a10_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18841); + } + + } + + + } + break; + + default : + break loop62; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18843); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18844); + } + + a11=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_members_Constructor5727); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_5, null, true); + copyLocalizationInfos((CommonToken)a11, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18846); + } + + // Java.g:5174:2: ( (a12= 'throws' (a13_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? + int alt65=2; + int LA65_0 = input.LA(1); + + if ( (LA65_0==99) ) { + alt65=1; + } + switch (alt65) { + case 1 : + // Java.g:5175:3: (a12= 'throws' (a13_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) + { + // Java.g:5175:3: (a12= 'throws' (a13_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) + // Java.g:5176:4: a12= 'throws' (a13_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* + { + a12=(Token)match(input,99,FOLLOW_99_in_parse_org_emftext_language_java_members_Constructor5750); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_6_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a12, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18848); + } + + // Java.g:5190:4: (a13_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + // Java.g:5191:5: a13_0= parse_org_emftext_language_java_types_NamespaceClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_members_Constructor5776); + a13_0=parse_org_emftext_language_java_types_NamespaceClassifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + if (a13_0 != null) { + if (a13_0 != null) { + Object value = a13_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CONSTRUCTOR__EXCEPTIONS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_6_0_0_1, a13_0, true); + copyLocalizationInfos(a13_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18850); + } + + // Java.g:5216:4: ( (a14= ',' (a15_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* + loop64: + do { + int alt64=2; + int LA64_0 = input.LA(1); + + if ( (LA64_0==33) ) { + alt64=1; + } + + + switch (alt64) { + case 1 : + // Java.g:5217:5: (a14= ',' (a15_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) + { + // Java.g:5217:5: (a14= ',' (a15_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) + // Java.g:5218:6: a14= ',' (a15_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + { + a14=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_members_Constructor5817); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_6_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a14, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18852); + } + + // Java.g:5232:6: (a15_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + // Java.g:5233:7: a15_0= parse_org_emftext_language_java_types_NamespaceClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_members_Constructor5851); + a15_0=parse_org_emftext_language_java_types_NamespaceClassifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + if (a15_0 != null) { + if (a15_0 != null) { + Object value = a15_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CONSTRUCTOR__EXCEPTIONS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_6_0_0_2_0_0_1, a15_0, true); + copyLocalizationInfos(a15_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18854); + } + + } + + + } + break; + + default : + break loop64; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18856); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(18857); + } + + a16=(Token)match(input,105,FOLLOW_105_in_parse_org_emftext_language_java_members_Constructor5925); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_8, null, true); + copyLocalizationInfos((CommonToken)a16, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(19044); + addExpectedElement(19045); + } + + // Java.g:5287:2: ( ( (a17_0= parse_org_emftext_language_java_statements_Statement ) ) )* + loop66: + do { + int alt66=2; + int LA66_0 = input.LA(1); + + if ( ((LA66_0 >= BOOLEAN_LITERAL && LA66_0 <= IDENTIFIER)||(LA66_0 >= OCTAL_INTEGER_LITERAL && LA66_0 <= OCTAL_LONG_LITERAL)||LA66_0==STRING_LITERAL||LA66_0==21||LA66_0==26||(LA66_0 >= 30 && LA66_0 <= 31)||(LA66_0 >= 34 && LA66_0 <= 35)||(LA66_0 >= 42 && LA66_0 <= 43)||LA66_0==48||(LA66_0 >= 56 && LA66_0 <= 60)||(LA66_0 >= 63 && LA66_0 <= 65)||(LA66_0 >= 67 && LA66_0 <= 68)||LA66_0==70||LA66_0==72||(LA66_0 >= 74 && LA66_0 <= 76)||(LA66_0 >= 80 && LA66_0 <= 85)||(LA66_0 >= 87 && LA66_0 <= 98)||(LA66_0 >= 100 && LA66_0 <= 105)||LA66_0==110) ) { + alt66=1; + } + + + switch (alt66) { + case 1 : + // Java.g:5288:3: ( (a17_0= parse_org_emftext_language_java_statements_Statement ) ) + { + // Java.g:5288:3: ( (a17_0= parse_org_emftext_language_java_statements_Statement ) ) + // Java.g:5289:4: (a17_0= parse_org_emftext_language_java_statements_Statement ) + { + // Java.g:5289:4: (a17_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:5290:5: a17_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_members_Constructor5954); + a17_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + if (a17_0 != null) { + if (a17_0 != null) { + Object value = a17_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CONSTRUCTOR__STATEMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_9_0_0_1, a17_0, true); + copyLocalizationInfos(a17_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(19232); + addExpectedElement(19233); + } + + } + + + } + break; + + default : + break loop66; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(19420); + addExpectedElement(19421); + } + + a18=(Token)match(input,109,FOLLOW_109_in_parse_org_emftext_language_java_members_Constructor5995); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createConstructor(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_19_0_0_11, null, true); + copyLocalizationInfos((CommonToken)a18, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(19599); + addExpectedElement(19600); + addExpectedElement(19778); + addExpectedElement(19779); + addExpectedElement(19957); + addExpectedElement(19958); + addExpectedElement(20136); + addExpectedElement(20137); + addExpectedElement(20315); + addExpectedElement(20316); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 21, parse_org_emftext_language_java_members_Constructor_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_members_Constructor" + + + + // $ANTLR start "parse_org_emftext_language_java_members_InterfaceMethod" + // Java.g:5352:1: parse_org_emftext_language_java_members_InterfaceMethod returns [org.emftext.language.java.members.InterfaceMethod element = null] : ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) (a8= IDENTIFIER ) a9= '(' ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a13= ')' ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a19= ';' |c0= parse_org_emftext_language_java_annotations_AnnotationAttribute ); + public final org.emftext.language.java.members.InterfaceMethod parse_org_emftext_language_java_members_InterfaceMethod() throws RecognitionException { + org.emftext.language.java.members.InterfaceMethod element = null; + + int parse_org_emftext_language_java_members_InterfaceMethod_StartIndex = input.index(); + + Token a1=null; + Token a3=null; + Token a5=null; + Token a8=null; + Token a9=null; + Token a11=null; + Token a13=null; + Token a15=null; + Token a17=null; + Token a19=null; + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier a0_0 =null; + + org.emftext.language.java.generics.TypeParameter a2_0 =null; + + org.emftext.language.java.generics.TypeParameter a4_0 =null; + + org.emftext.language.java.types.TypeReference a6_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a7_0 =null; + + org.emftext.language.java.parameters.Parameter a10_0 =null; + + org.emftext.language.java.parameters.Parameter a12_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a14_0 =null; + + org.emftext.language.java.types.NamespaceClassifierReference a16_0 =null; + + org.emftext.language.java.types.NamespaceClassifierReference a18_0 =null; + + org.emftext.language.java.annotations.AnnotationAttribute c0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 22) ) { return element; } + + // Java.g:5355:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) (a8= IDENTIFIER ) a9= '(' ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a13= ')' ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a19= ';' |c0= parse_org_emftext_language_java_annotations_AnnotationAttribute ) + int alt76=2; + switch ( input.LA(1) ) { + case 48: + { + int LA76_1 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 1, input); + + throw nvae; + + } + } + break; + case 89: + { + int LA76_2 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 2, input); + + throw nvae; + + } + } + break; + case 56: + { + int LA76_3 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 3, input); + + throw nvae; + + } + } + break; + case 88: + { + int LA76_4 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 4, input); + + throw nvae; + + } + } + break; + case 87: + { + int LA76_5 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 5, input); + + throw nvae; + + } + } + break; + case 72: + { + int LA76_6 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 6, input); + + throw nvae; + + } + } + break; + case 92: + { + int LA76_7 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 7, input); + + throw nvae; + + } + } + break; + case 83: + { + int LA76_8 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 8, input); + + throw nvae; + + } + } + break; + case 96: + { + int LA76_9 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 9, input); + + throw nvae; + + } + } + break; + case 100: + { + int LA76_10 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 10, input); + + throw nvae; + + } + } + break; + case 103: + { + int LA76_11 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 11, input); + + throw nvae; + + } + } + break; + case 93: + { + int LA76_12 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 12, input); + + throw nvae; + + } + } + break; + case 43: + { + int LA76_13 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 13, input); + + throw nvae; + + } + } + break; + case IDENTIFIER: + { + int LA76_14 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 14, input); + + throw nvae; + + } + } + break; + case 102: + { + int LA76_15 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 15, input); + + throw nvae; + + } + } + break; + case 58: + { + int LA76_16 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 16, input); + + throw nvae; + + } + } + break; + case 63: + { + int LA76_17 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 17, input); + + throw nvae; + + } + } + break; + case 60: + { + int LA76_18 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 18, input); + + throw nvae; + + } + } + break; + case 91: + { + int LA76_19 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 19, input); + + throw nvae; + + } + } + break; + case 80: + { + int LA76_20 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 20, input); + + throw nvae; + + } + } + break; + case 82: + { + int LA76_21 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 21, input); + + throw nvae; + + } + } + break; + case 74: + { + int LA76_22 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 22, input); + + throw nvae; + + } + } + break; + case 68: + { + int LA76_23 = input.LA(2); + + if ( (synpred77_Java()) ) { + alt76=1; + } + else if ( (true) ) { + alt76=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 23, input); + + throw nvae; + + } + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 76, 0, input); + + throw nvae; + + } + + switch (alt76) { + case 1 : + // Java.g:5356:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) (a8= IDENTIFIER ) a9= '(' ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a13= ')' ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a19= ';' + { + // Java.g:5356:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* + loop67: + do { + int alt67=2; + int LA67_0 = input.LA(1); + + if ( (LA67_0==48||LA67_0==56||LA67_0==72||LA67_0==83||(LA67_0 >= 87 && LA67_0 <= 89)||(LA67_0 >= 92 && LA67_0 <= 93)||LA67_0==96||LA67_0==100||LA67_0==103) ) { + alt67=1; + } + + + switch (alt67) { + case 1 : + // Java.g:5357:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + { + // Java.g:5357:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + // Java.g:5358:4: a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_members_InterfaceMethod6033); + a0_0=parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.INTERFACE_METHOD__ANNOTATIONS_AND_MODIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop67; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20328); + addExpectedElement(20329); + addExpectedElement(20341); + } + + // Java.g:5386:2: ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? + int alt69=2; + int LA69_0 = input.LA(1); + + if ( (LA69_0==43) ) { + alt69=1; + } + switch (alt69) { + case 1 : + // Java.g:5387:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) + { + // Java.g:5387:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) + // Java.g:5388:4: a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' + { + a1=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_members_InterfaceMethod6068); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20342); + } + + // Java.g:5402:4: (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:5403:5: a2_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_members_InterfaceMethod6094); + a2_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.INTERFACE_METHOD__TYPE_PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20344); + } + + // Java.g:5428:4: ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* + loop68: + do { + int alt68=2; + int LA68_0 = input.LA(1); + + if ( (LA68_0==33) ) { + alt68=1; + } + + + switch (alt68) { + case 1 : + // Java.g:5429:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + { + // Java.g:5429:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + // Java.g:5430:6: a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) + { + a3=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_members_InterfaceMethod6135); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_1_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20345); + } + + // Java.g:5444:6: (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:5445:7: a4_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_members_InterfaceMethod6169); + a4_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.INTERFACE_METHOD__TYPE_PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_1_0_0_2_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20347); + } + + } + + + } + break; + + default : + break loop68; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20349); + } + + a5=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_members_InterfaceMethod6230); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_1_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20361); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20373); + } + + // Java.g:5498:2: ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) + // Java.g:5499:3: (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + { + // Java.g:5499:3: (a6_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:5500:4: a6_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_members_InterfaceMethod6272); + a6_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.INTERFACE_METHOD__TYPE_REFERENCE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_2_0_0_0, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20374); + addExpectedElement(20375); + } + + // Java.g:5526:3: ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop70: + do { + int alt70=2; + int LA70_0 = input.LA(1); + + if ( (LA70_0==49) ) { + alt70=1; + } + + + switch (alt70) { + case 1 : + // Java.g:5527:4: (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:5527:4: (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:5528:5: a7_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_InterfaceMethod6306); + a7_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + if (a7_0 != null) { + if (a7_0 != null) { + Object value = a7_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.INTERFACE_METHOD__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_2_0_0_1, a7_0, true); + copyLocalizationInfos(a7_0, element); + } + } + + } + + + } + break; + + default : + break loop70; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20376); + addExpectedElement(20377); + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20378); + } + + // Java.g:5561:2: (a8= IDENTIFIER ) + // Java.g:5562:3: a8= IDENTIFIER + { + a8=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_members_InterfaceMethod6350); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + if (a8 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a8.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.INTERFACE_METHOD__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a8).getLine(), ((CommonToken) a8).getCharPositionInLine(), ((CommonToken) a8).getStartIndex(), ((CommonToken) a8).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.INTERFACE_METHOD__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_3, resolved, true); + copyLocalizationInfos((CommonToken) a8, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20379); + } + + a9=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_members_InterfaceMethod6371); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a9, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20427); + addExpectedElement(20428); + } + + // Java.g:5612:2: ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? + int alt72=2; + int LA72_0 = input.LA(1); + + if ( (LA72_0==IDENTIFIER||LA72_0==48||LA72_0==56||LA72_0==58||LA72_0==60||LA72_0==63||LA72_0==68||LA72_0==72||LA72_0==74||LA72_0==80||(LA72_0 >= 82 && LA72_0 <= 83)||(LA72_0 >= 87 && LA72_0 <= 89)||(LA72_0 >= 91 && LA72_0 <= 93)||LA72_0==96||LA72_0==100||(LA72_0 >= 102 && LA72_0 <= 103)) ) { + alt72=1; + } + switch (alt72) { + case 1 : + // Java.g:5613:3: ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) + { + // Java.g:5613:3: ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) + // Java.g:5614:4: (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* + { + // Java.g:5614:4: (a10_0= parse_org_emftext_language_java_parameters_Parameter ) + // Java.g:5615:5: a10_0= parse_org_emftext_language_java_parameters_Parameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_members_InterfaceMethod6400); + a10_0=parse_org_emftext_language_java_parameters_Parameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + if (a10_0 != null) { + if (a10_0 != null) { + Object value = a10_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.INTERFACE_METHOD__PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_5_0_0_0, a10_0, true); + copyLocalizationInfos(a10_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20430); + } + + // Java.g:5640:4: ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* + loop71: + do { + int alt71=2; + int LA71_0 = input.LA(1); + + if ( (LA71_0==33) ) { + alt71=1; + } + + + switch (alt71) { + case 1 : + // Java.g:5641:5: (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) + { + // Java.g:5641:5: (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) + // Java.g:5642:6: a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) + { + a11=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_members_InterfaceMethod6441); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_5_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a11, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20478); + } + + // Java.g:5656:6: (a12_0= parse_org_emftext_language_java_parameters_Parameter ) + // Java.g:5657:7: a12_0= parse_org_emftext_language_java_parameters_Parameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_members_InterfaceMethod6475); + a12_0=parse_org_emftext_language_java_parameters_Parameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + if (a12_0 != null) { + if (a12_0 != null) { + Object value = a12_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.INTERFACE_METHOD__PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_5_0_0_1_0_0_1, a12_0, true); + copyLocalizationInfos(a12_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20480); + } + + } + + + } + break; + + default : + break loop71; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20482); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20483); + } + + a13=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_members_InterfaceMethod6549); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_6, null, true); + copyLocalizationInfos((CommonToken)a13, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20484); + addExpectedElement(20486); + } + + // Java.g:5711:2: ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop73: + do { + int alt73=2; + int LA73_0 = input.LA(1); + + if ( (LA73_0==49) ) { + alt73=1; + } + + + switch (alt73) { + case 1 : + // Java.g:5712:3: (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:5712:3: (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:5713:4: a14_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_InterfaceMethod6572); + a14_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + if (a14_0 != null) { + if (a14_0 != null) { + Object value = a14_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.INTERFACE_METHOD__ARRAY_DIMENSIONS_AFTER, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_7, a14_0, true); + copyLocalizationInfos(a14_0, element); + } + } + + } + + + } + break; + + default : + break loop73; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20487); + addExpectedElement(20489); + } + + // Java.g:5740:2: ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? + int alt75=2; + int LA75_0 = input.LA(1); + + if ( (LA75_0==99) ) { + alt75=1; + } + switch (alt75) { + case 1 : + // Java.g:5741:3: (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) + { + // Java.g:5741:3: (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) + // Java.g:5742:4: a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* + { + a15=(Token)match(input,99,FOLLOW_99_in_parse_org_emftext_language_java_members_InterfaceMethod6607); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_8_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a15, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20491); + } + + // Java.g:5756:4: (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + // Java.g:5757:5: a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_members_InterfaceMethod6633); + a16_0=parse_org_emftext_language_java_types_NamespaceClassifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + if (a16_0 != null) { + if (a16_0 != null) { + Object value = a16_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.INTERFACE_METHOD__EXCEPTIONS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_8_0_0_1, a16_0, true); + copyLocalizationInfos(a16_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20493); + } + + // Java.g:5782:4: ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* + loop74: + do { + int alt74=2; + int LA74_0 = input.LA(1); + + if ( (LA74_0==33) ) { + alt74=1; + } + + + switch (alt74) { + case 1 : + // Java.g:5783:5: (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) + { + // Java.g:5783:5: (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) + // Java.g:5784:6: a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + { + a17=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_members_InterfaceMethod6674); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_8_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a17, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20495); + } + + // Java.g:5798:6: (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + // Java.g:5799:7: a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_members_InterfaceMethod6708); + a18_0=parse_org_emftext_language_java_types_NamespaceClassifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + if (a18_0 != null) { + if (a18_0 != null) { + Object value = a18_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.INTERFACE_METHOD__EXCEPTIONS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_8_0_0_2_0_0_1, a18_0, true); + copyLocalizationInfos(a18_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20497); + } + + } + + + } + break; + + default : + break loop74; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20499); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(20500); + } + + a19=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_members_InterfaceMethod6782); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createInterfaceMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_20_0_0_9, null, true); + copyLocalizationInfos((CommonToken)a19, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(20678); + addExpectedElement(20679); + addExpectedElement(20857); + addExpectedElement(20858); + addExpectedElement(21036); + addExpectedElement(21037); + addExpectedElement(21215); + addExpectedElement(21216); + addExpectedElement(21394); + addExpectedElement(21395); + } + + } + break; + case 2 : + // Java.g:5866:2: c0= parse_org_emftext_language_java_annotations_AnnotationAttribute + { + pushFollow(FOLLOW_parse_org_emftext_language_java_annotations_AnnotationAttribute_in_parse_org_emftext_language_java_members_InterfaceMethod6801); + c0=parse_org_emftext_language_java_annotations_AnnotationAttribute(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 22, parse_org_emftext_language_java_members_InterfaceMethod_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_members_InterfaceMethod" + + + + // $ANTLR start "parse_org_emftext_language_java_members_ClassMethod" + // Java.g:5870:1: parse_org_emftext_language_java_members_ClassMethod returns [org.emftext.language.java.members.ClassMethod element = null] : ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) (a8= IDENTIFIER ) a9= '(' ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a13= ')' ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a19= '{' ( ( (a20_0= parse_org_emftext_language_java_statements_Statement ) ) )* a21= '}' ; + public final org.emftext.language.java.members.ClassMethod parse_org_emftext_language_java_members_ClassMethod() throws RecognitionException { + org.emftext.language.java.members.ClassMethod element = null; + + int parse_org_emftext_language_java_members_ClassMethod_StartIndex = input.index(); + + Token a1=null; + Token a3=null; + Token a5=null; + Token a8=null; + Token a9=null; + Token a11=null; + Token a13=null; + Token a15=null; + Token a17=null; + Token a19=null; + Token a21=null; + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier a0_0 =null; + + org.emftext.language.java.generics.TypeParameter a2_0 =null; + + org.emftext.language.java.generics.TypeParameter a4_0 =null; + + org.emftext.language.java.types.TypeReference a6_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a7_0 =null; + + org.emftext.language.java.parameters.Parameter a10_0 =null; + + org.emftext.language.java.parameters.Parameter a12_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a14_0 =null; + + org.emftext.language.java.types.NamespaceClassifierReference a16_0 =null; + + org.emftext.language.java.types.NamespaceClassifierReference a18_0 =null; + + org.emftext.language.java.statements.Statement a20_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 23) ) { return element; } + + // Java.g:5873:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) (a8= IDENTIFIER ) a9= '(' ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a13= ')' ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a19= '{' ( ( (a20_0= parse_org_emftext_language_java_statements_Statement ) ) )* a21= '}' ) + // Java.g:5874:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) (a8= IDENTIFIER ) a9= '(' ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a13= ')' ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a19= '{' ( ( (a20_0= parse_org_emftext_language_java_statements_Statement ) ) )* a21= '}' + { + // Java.g:5874:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* + loop77: + do { + int alt77=2; + int LA77_0 = input.LA(1); + + if ( (LA77_0==48||LA77_0==56||LA77_0==72||LA77_0==83||(LA77_0 >= 87 && LA77_0 <= 89)||(LA77_0 >= 92 && LA77_0 <= 93)||LA77_0==96||LA77_0==100||LA77_0==103) ) { + alt77=1; + } + + + switch (alt77) { + case 1 : + // Java.g:5875:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + { + // Java.g:5875:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + // Java.g:5876:4: a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_members_ClassMethod6835); + a0_0=parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CLASS_METHOD__ANNOTATIONS_AND_MODIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop77; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21407); + addExpectedElement(21408); + addExpectedElement(21420); + } + + // Java.g:5904:2: ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? + int alt79=2; + int LA79_0 = input.LA(1); + + if ( (LA79_0==43) ) { + alt79=1; + } + switch (alt79) { + case 1 : + // Java.g:5905:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) + { + // Java.g:5905:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) + // Java.g:5906:4: a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' + { + a1=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_members_ClassMethod6870); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21421); + } + + // Java.g:5920:4: (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:5921:5: a2_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_members_ClassMethod6896); + a2_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CLASS_METHOD__TYPE_PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21423); + } + + // Java.g:5946:4: ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* + loop78: + do { + int alt78=2; + int LA78_0 = input.LA(1); + + if ( (LA78_0==33) ) { + alt78=1; + } + + + switch (alt78) { + case 1 : + // Java.g:5947:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + { + // Java.g:5947:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + // Java.g:5948:6: a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) + { + a3=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_members_ClassMethod6937); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_1_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21424); + } + + // Java.g:5962:6: (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:5963:7: a4_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_members_ClassMethod6971); + a4_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CLASS_METHOD__TYPE_PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_1_0_0_2_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21426); + } + + } + + + } + break; + + default : + break loop78; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21428); + } + + a5=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_members_ClassMethod7032); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_1_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21440); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21452); + } + + // Java.g:6016:2: ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) + // Java.g:6017:3: (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + { + // Java.g:6017:3: (a6_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:6018:4: a6_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_members_ClassMethod7074); + a6_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.CLASS_METHOD__TYPE_REFERENCE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_2_0_0_0, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21453); + addExpectedElement(21454); + } + + // Java.g:6044:3: ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop80: + do { + int alt80=2; + int LA80_0 = input.LA(1); + + if ( (LA80_0==49) ) { + alt80=1; + } + + + switch (alt80) { + case 1 : + // Java.g:6045:4: (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:6045:4: (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:6046:5: a7_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_ClassMethod7108); + a7_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + if (a7_0 != null) { + if (a7_0 != null) { + Object value = a7_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CLASS_METHOD__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_2_0_0_1, a7_0, true); + copyLocalizationInfos(a7_0, element); + } + } + + } + + + } + break; + + default : + break loop80; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21455); + addExpectedElement(21456); + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21457); + } + + // Java.g:6079:2: (a8= IDENTIFIER ) + // Java.g:6080:3: a8= IDENTIFIER + { + a8=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_members_ClassMethod7152); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + if (a8 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a8.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.CLASS_METHOD__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a8).getLine(), ((CommonToken) a8).getCharPositionInLine(), ((CommonToken) a8).getStartIndex(), ((CommonToken) a8).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.CLASS_METHOD__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_3, resolved, true); + copyLocalizationInfos((CommonToken) a8, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21458); + } + + a9=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_members_ClassMethod7173); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a9, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21506); + addExpectedElement(21507); + } + + // Java.g:6130:2: ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? + int alt82=2; + int LA82_0 = input.LA(1); + + if ( (LA82_0==IDENTIFIER||LA82_0==48||LA82_0==56||LA82_0==58||LA82_0==60||LA82_0==63||LA82_0==68||LA82_0==72||LA82_0==74||LA82_0==80||(LA82_0 >= 82 && LA82_0 <= 83)||(LA82_0 >= 87 && LA82_0 <= 89)||(LA82_0 >= 91 && LA82_0 <= 93)||LA82_0==96||LA82_0==100||(LA82_0 >= 102 && LA82_0 <= 103)) ) { + alt82=1; + } + switch (alt82) { + case 1 : + // Java.g:6131:3: ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) + { + // Java.g:6131:3: ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) + // Java.g:6132:4: (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* + { + // Java.g:6132:4: (a10_0= parse_org_emftext_language_java_parameters_Parameter ) + // Java.g:6133:5: a10_0= parse_org_emftext_language_java_parameters_Parameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_members_ClassMethod7202); + a10_0=parse_org_emftext_language_java_parameters_Parameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + if (a10_0 != null) { + if (a10_0 != null) { + Object value = a10_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CLASS_METHOD__PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_5_0_0_0, a10_0, true); + copyLocalizationInfos(a10_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21509); + } + + // Java.g:6158:4: ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* + loop81: + do { + int alt81=2; + int LA81_0 = input.LA(1); + + if ( (LA81_0==33) ) { + alt81=1; + } + + + switch (alt81) { + case 1 : + // Java.g:6159:5: (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) + { + // Java.g:6159:5: (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) + // Java.g:6160:6: a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) + { + a11=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_members_ClassMethod7243); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_5_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a11, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21557); + } + + // Java.g:6174:6: (a12_0= parse_org_emftext_language_java_parameters_Parameter ) + // Java.g:6175:7: a12_0= parse_org_emftext_language_java_parameters_Parameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_members_ClassMethod7277); + a12_0=parse_org_emftext_language_java_parameters_Parameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + if (a12_0 != null) { + if (a12_0 != null) { + Object value = a12_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CLASS_METHOD__PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_5_0_0_1_0_0_1, a12_0, true); + copyLocalizationInfos(a12_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21559); + } + + } + + + } + break; + + default : + break loop81; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21561); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21562); + } + + a13=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_members_ClassMethod7351); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_6, null, true); + copyLocalizationInfos((CommonToken)a13, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21563); + addExpectedElement(21565); + } + + // Java.g:6229:2: ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop83: + do { + int alt83=2; + int LA83_0 = input.LA(1); + + if ( (LA83_0==49) ) { + alt83=1; + } + + + switch (alt83) { + case 1 : + // Java.g:6230:3: (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:6230:3: (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:6231:4: a14_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_ClassMethod7374); + a14_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + if (a14_0 != null) { + if (a14_0 != null) { + Object value = a14_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CLASS_METHOD__ARRAY_DIMENSIONS_AFTER, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_7, a14_0, true); + copyLocalizationInfos(a14_0, element); + } + } + + } + + + } + break; + + default : + break loop83; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21566); + addExpectedElement(21568); + } + + // Java.g:6258:2: ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? + int alt85=2; + int LA85_0 = input.LA(1); + + if ( (LA85_0==99) ) { + alt85=1; + } + switch (alt85) { + case 1 : + // Java.g:6259:3: (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) + { + // Java.g:6259:3: (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) + // Java.g:6260:4: a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* + { + a15=(Token)match(input,99,FOLLOW_99_in_parse_org_emftext_language_java_members_ClassMethod7409); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_8_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a15, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21570); + } + + // Java.g:6274:4: (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + // Java.g:6275:5: a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_members_ClassMethod7435); + a16_0=parse_org_emftext_language_java_types_NamespaceClassifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + if (a16_0 != null) { + if (a16_0 != null) { + Object value = a16_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CLASS_METHOD__EXCEPTIONS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_8_0_0_1, a16_0, true); + copyLocalizationInfos(a16_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21572); + } + + // Java.g:6300:4: ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* + loop84: + do { + int alt84=2; + int LA84_0 = input.LA(1); + + if ( (LA84_0==33) ) { + alt84=1; + } + + + switch (alt84) { + case 1 : + // Java.g:6301:5: (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) + { + // Java.g:6301:5: (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) + // Java.g:6302:6: a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + { + a17=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_members_ClassMethod7476); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_8_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a17, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21574); + } + + // Java.g:6316:6: (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + // Java.g:6317:7: a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_members_ClassMethod7510); + a18_0=parse_org_emftext_language_java_types_NamespaceClassifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + if (a18_0 != null) { + if (a18_0 != null) { + Object value = a18_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CLASS_METHOD__EXCEPTIONS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_8_0_0_2_0_0_1, a18_0, true); + copyLocalizationInfos(a18_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21576); + } + + } + + + } + break; + + default : + break loop84; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21578); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21579); + } + + a19=(Token)match(input,105,FOLLOW_105_in_parse_org_emftext_language_java_members_ClassMethod7584); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_10, null, true); + copyLocalizationInfos((CommonToken)a19, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21766); + addExpectedElement(21767); + } + + // Java.g:6371:2: ( ( (a20_0= parse_org_emftext_language_java_statements_Statement ) ) )* + loop86: + do { + int alt86=2; + int LA86_0 = input.LA(1); + + if ( ((LA86_0 >= BOOLEAN_LITERAL && LA86_0 <= IDENTIFIER)||(LA86_0 >= OCTAL_INTEGER_LITERAL && LA86_0 <= OCTAL_LONG_LITERAL)||LA86_0==STRING_LITERAL||LA86_0==21||LA86_0==26||(LA86_0 >= 30 && LA86_0 <= 31)||(LA86_0 >= 34 && LA86_0 <= 35)||(LA86_0 >= 42 && LA86_0 <= 43)||LA86_0==48||(LA86_0 >= 56 && LA86_0 <= 60)||(LA86_0 >= 63 && LA86_0 <= 65)||(LA86_0 >= 67 && LA86_0 <= 68)||LA86_0==70||LA86_0==72||(LA86_0 >= 74 && LA86_0 <= 76)||(LA86_0 >= 80 && LA86_0 <= 85)||(LA86_0 >= 87 && LA86_0 <= 98)||(LA86_0 >= 100 && LA86_0 <= 105)||LA86_0==110) ) { + alt86=1; + } + + + switch (alt86) { + case 1 : + // Java.g:6372:3: ( (a20_0= parse_org_emftext_language_java_statements_Statement ) ) + { + // Java.g:6372:3: ( (a20_0= parse_org_emftext_language_java_statements_Statement ) ) + // Java.g:6373:4: (a20_0= parse_org_emftext_language_java_statements_Statement ) + { + // Java.g:6373:4: (a20_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:6374:5: a20_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_members_ClassMethod7613); + a20_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + if (a20_0 != null) { + if (a20_0 != null) { + Object value = a20_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.CLASS_METHOD__STATEMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_11_0_0_1, a20_0, true); + copyLocalizationInfos(a20_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(21954); + addExpectedElement(21955); + } + + } + + + } + break; + + default : + break loop86; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(22142); + addExpectedElement(22143); + } + + a21=(Token)match(input,109,FOLLOW_109_in_parse_org_emftext_language_java_members_ClassMethod7654); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createClassMethod(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_21_0_0_13, null, true); + copyLocalizationInfos((CommonToken)a21, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(22321); + addExpectedElement(22322); + addExpectedElement(22500); + addExpectedElement(22501); + addExpectedElement(22679); + addExpectedElement(22680); + addExpectedElement(22858); + addExpectedElement(22859); + addExpectedElement(23037); + addExpectedElement(23038); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 23, parse_org_emftext_language_java_members_ClassMethod_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_members_ClassMethod" + + + + // $ANTLR start "parse_org_emftext_language_java_annotations_AnnotationAttribute" + // Java.g:6436:1: parse_org_emftext_language_java_annotations_AnnotationAttribute returns [org.emftext.language.java.annotations.AnnotationAttribute element = null] : ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) (a8= IDENTIFIER ) a9= '(' ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a13= ')' ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a19= 'default' (a20_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a21= ';' ; + public final org.emftext.language.java.annotations.AnnotationAttribute parse_org_emftext_language_java_annotations_AnnotationAttribute() throws RecognitionException { + org.emftext.language.java.annotations.AnnotationAttribute element = null; + + int parse_org_emftext_language_java_annotations_AnnotationAttribute_StartIndex = input.index(); + + Token a1=null; + Token a3=null; + Token a5=null; + Token a8=null; + Token a9=null; + Token a11=null; + Token a13=null; + Token a15=null; + Token a17=null; + Token a19=null; + Token a21=null; + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier a0_0 =null; + + org.emftext.language.java.generics.TypeParameter a2_0 =null; + + org.emftext.language.java.generics.TypeParameter a4_0 =null; + + org.emftext.language.java.types.TypeReference a6_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a7_0 =null; + + org.emftext.language.java.parameters.Parameter a10_0 =null; + + org.emftext.language.java.parameters.Parameter a12_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a14_0 =null; + + org.emftext.language.java.types.NamespaceClassifierReference a16_0 =null; + + org.emftext.language.java.types.NamespaceClassifierReference a18_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a20_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 24) ) { return element; } + + // Java.g:6439:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) (a8= IDENTIFIER ) a9= '(' ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a13= ')' ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a19= 'default' (a20_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a21= ';' ) + // Java.g:6440:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) (a8= IDENTIFIER ) a9= '(' ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a13= ')' ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a19= 'default' (a20_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a21= ';' + { + // Java.g:6440:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* + loop87: + do { + int alt87=2; + int LA87_0 = input.LA(1); + + if ( (LA87_0==48||LA87_0==56||LA87_0==72||LA87_0==83||(LA87_0 >= 87 && LA87_0 <= 89)||(LA87_0 >= 92 && LA87_0 <= 93)||LA87_0==96||LA87_0==100||LA87_0==103) ) { + alt87=1; + } + + + switch (alt87) { + case 1 : + // Java.g:6441:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + { + // Java.g:6441:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + // Java.g:6442:4: a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7692); + a0_0=parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE__ANNOTATIONS_AND_MODIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop87; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23050); + addExpectedElement(23051); + addExpectedElement(23063); + } + + // Java.g:6470:2: ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? + int alt89=2; + int LA89_0 = input.LA(1); + + if ( (LA89_0==43) ) { + alt89=1; + } + switch (alt89) { + case 1 : + // Java.g:6471:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) + { + // Java.g:6471:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) + // Java.g:6472:4: a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' + { + a1=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7727); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23064); + } + + // Java.g:6486:4: (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:6487:5: a2_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7753); + a2_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE__TYPE_PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23066); + } + + // Java.g:6512:4: ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* + loop88: + do { + int alt88=2; + int LA88_0 = input.LA(1); + + if ( (LA88_0==33) ) { + alt88=1; + } + + + switch (alt88) { + case 1 : + // Java.g:6513:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + { + // Java.g:6513:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + // Java.g:6514:6: a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) + { + a3=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7794); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_1_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23067); + } + + // Java.g:6528:6: (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:6529:7: a4_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7828); + a4_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE__TYPE_PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_1_0_0_2_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23069); + } + + } + + + } + break; + + default : + break loop88; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23071); + } + + a5=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7889); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_1_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23083); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23095); + } + + // Java.g:6582:2: ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) + // Java.g:6583:3: (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + { + // Java.g:6583:3: (a6_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:6584:4: a6_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7931); + a6_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE__TYPE_REFERENCE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_2_0_0_0, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23096); + addExpectedElement(23097); + } + + // Java.g:6610:3: ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop90: + do { + int alt90=2; + int LA90_0 = input.LA(1); + + if ( (LA90_0==49) ) { + alt90=1; + } + + + switch (alt90) { + case 1 : + // Java.g:6611:4: (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:6611:4: (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:6612:5: a7_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7965); + a7_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + if (a7_0 != null) { + if (a7_0 != null) { + Object value = a7_0; + addObjectToList(element, org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_2_0_0_1, a7_0, true); + copyLocalizationInfos(a7_0, element); + } + } + + } + + + } + break; + + default : + break loop90; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23098); + addExpectedElement(23099); + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23100); + } + + // Java.g:6645:2: (a8= IDENTIFIER ) + // Java.g:6646:3: a8= IDENTIFIER + { + a8=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8009); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + if (a8 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a8.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a8).getLine(), ((CommonToken) a8).getCharPositionInLine(), ((CommonToken) a8).getStartIndex(), ((CommonToken) a8).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_3, resolved, true); + copyLocalizationInfos((CommonToken) a8, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23101); + } + + a9=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8030); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a9, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23149); + addExpectedElement(23150); + } + + // Java.g:6696:2: ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? + int alt92=2; + int LA92_0 = input.LA(1); + + if ( (LA92_0==IDENTIFIER||LA92_0==48||LA92_0==56||LA92_0==58||LA92_0==60||LA92_0==63||LA92_0==68||LA92_0==72||LA92_0==74||LA92_0==80||(LA92_0 >= 82 && LA92_0 <= 83)||(LA92_0 >= 87 && LA92_0 <= 89)||(LA92_0 >= 91 && LA92_0 <= 93)||LA92_0==96||LA92_0==100||(LA92_0 >= 102 && LA92_0 <= 103)) ) { + alt92=1; + } + switch (alt92) { + case 1 : + // Java.g:6697:3: ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) + { + // Java.g:6697:3: ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) + // Java.g:6698:4: (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* + { + // Java.g:6698:4: (a10_0= parse_org_emftext_language_java_parameters_Parameter ) + // Java.g:6699:5: a10_0= parse_org_emftext_language_java_parameters_Parameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8059); + a10_0=parse_org_emftext_language_java_parameters_Parameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + if (a10_0 != null) { + if (a10_0 != null) { + Object value = a10_0; + addObjectToList(element, org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE__PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_5_0_0_0, a10_0, true); + copyLocalizationInfos(a10_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23152); + } + + // Java.g:6724:4: ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* + loop91: + do { + int alt91=2; + int LA91_0 = input.LA(1); + + if ( (LA91_0==33) ) { + alt91=1; + } + + + switch (alt91) { + case 1 : + // Java.g:6725:5: (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) + { + // Java.g:6725:5: (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) + // Java.g:6726:6: a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) + { + a11=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8100); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_5_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a11, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23200); + } + + // Java.g:6740:6: (a12_0= parse_org_emftext_language_java_parameters_Parameter ) + // Java.g:6741:7: a12_0= parse_org_emftext_language_java_parameters_Parameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8134); + a12_0=parse_org_emftext_language_java_parameters_Parameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + if (a12_0 != null) { + if (a12_0 != null) { + Object value = a12_0; + addObjectToList(element, org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE__PARAMETERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_5_0_0_1_0_0_1, a12_0, true); + copyLocalizationInfos(a12_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23202); + } + + } + + + } + break; + + default : + break loop91; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23204); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23205); + } + + a13=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8208); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_6, null, true); + copyLocalizationInfos((CommonToken)a13, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23206); + addExpectedElement(23208); + } + + // Java.g:6795:2: ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop93: + do { + int alt93=2; + int LA93_0 = input.LA(1); + + if ( (LA93_0==49) ) { + alt93=1; + } + + + switch (alt93) { + case 1 : + // Java.g:6796:3: (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:6796:3: (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:6797:4: a14_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8231); + a14_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + if (a14_0 != null) { + if (a14_0 != null) { + Object value = a14_0; + addObjectToList(element, org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE__ARRAY_DIMENSIONS_AFTER, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_7, a14_0, true); + copyLocalizationInfos(a14_0, element); + } + } + + } + + + } + break; + + default : + break loop93; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23209); + addExpectedElement(23211); + } + + // Java.g:6824:2: ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? + int alt95=2; + int LA95_0 = input.LA(1); + + if ( (LA95_0==99) ) { + alt95=1; + } + switch (alt95) { + case 1 : + // Java.g:6825:3: (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) + { + // Java.g:6825:3: (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) + // Java.g:6826:4: a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* + { + a15=(Token)match(input,99,FOLLOW_99_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8266); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_8_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a15, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23213); + } + + // Java.g:6840:4: (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + // Java.g:6841:5: a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8292); + a16_0=parse_org_emftext_language_java_types_NamespaceClassifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + if (a16_0 != null) { + if (a16_0 != null) { + Object value = a16_0; + addObjectToList(element, org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE__EXCEPTIONS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_8_0_0_1, a16_0, true); + copyLocalizationInfos(a16_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23215); + } + + // Java.g:6866:4: ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* + loop94: + do { + int alt94=2; + int LA94_0 = input.LA(1); + + if ( (LA94_0==33) ) { + alt94=1; + } + + + switch (alt94) { + case 1 : + // Java.g:6867:5: (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) + { + // Java.g:6867:5: (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) + // Java.g:6868:6: a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + { + a17=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8333); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_8_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a17, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23217); + } + + // Java.g:6882:6: (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + // Java.g:6883:7: a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8367); + a18_0=parse_org_emftext_language_java_types_NamespaceClassifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + if (a18_0 != null) { + if (a18_0 != null) { + Object value = a18_0; + addObjectToList(element, org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE__EXCEPTIONS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_8_0_0_2_0_0_1, a18_0, true); + copyLocalizationInfos(a18_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23219); + } + + } + + + } + break; + + default : + break loop94; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23221); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23222); + } + + a19=(Token)match(input,66,FOLLOW_66_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8441); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_9, null, true); + copyLocalizationInfos((CommonToken)a19, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23306); + } + + // Java.g:6936:2: (a20_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:6937:3: a20_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8459); + a20_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + if (a20_0 != null) { + if (a20_0 != null) { + Object value = a20_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.annotations.AnnotationsPackage.ANNOTATION_ATTRIBUTE__DEFAULT_VALUE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_10, a20_0, true); + copyLocalizationInfos(a20_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(23307); + } + + a21=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8477); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_22_0_0_11, null, true); + copyLocalizationInfos((CommonToken)a21, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(23485); + addExpectedElement(23486); + addExpectedElement(23664); + addExpectedElement(23665); + addExpectedElement(23843); + addExpectedElement(23844); + addExpectedElement(24022); + addExpectedElement(24023); + addExpectedElement(24201); + addExpectedElement(24202); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 24, parse_org_emftext_language_java_annotations_AnnotationAttribute_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_annotations_AnnotationAttribute" + + + + // $ANTLR start "parse_org_emftext_language_java_parameters_OrdinaryParameter" + // Java.g:6990:1: parse_org_emftext_language_java_parameters_OrdinaryParameter returns [org.emftext.language.java.parameters.OrdinaryParameter element = null] : ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? (a8= IDENTIFIER ) ( (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ; + public final org.emftext.language.java.parameters.OrdinaryParameter parse_org_emftext_language_java_parameters_OrdinaryParameter() throws RecognitionException { + org.emftext.language.java.parameters.OrdinaryParameter element = null; + + int parse_org_emftext_language_java_parameters_OrdinaryParameter_StartIndex = input.index(); + + Token a3=null; + Token a5=null; + Token a7=null; + Token a8=null; + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier a0_0 =null; + + org.emftext.language.java.types.TypeReference a1_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a2_0 =null; + + org.emftext.language.java.generics.TypeArgument a4_0 =null; + + org.emftext.language.java.generics.TypeArgument a6_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a9_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 25) ) { return element; } + + // Java.g:6993:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? (a8= IDENTIFIER ) ( (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) + // Java.g:6994:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? (a8= IDENTIFIER ) ( (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + { + // Java.g:6994:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* + loop96: + do { + int alt96=2; + int LA96_0 = input.LA(1); + + if ( (LA96_0==48||LA96_0==56||LA96_0==72||LA96_0==83||(LA96_0 >= 87 && LA96_0 <= 89)||(LA96_0 >= 92 && LA96_0 <= 93)||LA96_0==96||LA96_0==100||LA96_0==103) ) { + alt96=1; + } + + + switch (alt96) { + case 1 : + // Java.g:6995:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + { + // Java.g:6995:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + // Java.g:6996:4: a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8515); + a0_0=parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createOrdinaryParameter(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.parameters.ParametersPackage.ORDINARY_PARAMETER__ANNOTATIONS_AND_MODIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_23_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop96; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24226); + } + + // Java.g:7022:2: (a1_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:7023:3: a1_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8545); + a1_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createOrdinaryParameter(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.parameters.ParametersPackage.ORDINARY_PARAMETER__TYPE_REFERENCE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_23_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24227); + addExpectedElement(24229); + } + + // Java.g:7049:2: ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop97: + do { + int alt97=2; + int LA97_0 = input.LA(1); + + if ( (LA97_0==49) ) { + alt97=1; + } + + + switch (alt97) { + case 1 : + // Java.g:7050:3: (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:7050:3: (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:7051:4: a2_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8572); + a2_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createOrdinaryParameter(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.parameters.ParametersPackage.ORDINARY_PARAMETER__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_23_0_0_2, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + } + break; + + default : + break loop97; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24230); + addExpectedElement(24232); + } + + // Java.g:7078:2: ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? + int alt99=2; + int LA99_0 = input.LA(1); + + if ( (LA99_0==43) ) { + alt99=1; + } + switch (alt99) { + case 1 : + // Java.g:7079:3: (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) + { + // Java.g:7079:3: (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) + // Java.g:7080:4: a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' + { + a3=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8607); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createOrdinaryParameter(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_23_0_0_3_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24247); + } + + // Java.g:7094:4: (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:7095:5: a4_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8633); + a4_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createOrdinaryParameter(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.parameters.ParametersPackage.ORDINARY_PARAMETER__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_23_0_0_3_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24249); + } + + // Java.g:7120:4: ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* + loop98: + do { + int alt98=2; + int LA98_0 = input.LA(1); + + if ( (LA98_0==33) ) { + alt98=1; + } + + + switch (alt98) { + case 1 : + // Java.g:7121:5: (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + { + // Java.g:7121:5: (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + // Java.g:7122:6: a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) + { + a5=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8674); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createOrdinaryParameter(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_23_0_0_3_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24264); + } + + // Java.g:7136:6: (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:7137:7: a6_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8708); + a6_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createOrdinaryParameter(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + addObjectToList(element, org.emftext.language.java.parameters.ParametersPackage.ORDINARY_PARAMETER__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_23_0_0_3_0_0_2_0_0_1, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24266); + } + + } + + + } + break; + + default : + break loop98; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24268); + } + + a7=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8769); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createOrdinaryParameter(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_23_0_0_3_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a7, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24269); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24270); + } + + // Java.g:7190:2: (a8= IDENTIFIER ) + // Java.g:7191:3: a8= IDENTIFIER + { + a8=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8806); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createOrdinaryParameter(); + startIncompleteElement(element); + } + if (a8 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a8.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.parameters.ParametersPackage.ORDINARY_PARAMETER__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a8).getLine(), ((CommonToken) a8).getCharPositionInLine(), ((CommonToken) a8).getStartIndex(), ((CommonToken) a8).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.parameters.ParametersPackage.ORDINARY_PARAMETER__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_23_0_0_4, resolved, true); + copyLocalizationInfos((CommonToken) a8, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24271); + addExpectedElement(24281); + } + + // Java.g:7227:2: ( (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop100: + do { + int alt100=2; + int LA100_0 = input.LA(1); + + if ( (LA100_0==49) ) { + alt100=1; + } + + + switch (alt100) { + case 1 : + // Java.g:7228:3: (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:7228:3: (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:7229:4: a9_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8836); + a9_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createOrdinaryParameter(); + startIncompleteElement(element); + } + if (a9_0 != null) { + if (a9_0 != null) { + Object value = a9_0; + addObjectToList(element, org.emftext.language.java.parameters.ParametersPackage.ORDINARY_PARAMETER__ARRAY_DIMENSIONS_AFTER, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_23_0_0_5, a9_0, true); + copyLocalizationInfos(a9_0, element); + } + } + + } + + + } + break; + + default : + break loop100; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(24282); + addExpectedElement(24292); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 25, parse_org_emftext_language_java_parameters_OrdinaryParameter_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_parameters_OrdinaryParameter" + + + + // $ANTLR start "parse_org_emftext_language_java_parameters_VariableLengthParameter" + // Java.g:7261:1: parse_org_emftext_language_java_parameters_VariableLengthParameter returns [org.emftext.language.java.parameters.VariableLengthParameter element = null] : ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? a8= '...' (a9= IDENTIFIER ) ; + public final org.emftext.language.java.parameters.VariableLengthParameter parse_org_emftext_language_java_parameters_VariableLengthParameter() throws RecognitionException { + org.emftext.language.java.parameters.VariableLengthParameter element = null; + + int parse_org_emftext_language_java_parameters_VariableLengthParameter_StartIndex = input.index(); + + Token a3=null; + Token a5=null; + Token a7=null; + Token a8=null; + Token a9=null; + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier a0_0 =null; + + org.emftext.language.java.types.TypeReference a1_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a2_0 =null; + + org.emftext.language.java.generics.TypeArgument a4_0 =null; + + org.emftext.language.java.generics.TypeArgument a6_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 26) ) { return element; } + + // Java.g:7264:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? a8= '...' (a9= IDENTIFIER ) ) + // Java.g:7265:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? a8= '...' (a9= IDENTIFIER ) + { + // Java.g:7265:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* + loop101: + do { + int alt101=2; + int LA101_0 = input.LA(1); + + if ( (LA101_0==48||LA101_0==56||LA101_0==72||LA101_0==83||(LA101_0 >= 87 && LA101_0 <= 89)||(LA101_0 >= 92 && LA101_0 <= 93)||LA101_0==96||LA101_0==100||LA101_0==103) ) { + alt101=1; + } + + + switch (alt101) { + case 1 : + // Java.g:7266:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + { + // Java.g:7266:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + // Java.g:7267:4: a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_parameters_VariableLengthParameter8886); + a0_0=parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createVariableLengthParameter(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.parameters.ParametersPackage.VARIABLE_LENGTH_PARAMETER__ANNOTATIONS_AND_MODIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_24_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop101; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24316); + } + + // Java.g:7293:2: (a1_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:7294:3: a1_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_parameters_VariableLengthParameter8916); + a1_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createVariableLengthParameter(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.parameters.ParametersPackage.VARIABLE_LENGTH_PARAMETER__TYPE_REFERENCE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_24_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24317); + addExpectedElement(24319); + } + + // Java.g:7320:2: ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop102: + do { + int alt102=2; + int LA102_0 = input.LA(1); + + if ( (LA102_0==49) ) { + alt102=1; + } + + + switch (alt102) { + case 1 : + // Java.g:7321:3: (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:7321:3: (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:7322:4: a2_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_parameters_VariableLengthParameter8943); + a2_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createVariableLengthParameter(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.parameters.ParametersPackage.VARIABLE_LENGTH_PARAMETER__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_24_0_0_2, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + } + break; + + default : + break loop102; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24320); + addExpectedElement(24322); + } + + // Java.g:7349:2: ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? + int alt104=2; + int LA104_0 = input.LA(1); + + if ( (LA104_0==43) ) { + alt104=1; + } + switch (alt104) { + case 1 : + // Java.g:7350:3: (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) + { + // Java.g:7350:3: (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) + // Java.g:7351:4: a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' + { + a3=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_parameters_VariableLengthParameter8978); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createVariableLengthParameter(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_24_0_0_3_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24337); + } + + // Java.g:7365:4: (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:7366:5: a4_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_parameters_VariableLengthParameter9004); + a4_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createVariableLengthParameter(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.parameters.ParametersPackage.VARIABLE_LENGTH_PARAMETER__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_24_0_0_3_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24339); + } + + // Java.g:7391:4: ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* + loop103: + do { + int alt103=2; + int LA103_0 = input.LA(1); + + if ( (LA103_0==33) ) { + alt103=1; + } + + + switch (alt103) { + case 1 : + // Java.g:7392:5: (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + { + // Java.g:7392:5: (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + // Java.g:7393:6: a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) + { + a5=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_parameters_VariableLengthParameter9045); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createVariableLengthParameter(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_24_0_0_3_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24354); + } + + // Java.g:7407:6: (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:7408:7: a6_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_parameters_VariableLengthParameter9079); + a6_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createVariableLengthParameter(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + addObjectToList(element, org.emftext.language.java.parameters.ParametersPackage.VARIABLE_LENGTH_PARAMETER__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_24_0_0_3_0_0_2_0_0_1, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24356); + } + + } + + + } + break; + + default : + break loop103; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24358); + } + + a7=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_parameters_VariableLengthParameter9140); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createVariableLengthParameter(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_24_0_0_3_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a7, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24359); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24360); + } + + a8=(Token)match(input,38,FOLLOW_38_in_parse_org_emftext_language_java_parameters_VariableLengthParameter9173); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createVariableLengthParameter(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_24_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a8, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24361); + } + + // Java.g:7475:2: (a9= IDENTIFIER ) + // Java.g:7476:3: a9= IDENTIFIER + { + a9=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_parameters_VariableLengthParameter9191); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.parameters.ParametersFactory.eINSTANCE.createVariableLengthParameter(); + startIncompleteElement(element); + } + if (a9 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a9.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.parameters.ParametersPackage.VARIABLE_LENGTH_PARAMETER__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a9).getLine(), ((CommonToken) a9).getCharPositionInLine(), ((CommonToken) a9).getStartIndex(), ((CommonToken) a9).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.parameters.ParametersPackage.VARIABLE_LENGTH_PARAMETER__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_24_0_0_5, resolved, true); + copyLocalizationInfos((CommonToken) a9, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(24369); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 26, parse_org_emftext_language_java_parameters_VariableLengthParameter_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_parameters_VariableLengthParameter" + + + + // $ANTLR start "parse_org_emftext_language_java_variables_LocalVariable" + // Java.g:7516:1: parse_org_emftext_language_java_variables_LocalVariable returns [org.emftext.language.java.variables.LocalVariable element = null] : ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? (a8= IDENTIFIER ) ( (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? ( (a12= ',' (a13_0= parse_org_emftext_language_java_variables_AdditionalLocalVariable ) ) )* ; + public final org.emftext.language.java.variables.LocalVariable parse_org_emftext_language_java_variables_LocalVariable() throws RecognitionException { + org.emftext.language.java.variables.LocalVariable element = null; + + int parse_org_emftext_language_java_variables_LocalVariable_StartIndex = input.index(); + + Token a3=null; + Token a5=null; + Token a7=null; + Token a8=null; + Token a10=null; + Token a12=null; + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier a0_0 =null; + + org.emftext.language.java.types.TypeReference a1_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a2_0 =null; + + org.emftext.language.java.generics.TypeArgument a4_0 =null; + + org.emftext.language.java.generics.TypeArgument a6_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a9_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a11_0 =null; + + org.emftext.language.java.variables.AdditionalLocalVariable a13_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 27) ) { return element; } + + // Java.g:7519:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? (a8= IDENTIFIER ) ( (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? ( (a12= ',' (a13_0= parse_org_emftext_language_java_variables_AdditionalLocalVariable ) ) )* ) + // Java.g:7520:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? (a8= IDENTIFIER ) ( (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? ( (a12= ',' (a13_0= parse_org_emftext_language_java_variables_AdditionalLocalVariable ) ) )* + { + // Java.g:7520:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* + loop105: + do { + int alt105=2; + int LA105_0 = input.LA(1); + + if ( (LA105_0==48||LA105_0==56||LA105_0==72||LA105_0==83||(LA105_0 >= 87 && LA105_0 <= 89)||(LA105_0 >= 92 && LA105_0 <= 93)||LA105_0==96||LA105_0==100||LA105_0==103) ) { + alt105=1; + } + + + switch (alt105) { + case 1 : + // Java.g:7521:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + { + // Java.g:7521:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + // Java.g:7522:4: a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_variables_LocalVariable9236); + a0_0=parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.variables.VariablesPackage.LOCAL_VARIABLE__ANNOTATIONS_AND_MODIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop105; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24393); + } + + // Java.g:7548:2: (a1_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:7549:3: a1_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_variables_LocalVariable9266); + a1_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.variables.VariablesPackage.LOCAL_VARIABLE__TYPE_REFERENCE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24394); + addExpectedElement(24396); + } + + // Java.g:7575:2: ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop106: + do { + int alt106=2; + int LA106_0 = input.LA(1); + + if ( (LA106_0==49) ) { + alt106=1; + } + + + switch (alt106) { + case 1 : + // Java.g:7576:3: (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:7576:3: (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:7577:4: a2_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_variables_LocalVariable9293); + a2_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.variables.VariablesPackage.LOCAL_VARIABLE__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_2, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + } + break; + + default : + break loop106; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24397); + addExpectedElement(24399); + } + + // Java.g:7604:2: ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? + int alt108=2; + int LA108_0 = input.LA(1); + + if ( (LA108_0==43) ) { + alt108=1; + } + switch (alt108) { + case 1 : + // Java.g:7605:3: (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) + { + // Java.g:7605:3: (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) + // Java.g:7606:4: a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' + { + a3=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_variables_LocalVariable9328); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_3_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24414); + } + + // Java.g:7620:4: (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:7621:5: a4_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_variables_LocalVariable9354); + a4_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.variables.VariablesPackage.LOCAL_VARIABLE__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_3_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24416); + } + + // Java.g:7646:4: ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* + loop107: + do { + int alt107=2; + int LA107_0 = input.LA(1); + + if ( (LA107_0==33) ) { + alt107=1; + } + + + switch (alt107) { + case 1 : + // Java.g:7647:5: (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + { + // Java.g:7647:5: (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + // Java.g:7648:6: a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) + { + a5=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_variables_LocalVariable9395); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_3_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24431); + } + + // Java.g:7662:6: (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:7663:7: a6_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_variables_LocalVariable9429); + a6_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + addObjectToList(element, org.emftext.language.java.variables.VariablesPackage.LOCAL_VARIABLE__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_3_0_0_2_0_0_1, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24433); + } + + } + + + } + break; + + default : + break loop107; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24435); + } + + a7=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_variables_LocalVariable9490); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_3_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a7, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24436); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24437); + } + + // Java.g:7716:2: (a8= IDENTIFIER ) + // Java.g:7717:3: a8= IDENTIFIER + { + a8=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_variables_LocalVariable9527); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + if (a8 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a8.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.variables.VariablesPackage.LOCAL_VARIABLE__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a8).getLine(), ((CommonToken) a8).getCharPositionInLine(), ((CommonToken) a8).getStartIndex(), ((CommonToken) a8).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.variables.VariablesPackage.LOCAL_VARIABLE__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_4, resolved, true); + copyLocalizationInfos((CommonToken) a8, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24438); + addExpectedElement(24442); + } + + // Java.g:7753:2: ( (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop109: + do { + int alt109=2; + int LA109_0 = input.LA(1); + + if ( (LA109_0==49) ) { + alt109=1; + } + + + switch (alt109) { + case 1 : + // Java.g:7754:3: (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:7754:3: (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:7755:4: a9_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_variables_LocalVariable9557); + a9_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + if (a9_0 != null) { + if (a9_0 != null) { + Object value = a9_0; + addObjectToList(element, org.emftext.language.java.variables.VariablesPackage.LOCAL_VARIABLE__ARRAY_DIMENSIONS_AFTER, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_5, a9_0, true); + copyLocalizationInfos(a9_0, element); + } + } + + } + + + } + break; + + default : + break loop109; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24443); + addExpectedElement(24447); + } + + // Java.g:7782:2: ( (a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? + int alt110=2; + int LA110_0 = input.LA(1); + + if ( (LA110_0==44) ) { + alt110=1; + } + switch (alt110) { + case 1 : + // Java.g:7783:3: (a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + { + // Java.g:7783:3: (a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + // Java.g:7784:4: a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + a10=(Token)match(input,44,FOLLOW_44_in_parse_org_emftext_language_java_variables_LocalVariable9592); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_6_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a10, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24531); + } + + // Java.g:7798:4: (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:7799:5: a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_variables_LocalVariable9618); + a11_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + if (a11_0 != null) { + if (a11_0 != null) { + Object value = a11_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.variables.VariablesPackage.LOCAL_VARIABLE__INITIAL_VALUE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_6_0_0_3, a11_0, true); + copyLocalizationInfos(a11_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24534); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24537); + } + + // Java.g:7831:2: ( (a12= ',' (a13_0= parse_org_emftext_language_java_variables_AdditionalLocalVariable ) ) )* + loop111: + do { + int alt111=2; + int LA111_0 = input.LA(1); + + if ( (LA111_0==33) ) { + alt111=1; + } + + + switch (alt111) { + case 1 : + // Java.g:7832:3: (a12= ',' (a13_0= parse_org_emftext_language_java_variables_AdditionalLocalVariable ) ) + { + // Java.g:7832:3: (a12= ',' (a13_0= parse_org_emftext_language_java_variables_AdditionalLocalVariable ) ) + // Java.g:7833:4: a12= ',' (a13_0= parse_org_emftext_language_java_variables_AdditionalLocalVariable ) + { + a12=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_variables_LocalVariable9668); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_7_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a12, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24538); + } + + // Java.g:7847:4: (a13_0= parse_org_emftext_language_java_variables_AdditionalLocalVariable ) + // Java.g:7848:5: a13_0= parse_org_emftext_language_java_variables_AdditionalLocalVariable + { + pushFollow(FOLLOW_parse_org_emftext_language_java_variables_AdditionalLocalVariable_in_parse_org_emftext_language_java_variables_LocalVariable9694); + a13_0=parse_org_emftext_language_java_variables_AdditionalLocalVariable(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createLocalVariable(); + startIncompleteElement(element); + } + if (a13_0 != null) { + if (a13_0 != null) { + Object value = a13_0; + addObjectToList(element, org.emftext.language.java.variables.VariablesPackage.LOCAL_VARIABLE__ADDITIONAL_LOCAL_VARIABLES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_25_0_0_7_0_0_1, a13_0, true); + copyLocalizationInfos(a13_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(24541); + } + + } + + + } + break; + + default : + break loop111; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(24544); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 27, parse_org_emftext_language_java_variables_LocalVariable_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_variables_LocalVariable" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_LocalVariableStatement" + // Java.g:7888:1: parse_org_emftext_language_java_statements_LocalVariableStatement returns [org.emftext.language.java.statements.LocalVariableStatement element = null] : (a0_0= parse_org_emftext_language_java_variables_LocalVariable ) a1= ';' ; + public final org.emftext.language.java.statements.LocalVariableStatement parse_org_emftext_language_java_statements_LocalVariableStatement() throws RecognitionException { + org.emftext.language.java.statements.LocalVariableStatement element = null; + + int parse_org_emftext_language_java_statements_LocalVariableStatement_StartIndex = input.index(); + + Token a1=null; + org.emftext.language.java.variables.LocalVariable a0_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 28) ) { return element; } + + // Java.g:7891:2: ( (a0_0= parse_org_emftext_language_java_variables_LocalVariable ) a1= ';' ) + // Java.g:7892:2: (a0_0= parse_org_emftext_language_java_variables_LocalVariable ) a1= ';' + { + // Java.g:7892:2: (a0_0= parse_org_emftext_language_java_variables_LocalVariable ) + // Java.g:7893:3: a0_0= parse_org_emftext_language_java_variables_LocalVariable + { + pushFollow(FOLLOW_parse_org_emftext_language_java_variables_LocalVariable_in_parse_org_emftext_language_java_statements_LocalVariableStatement9754); + a0_0=parse_org_emftext_language_java_variables_LocalVariable(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createLocalVariableStatement(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.LOCAL_VARIABLE_STATEMENT__VARIABLE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_26_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(24545); + } + + a1=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_statements_LocalVariableStatement9772); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createLocalVariableStatement(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_26_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(24732); + addExpectedElement(24733); + addExpectedElement(24920); + addExpectedElement(24921); + addExpectedElement(25108); + addExpectedElement(25111); + addExpectedElement(25298); + addExpectedElement(25299); + addExpectedElement(25486); + addExpectedElement(25487); + addExpectedElement(25674); + addExpectedElement(25675); + addExpectedElement(25862); + addExpectedElement(25864); + addExpectedElement(25865); + addExpectedElement(26052); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 28, parse_org_emftext_language_java_statements_LocalVariableStatement_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_LocalVariableStatement" + + + + // $ANTLR start "parse_org_emftext_language_java_variables_AdditionalLocalVariable" + // Java.g:7952:1: parse_org_emftext_language_java_variables_AdditionalLocalVariable returns [org.emftext.language.java.variables.AdditionalLocalVariable element = null] : (a0= IDENTIFIER ) ( (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? ; + public final org.emftext.language.java.variables.AdditionalLocalVariable parse_org_emftext_language_java_variables_AdditionalLocalVariable() throws RecognitionException { + org.emftext.language.java.variables.AdditionalLocalVariable element = null; + + int parse_org_emftext_language_java_variables_AdditionalLocalVariable_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + org.emftext.language.java.arrays.ArrayDimension a1_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a3_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 29) ) { return element; } + + // Java.g:7955:2: ( (a0= IDENTIFIER ) ( (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? ) + // Java.g:7956:2: (a0= IDENTIFIER ) ( (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? + { + // Java.g:7956:2: (a0= IDENTIFIER ) + // Java.g:7957:3: a0= IDENTIFIER + { + a0=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_variables_AdditionalLocalVariable9805); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createAdditionalLocalVariable(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.variables.VariablesPackage.ADDITIONAL_LOCAL_VARIABLE__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.variables.VariablesPackage.ADDITIONAL_LOCAL_VARIABLE__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_27_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26053); + addExpectedElement(26057); + } + + // Java.g:7993:2: ( (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop112: + do { + int alt112=2; + int LA112_0 = input.LA(1); + + if ( (LA112_0==49) ) { + alt112=1; + } + + + switch (alt112) { + case 1 : + // Java.g:7994:3: (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:7994:3: (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:7995:4: a1_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_variables_AdditionalLocalVariable9835); + a1_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createAdditionalLocalVariable(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.variables.VariablesPackage.ADDITIONAL_LOCAL_VARIABLE__ARRAY_DIMENSIONS_AFTER, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_27_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + } + break; + + default : + break loop112; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26058); + addExpectedElement(26062); + } + + // Java.g:8022:2: ( (a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? + int alt113=2; + int LA113_0 = input.LA(1); + + if ( (LA113_0==44) ) { + alt113=1; + } + switch (alt113) { + case 1 : + // Java.g:8023:3: (a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + { + // Java.g:8023:3: (a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + // Java.g:8024:4: a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + a2=(Token)match(input,44,FOLLOW_44_in_parse_org_emftext_language_java_variables_AdditionalLocalVariable9870); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createAdditionalLocalVariable(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_27_0_0_2_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26146); + } + + // Java.g:8038:4: (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:8039:5: a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_variables_AdditionalLocalVariable9896); + a3_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.variables.VariablesFactory.eINSTANCE.createAdditionalLocalVariable(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.variables.VariablesPackage.ADDITIONAL_LOCAL_VARIABLE__INITIAL_VALUE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_27_0_0_2_0_0_3, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(26149); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(26152); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 29, parse_org_emftext_language_java_variables_AdditionalLocalVariable_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_variables_AdditionalLocalVariable" + + + + // $ANTLR start "parse_org_emftext_language_java_members_Field" + // Java.g:8079:1: parse_org_emftext_language_java_members_Field returns [org.emftext.language.java.members.Field element = null] : ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? (a8= IDENTIFIER ) ( (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? ( (a12= ',' (a13_0= parse_org_emftext_language_java_members_AdditionalField ) ) )* a14= ';' ; + public final org.emftext.language.java.members.Field parse_org_emftext_language_java_members_Field() throws RecognitionException { + org.emftext.language.java.members.Field element = null; + + int parse_org_emftext_language_java_members_Field_StartIndex = input.index(); + + Token a3=null; + Token a5=null; + Token a7=null; + Token a8=null; + Token a10=null; + Token a12=null; + Token a14=null; + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier a0_0 =null; + + org.emftext.language.java.types.TypeReference a1_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a2_0 =null; + + org.emftext.language.java.generics.TypeArgument a4_0 =null; + + org.emftext.language.java.generics.TypeArgument a6_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a9_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a11_0 =null; + + org.emftext.language.java.members.AdditionalField a13_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 30) ) { return element; } + + // Java.g:8082:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? (a8= IDENTIFIER ) ( (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? ( (a12= ',' (a13_0= parse_org_emftext_language_java_members_AdditionalField ) ) )* a14= ';' ) + // Java.g:8083:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? (a8= IDENTIFIER ) ( (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? ( (a12= ',' (a13_0= parse_org_emftext_language_java_members_AdditionalField ) ) )* a14= ';' + { + // Java.g:8083:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* + loop114: + do { + int alt114=2; + int LA114_0 = input.LA(1); + + if ( (LA114_0==48||LA114_0==56||LA114_0==72||LA114_0==83||(LA114_0 >= 87 && LA114_0 <= 89)||(LA114_0 >= 92 && LA114_0 <= 93)||LA114_0==96||LA114_0==100||LA114_0==103) ) { + alt114=1; + } + + + switch (alt114) { + case 1 : + // Java.g:8084:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + { + // Java.g:8084:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + // Java.g:8085:4: a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_members_Field9961); + a0_0=parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.FIELD__ANNOTATIONS_AND_MODIFIERS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop114; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26176); + } + + // Java.g:8111:2: (a1_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:8112:3: a1_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_members_Field9991); + a1_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.FIELD__TYPE_REFERENCE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26177); + addExpectedElement(26179); + } + + // Java.g:8138:2: ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop115: + do { + int alt115=2; + int LA115_0 = input.LA(1); + + if ( (LA115_0==49) ) { + alt115=1; + } + + + switch (alt115) { + case 1 : + // Java.g:8139:3: (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:8139:3: (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:8140:4: a2_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_Field10018); + a2_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.FIELD__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_2, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + } + break; + + default : + break loop115; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26180); + addExpectedElement(26182); + } + + // Java.g:8167:2: ( (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) )? + int alt117=2; + int LA117_0 = input.LA(1); + + if ( (LA117_0==43) ) { + alt117=1; + } + switch (alt117) { + case 1 : + // Java.g:8168:3: (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) + { + // Java.g:8168:3: (a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' ) + // Java.g:8169:4: a3= '<' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a7= '>' + { + a3=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_members_Field10053); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_3_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26197); + } + + // Java.g:8183:4: (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:8184:5: a4_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_members_Field10079); + a4_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.FIELD__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_3_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26199); + } + + // Java.g:8209:4: ( (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* + loop116: + do { + int alt116=2; + int LA116_0 = input.LA(1); + + if ( (LA116_0==33) ) { + alt116=1; + } + + + switch (alt116) { + case 1 : + // Java.g:8210:5: (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + { + // Java.g:8210:5: (a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + // Java.g:8211:6: a5= ',' (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) + { + a5=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_members_Field10120); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_3_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26214); + } + + // Java.g:8225:6: (a6_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:8226:7: a6_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_members_Field10154); + a6_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.FIELD__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_3_0_0_2_0_0_1, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26216); + } + + } + + + } + break; + + default : + break loop116; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26218); + } + + a7=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_members_Field10215); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_3_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a7, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26219); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26220); + } + + // Java.g:8279:2: (a8= IDENTIFIER ) + // Java.g:8280:3: a8= IDENTIFIER + { + a8=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_members_Field10252); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + if (a8 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a8.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.FIELD__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a8).getLine(), ((CommonToken) a8).getCharPositionInLine(), ((CommonToken) a8).getStartIndex(), ((CommonToken) a8).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.FIELD__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_4, resolved, true); + copyLocalizationInfos((CommonToken) a8, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26221); + addExpectedElement(26224); + } + + // Java.g:8316:2: ( (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop118: + do { + int alt118=2; + int LA118_0 = input.LA(1); + + if ( (LA118_0==49) ) { + alt118=1; + } + + + switch (alt118) { + case 1 : + // Java.g:8317:3: (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:8317:3: (a9_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:8318:4: a9_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_Field10282); + a9_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + if (a9_0 != null) { + if (a9_0 != null) { + Object value = a9_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.FIELD__ARRAY_DIMENSIONS_AFTER, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_5, a9_0, true); + copyLocalizationInfos(a9_0, element); + } + } + + } + + + } + break; + + default : + break loop118; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26225); + addExpectedElement(26228); + } + + // Java.g:8345:2: ( (a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? + int alt119=2; + int LA119_0 = input.LA(1); + + if ( (LA119_0==44) ) { + alt119=1; + } + switch (alt119) { + case 1 : + // Java.g:8346:3: (a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + { + // Java.g:8346:3: (a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + // Java.g:8347:4: a10= '=' (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + a10=(Token)match(input,44,FOLLOW_44_in_parse_org_emftext_language_java_members_Field10317); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_6_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a10, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26312); + } + + // Java.g:8361:4: (a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:8362:5: a11_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_members_Field10343); + a11_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + if (a11_0 != null) { + if (a11_0 != null) { + Object value = a11_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.FIELD__INITIAL_VALUE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_6_0_0_3, a11_0, true); + copyLocalizationInfos(a11_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26314); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26316); + } + + // Java.g:8394:2: ( (a12= ',' (a13_0= parse_org_emftext_language_java_members_AdditionalField ) ) )* + loop120: + do { + int alt120=2; + int LA120_0 = input.LA(1); + + if ( (LA120_0==33) ) { + alt120=1; + } + + + switch (alt120) { + case 1 : + // Java.g:8395:3: (a12= ',' (a13_0= parse_org_emftext_language_java_members_AdditionalField ) ) + { + // Java.g:8395:3: (a12= ',' (a13_0= parse_org_emftext_language_java_members_AdditionalField ) ) + // Java.g:8396:4: a12= ',' (a13_0= parse_org_emftext_language_java_members_AdditionalField ) + { + a12=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_members_Field10393); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_7_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a12, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26317); + } + + // Java.g:8410:4: (a13_0= parse_org_emftext_language_java_members_AdditionalField ) + // Java.g:8411:5: a13_0= parse_org_emftext_language_java_members_AdditionalField + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_AdditionalField_in_parse_org_emftext_language_java_members_Field10419); + a13_0=parse_org_emftext_language_java_members_AdditionalField(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + if (a13_0 != null) { + if (a13_0 != null) { + Object value = a13_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.FIELD__ADDITIONAL_FIELDS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_7_0_0_1, a13_0, true); + copyLocalizationInfos(a13_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26319); + } + + } + + + } + break; + + default : + break loop120; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(26321); + } + + a14=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_members_Field10460); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_28_0_0_8, null, true); + copyLocalizationInfos((CommonToken)a14, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(26499); + addExpectedElement(26500); + addExpectedElement(26678); + addExpectedElement(26679); + addExpectedElement(26857); + addExpectedElement(26858); + addExpectedElement(27036); + addExpectedElement(27037); + addExpectedElement(27215); + addExpectedElement(27216); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 30, parse_org_emftext_language_java_members_Field_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_members_Field" + + + + // $ANTLR start "parse_org_emftext_language_java_members_AdditionalField" + // Java.g:8471:1: parse_org_emftext_language_java_members_AdditionalField returns [org.emftext.language.java.members.AdditionalField element = null] : (a0= IDENTIFIER ) ( (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? ; + public final org.emftext.language.java.members.AdditionalField parse_org_emftext_language_java_members_AdditionalField() throws RecognitionException { + org.emftext.language.java.members.AdditionalField element = null; + + int parse_org_emftext_language_java_members_AdditionalField_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + org.emftext.language.java.arrays.ArrayDimension a1_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a3_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 31) ) { return element; } + + // Java.g:8474:2: ( (a0= IDENTIFIER ) ( (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? ) + // Java.g:8475:2: (a0= IDENTIFIER ) ( (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? + { + // Java.g:8475:2: (a0= IDENTIFIER ) + // Java.g:8476:3: a0= IDENTIFIER + { + a0=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_members_AdditionalField10493); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createAdditionalField(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.ADDITIONAL_FIELD__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.ADDITIONAL_FIELD__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_29_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(27217); + addExpectedElement(27220); + } + + // Java.g:8512:2: ( (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop121: + do { + int alt121=2; + int LA121_0 = input.LA(1); + + if ( (LA121_0==49) ) { + alt121=1; + } + + + switch (alt121) { + case 1 : + // Java.g:8513:3: (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:8513:3: (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:8514:4: a1_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_AdditionalField10523); + a1_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createAdditionalField(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.members.MembersPackage.ADDITIONAL_FIELD__ARRAY_DIMENSIONS_AFTER, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_29_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + } + break; + + default : + break loop121; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(27221); + addExpectedElement(27224); + } + + // Java.g:8541:2: ( (a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? + int alt122=2; + int LA122_0 = input.LA(1); + + if ( (LA122_0==44) ) { + alt122=1; + } + switch (alt122) { + case 1 : + // Java.g:8542:3: (a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + { + // Java.g:8542:3: (a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + // Java.g:8543:4: a2= '=' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + a2=(Token)match(input,44,FOLLOW_44_in_parse_org_emftext_language_java_members_AdditionalField10558); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createAdditionalField(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_29_0_0_2_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(27308); + } + + // Java.g:8557:4: (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:8558:5: a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_members_AdditionalField10584); + a3_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createAdditionalField(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.members.MembersPackage.ADDITIONAL_FIELD__INITIAL_VALUE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_29_0_0_2_0_0_3, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(27310); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(27312); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 31, parse_org_emftext_language_java_members_AdditionalField_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_members_AdditionalField" + + + + // $ANTLR start "parse_org_emftext_language_java_members_EmptyMember" + // Java.g:8598:1: parse_org_emftext_language_java_members_EmptyMember returns [org.emftext.language.java.members.EmptyMember element = null] : a0= ';' ; + public final org.emftext.language.java.members.EmptyMember parse_org_emftext_language_java_members_EmptyMember() throws RecognitionException { + org.emftext.language.java.members.EmptyMember element = null; + + int parse_org_emftext_language_java_members_EmptyMember_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 32) ) { return element; } + + // Java.g:8601:2: (a0= ';' ) + // Java.g:8602:2: a0= ';' + { + a0=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_members_EmptyMember10640); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.members.MembersFactory.eINSTANCE.createEmptyMember(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_30_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(27490); + addExpectedElement(27491); + addExpectedElement(27669); + addExpectedElement(27670); + addExpectedElement(27848); + addExpectedElement(27849); + addExpectedElement(28027); + addExpectedElement(28028); + addExpectedElement(28206); + addExpectedElement(28207); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 32, parse_org_emftext_language_java_members_EmptyMember_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_members_EmptyMember" + + + + // $ANTLR start "parse_org_emftext_language_java_instantiations_NewConstructorCall" + // Java.g:8630:1: parse_org_emftext_language_java_instantiations_NewConstructorCall returns [org.emftext.language.java.instantiations.NewConstructorCall element = null] : a0= 'new' ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) )? (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7= '<' (a8_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a11= '>' ) )? a12= '(' ( ( (a13_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a16= ')' ( (a17_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) )? ( (a18= '.' (a19_0= parse_org_emftext_language_java_references_Reference ) ) )? ; + public final org.emftext.language.java.instantiations.NewConstructorCall parse_org_emftext_language_java_instantiations_NewConstructorCall() throws RecognitionException { + org.emftext.language.java.instantiations.NewConstructorCall element = null; + + int parse_org_emftext_language_java_instantiations_NewConstructorCall_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + Token a5=null; + Token a7=null; + Token a9=null; + Token a11=null; + Token a12=null; + Token a14=null; + Token a16=null; + Token a18=null; + org.emftext.language.java.generics.TypeArgument a2_0 =null; + + org.emftext.language.java.generics.TypeArgument a4_0 =null; + + org.emftext.language.java.types.TypeReference a6_0 =null; + + org.emftext.language.java.generics.TypeArgument a8_0 =null; + + org.emftext.language.java.generics.TypeArgument a10_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a13_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a15_0 =null; + + org.emftext.language.java.classifiers.AnonymousClass a17_0 =null; + + org.emftext.language.java.references.Reference a19_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 33) ) { return element; } + + // Java.g:8633:2: (a0= 'new' ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) )? (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7= '<' (a8_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a11= '>' ) )? a12= '(' ( ( (a13_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a16= ')' ( (a17_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) )? ( (a18= '.' (a19_0= parse_org_emftext_language_java_references_Reference ) ) )? ) + // Java.g:8634:2: a0= 'new' ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) )? (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7= '<' (a8_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a11= '>' ) )? a12= '(' ( ( (a13_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a16= ')' ( (a17_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) )? ( (a18= '.' (a19_0= parse_org_emftext_language_java_references_Reference ) ) )? + { + a0=(Token)match(input,84,FOLLOW_84_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10669); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28208); + addExpectedElement(28220); + } + + // Java.g:8649:2: ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) )? + int alt124=2; + int LA124_0 = input.LA(1); + + if ( (LA124_0==43) ) { + alt124=1; + } + switch (alt124) { + case 1 : + // Java.g:8650:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) + { + // Java.g:8650:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) + // Java.g:8651:4: a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' + { + a1=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10692); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28235); + } + + // Java.g:8665:4: (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:8666:5: a2_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10718); + a2_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.instantiations.InstantiationsPackage.NEW_CONSTRUCTOR_CALL__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28237); + } + + // Java.g:8691:4: ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* + loop123: + do { + int alt123=2; + int LA123_0 = input.LA(1); + + if ( (LA123_0==33) ) { + alt123=1; + } + + + switch (alt123) { + case 1 : + // Java.g:8692:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + { + // Java.g:8692:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + // Java.g:8693:6: a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + { + a3=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10759); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_1_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28252); + } + + // Java.g:8707:6: (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:8708:7: a4_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10793); + a4_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.instantiations.InstantiationsPackage.NEW_CONSTRUCTOR_CALL__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_1_0_0_2_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28254); + } + + } + + + } + break; + + default : + break loop123; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28256); + } + + a5=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10854); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_1_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28268); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28280); + } + + // Java.g:8761:2: (a6_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:8762:3: a6_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10891); + a6_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.instantiations.InstantiationsPackage.NEW_CONSTRUCTOR_CALL__TYPE_REFERENCE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_2, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28282); + } + + // Java.g:8787:2: ( (a7= '<' (a8_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a11= '>' ) )? + int alt126=2; + int LA126_0 = input.LA(1); + + if ( (LA126_0==43) ) { + alt126=1; + } + switch (alt126) { + case 1 : + // Java.g:8788:3: (a7= '<' (a8_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a11= '>' ) + { + // Java.g:8788:3: (a7= '<' (a8_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a11= '>' ) + // Java.g:8789:4: a7= '<' (a8_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a9= ',' (a10_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a11= '>' + { + a7=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10918); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_3_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a7, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28297); + } + + // Java.g:8803:4: (a8_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:8804:5: a8_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10944); + a8_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + if (a8_0 != null) { + if (a8_0 != null) { + Object value = a8_0; + addObjectToList(element, org.emftext.language.java.instantiations.InstantiationsPackage.NEW_CONSTRUCTOR_CALL__CALL_TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_3_0_0_1, a8_0, true); + copyLocalizationInfos(a8_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28299); + } + + // Java.g:8829:4: ( (a9= ',' (a10_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* + loop125: + do { + int alt125=2; + int LA125_0 = input.LA(1); + + if ( (LA125_0==33) ) { + alt125=1; + } + + + switch (alt125) { + case 1 : + // Java.g:8830:5: (a9= ',' (a10_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + { + // Java.g:8830:5: (a9= ',' (a10_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + // Java.g:8831:6: a9= ',' (a10_0= parse_org_emftext_language_java_generics_TypeArgument ) + { + a9=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10985); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_3_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a9, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28314); + } + + // Java.g:8845:6: (a10_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:8846:7: a10_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11019); + a10_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + if (a10_0 != null) { + if (a10_0 != null) { + Object value = a10_0; + addObjectToList(element, org.emftext.language.java.instantiations.InstantiationsPackage.NEW_CONSTRUCTOR_CALL__CALL_TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_3_0_0_2_0_0_1, a10_0, true); + copyLocalizationInfos(a10_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28316); + } + + } + + + } + break; + + default : + break loop125; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28318); + } + + a11=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11080); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_3_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a11, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28319); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28320); + } + + a12=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11113); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a12, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28404); + addExpectedElement(28405); + } + + // Java.g:8914:2: ( ( (a13_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? + int alt128=2; + int LA128_0 = input.LA(1); + + if ( ((LA128_0 >= BOOLEAN_LITERAL && LA128_0 <= IDENTIFIER)||(LA128_0 >= OCTAL_INTEGER_LITERAL && LA128_0 <= OCTAL_LONG_LITERAL)||LA128_0==STRING_LITERAL||LA128_0==21||LA128_0==26||(LA128_0 >= 30 && LA128_0 <= 31)||(LA128_0 >= 34 && LA128_0 <= 35)||LA128_0==43||LA128_0==48||LA128_0==58||LA128_0==60||(LA128_0 >= 63 && LA128_0 <= 64)||LA128_0==68||LA128_0==74||LA128_0==80||LA128_0==82||(LA128_0 >= 84 && LA128_0 <= 85)||LA128_0==91||LA128_0==94||LA128_0==97||LA128_0==102||LA128_0==105||LA128_0==110) ) { + alt128=1; + } + switch (alt128) { + case 1 : + // Java.g:8915:3: ( (a13_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) + { + // Java.g:8915:3: ( (a13_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) + // Java.g:8916:4: (a13_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a14= ',' (a15_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* + { + // Java.g:8916:4: (a13_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:8917:5: a13_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11142); + a13_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + if (a13_0 != null) { + if (a13_0 != null) { + Object value = a13_0; + addObjectToList(element, org.emftext.language.java.instantiations.InstantiationsPackage.NEW_CONSTRUCTOR_CALL__ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_5_0_0_0, a13_0, true); + copyLocalizationInfos(a13_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28407); + } + + // Java.g:8942:4: ( (a14= ',' (a15_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* + loop127: + do { + int alt127=2; + int LA127_0 = input.LA(1); + + if ( (LA127_0==33) ) { + alt127=1; + } + + + switch (alt127) { + case 1 : + // Java.g:8943:5: (a14= ',' (a15_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + { + // Java.g:8943:5: (a14= ',' (a15_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + // Java.g:8944:6: a14= ',' (a15_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + a14=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11183); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_5_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a14, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28491); + } + + // Java.g:8958:6: (a15_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:8959:7: a15_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11217); + a15_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + if (a15_0 != null) { + if (a15_0 != null) { + Object value = a15_0; + addObjectToList(element, org.emftext.language.java.instantiations.InstantiationsPackage.NEW_CONSTRUCTOR_CALL__ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_5_0_0_1_0_0_1, a15_0, true); + copyLocalizationInfos(a15_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28493); + } + + } + + + } + break; + + default : + break loop127; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28495); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28496); + } + + a16=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11291); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_6, null, true); + copyLocalizationInfos((CommonToken)a16, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28497); + addExpectedElement(28498); + addExpectedElement(28500); + addExpectedElement(28503); + addExpectedElement(28505); + addExpectedElement(28508); + addExpectedElement(28512); + addExpectedElement(28513); + addExpectedElement(28515); + addExpectedElement(28524); + addExpectedElement(28536); + addExpectedElement(28562); + } + + // Java.g:9023:2: ( (a17_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) )? + int alt129=2; + int LA129_0 = input.LA(1); + + if ( (LA129_0==105) ) { + alt129=1; + } + switch (alt129) { + case 1 : + // Java.g:9024:3: (a17_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) + { + // Java.g:9024:3: (a17_0= parse_org_emftext_language_java_classifiers_AnonymousClass ) + // Java.g:9025:4: a17_0= parse_org_emftext_language_java_classifiers_AnonymousClass + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_AnonymousClass_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11314); + a17_0=parse_org_emftext_language_java_classifiers_AnonymousClass(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + if (a17_0 != null) { + if (a17_0 != null) { + Object value = a17_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.instantiations.InstantiationsPackage.NEW_CONSTRUCTOR_CALL__ANONYMOUS_CLASS), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_7, a17_0, true); + copyLocalizationInfos(a17_0, element); + } + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28563); + addExpectedElement(28565); + addExpectedElement(28568); + addExpectedElement(28570); + addExpectedElement(28573); + addExpectedElement(28577); + addExpectedElement(28578); + addExpectedElement(28580); + addExpectedElement(28589); + addExpectedElement(28601); + addExpectedElement(28627); + } + + // Java.g:9061:2: ( (a18= '.' (a19_0= parse_org_emftext_language_java_references_Reference ) ) )? + int alt130=2; + int LA130_0 = input.LA(1); + + if ( (LA130_0==37) ) { + alt130=1; + } + switch (alt130) { + case 1 : + // Java.g:9062:3: (a18= '.' (a19_0= parse_org_emftext_language_java_references_Reference ) ) + { + // Java.g:9062:3: (a18= '.' (a19_0= parse_org_emftext_language_java_references_Reference ) ) + // Java.g:9063:4: a18= '.' (a19_0= parse_org_emftext_language_java_references_Reference ) + { + a18=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11349); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_8_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a18, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28652); + } + + // Java.g:9077:4: (a19_0= parse_org_emftext_language_java_references_Reference ) + // Java.g:9078:5: a19_0= parse_org_emftext_language_java_references_Reference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11375); + a19_0=parse_org_emftext_language_java_references_Reference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createNewConstructorCall(); + startIncompleteElement(element); + } + if (a19_0 != null) { + if (a19_0 != null) { + Object value = a19_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.instantiations.InstantiationsPackage.NEW_CONSTRUCTOR_CALL__NEXT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_31_0_0_8_0_0_1, a19_0, true); + copyLocalizationInfos(a19_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(28654); + addExpectedElement(28657); + addExpectedElement(28659); + addExpectedElement(28662); + addExpectedElement(28666); + addExpectedElement(28667); + addExpectedElement(28669); + addExpectedElement(28678); + addExpectedElement(28690); + addExpectedElement(28716); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(28718); + addExpectedElement(28721); + addExpectedElement(28723); + addExpectedElement(28726); + addExpectedElement(28730); + addExpectedElement(28731); + addExpectedElement(28733); + addExpectedElement(28742); + addExpectedElement(28754); + addExpectedElement(28780); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 33, parse_org_emftext_language_java_instantiations_NewConstructorCall_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_instantiations_NewConstructorCall" + + + + // $ANTLR start "parse_org_emftext_language_java_instantiations_ExplicitConstructorCall" + // Java.g:9136:1: parse_org_emftext_language_java_instantiations_ExplicitConstructorCall returns [org.emftext.language.java.instantiations.ExplicitConstructorCall element = null] : ( (a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' ) )? (a5_0= parse_org_emftext_language_java_literals_Self ) a6= '(' ( ( (a7_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a10= ')' ( (a11= '.' (a12_0= parse_org_emftext_language_java_references_Reference ) ) )? ; + public final org.emftext.language.java.instantiations.ExplicitConstructorCall parse_org_emftext_language_java_instantiations_ExplicitConstructorCall() throws RecognitionException { + org.emftext.language.java.instantiations.ExplicitConstructorCall element = null; + + int parse_org_emftext_language_java_instantiations_ExplicitConstructorCall_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + Token a4=null; + Token a6=null; + Token a8=null; + Token a10=null; + Token a11=null; + org.emftext.language.java.generics.TypeArgument a1_0 =null; + + org.emftext.language.java.generics.TypeArgument a3_0 =null; + + org.emftext.language.java.literals.Self a5_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a7_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a9_0 =null; + + org.emftext.language.java.references.Reference a12_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 34) ) { return element; } + + // Java.g:9139:2: ( ( (a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' ) )? (a5_0= parse_org_emftext_language_java_literals_Self ) a6= '(' ( ( (a7_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a10= ')' ( (a11= '.' (a12_0= parse_org_emftext_language_java_references_Reference ) ) )? ) + // Java.g:9140:2: ( (a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' ) )? (a5_0= parse_org_emftext_language_java_literals_Self ) a6= '(' ( ( (a7_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a10= ')' ( (a11= '.' (a12_0= parse_org_emftext_language_java_references_Reference ) ) )? + { + // Java.g:9140:2: ( (a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' ) )? + int alt132=2; + int LA132_0 = input.LA(1); + + if ( (LA132_0==43) ) { + alt132=1; + } + switch (alt132) { + case 1 : + // Java.g:9141:3: (a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' ) + { + // Java.g:9141:3: (a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' ) + // Java.g:9142:4: a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' + { + a0=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11440); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createExplicitConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_32_0_0_0_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28795); + } + + // Java.g:9156:4: (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:9157:5: a1_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11466); + a1_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createExplicitConstructorCall(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.instantiations.InstantiationsPackage.EXPLICIT_CONSTRUCTOR_CALL__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_32_0_0_0_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28797); + } + + // Java.g:9182:4: ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* + loop131: + do { + int alt131=2; + int LA131_0 = input.LA(1); + + if ( (LA131_0==33) ) { + alt131=1; + } + + + switch (alt131) { + case 1 : + // Java.g:9183:5: (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + { + // Java.g:9183:5: (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + // Java.g:9184:6: a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) + { + a2=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11507); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createExplicitConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_32_0_0_0_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28812); + } + + // Java.g:9198:6: (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:9199:7: a3_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11541); + a3_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createExplicitConstructorCall(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + addObjectToList(element, org.emftext.language.java.instantiations.InstantiationsPackage.EXPLICIT_CONSTRUCTOR_CALL__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_32_0_0_0_0_0_2_0_0_1, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28814); + } + + } + + + } + break; + + default : + break loop131; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28816); + } + + a4=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11602); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createExplicitConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_32_0_0_0_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28818); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28820); + } + + // Java.g:9252:2: (a5_0= parse_org_emftext_language_java_literals_Self ) + // Java.g:9253:3: a5_0= parse_org_emftext_language_java_literals_Self + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_Self_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11639); + a5_0=parse_org_emftext_language_java_literals_Self(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createExplicitConstructorCall(); + startIncompleteElement(element); + } + if (a5_0 != null) { + if (a5_0 != null) { + Object value = a5_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.instantiations.InstantiationsPackage.EXPLICIT_CONSTRUCTOR_CALL__CALL_TARGET), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_32_0_0_1, a5_0, true); + copyLocalizationInfos(a5_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28821); + } + + a6=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11657); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createExplicitConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_32_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a6, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28905); + addExpectedElement(28906); + } + + // Java.g:9293:2: ( ( (a7_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? + int alt134=2; + int LA134_0 = input.LA(1); + + if ( ((LA134_0 >= BOOLEAN_LITERAL && LA134_0 <= IDENTIFIER)||(LA134_0 >= OCTAL_INTEGER_LITERAL && LA134_0 <= OCTAL_LONG_LITERAL)||LA134_0==STRING_LITERAL||LA134_0==21||LA134_0==26||(LA134_0 >= 30 && LA134_0 <= 31)||(LA134_0 >= 34 && LA134_0 <= 35)||LA134_0==43||LA134_0==48||LA134_0==58||LA134_0==60||(LA134_0 >= 63 && LA134_0 <= 64)||LA134_0==68||LA134_0==74||LA134_0==80||LA134_0==82||(LA134_0 >= 84 && LA134_0 <= 85)||LA134_0==91||LA134_0==94||LA134_0==97||LA134_0==102||LA134_0==105||LA134_0==110) ) { + alt134=1; + } + switch (alt134) { + case 1 : + // Java.g:9294:3: ( (a7_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) + { + // Java.g:9294:3: ( (a7_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) + // Java.g:9295:4: (a7_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* + { + // Java.g:9295:4: (a7_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:9296:5: a7_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11686); + a7_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createExplicitConstructorCall(); + startIncompleteElement(element); + } + if (a7_0 != null) { + if (a7_0 != null) { + Object value = a7_0; + addObjectToList(element, org.emftext.language.java.instantiations.InstantiationsPackage.EXPLICIT_CONSTRUCTOR_CALL__ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_32_0_0_3_0_0_0, a7_0, true); + copyLocalizationInfos(a7_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28908); + } + + // Java.g:9321:4: ( (a8= ',' (a9_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* + loop133: + do { + int alt133=2; + int LA133_0 = input.LA(1); + + if ( (LA133_0==33) ) { + alt133=1; + } + + + switch (alt133) { + case 1 : + // Java.g:9322:5: (a8= ',' (a9_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + { + // Java.g:9322:5: (a8= ',' (a9_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + // Java.g:9323:6: a8= ',' (a9_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + a8=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11727); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createExplicitConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_32_0_0_3_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a8, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28992); + } + + // Java.g:9337:6: (a9_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:9338:7: a9_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11761); + a9_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createExplicitConstructorCall(); + startIncompleteElement(element); + } + if (a9_0 != null) { + if (a9_0 != null) { + Object value = a9_0; + addObjectToList(element, org.emftext.language.java.instantiations.InstantiationsPackage.EXPLICIT_CONSTRUCTOR_CALL__ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_32_0_0_3_0_0_1_0_0_1, a9_0, true); + copyLocalizationInfos(a9_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28994); + } + + } + + + } + break; + + default : + break loop133; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28996); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28997); + } + + a10=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11835); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createExplicitConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_32_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a10, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(28998); + addExpectedElement(29000); + addExpectedElement(29003); + addExpectedElement(29005); + addExpectedElement(29008); + addExpectedElement(29012); + addExpectedElement(29013); + addExpectedElement(29015); + addExpectedElement(29024); + addExpectedElement(29036); + addExpectedElement(29062); + } + + // Java.g:9401:2: ( (a11= '.' (a12_0= parse_org_emftext_language_java_references_Reference ) ) )? + int alt135=2; + int LA135_0 = input.LA(1); + + if ( (LA135_0==37) ) { + alt135=1; + } + switch (alt135) { + case 1 : + // Java.g:9402:3: (a11= '.' (a12_0= parse_org_emftext_language_java_references_Reference ) ) + { + // Java.g:9402:3: (a11= '.' (a12_0= parse_org_emftext_language_java_references_Reference ) ) + // Java.g:9403:4: a11= '.' (a12_0= parse_org_emftext_language_java_references_Reference ) + { + a11=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11858); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createExplicitConstructorCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_32_0_0_5_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a11, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29087); + } + + // Java.g:9417:4: (a12_0= parse_org_emftext_language_java_references_Reference ) + // Java.g:9418:5: a12_0= parse_org_emftext_language_java_references_Reference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11884); + a12_0=parse_org_emftext_language_java_references_Reference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.instantiations.InstantiationsFactory.eINSTANCE.createExplicitConstructorCall(); + startIncompleteElement(element); + } + if (a12_0 != null) { + if (a12_0 != null) { + Object value = a12_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.instantiations.InstantiationsPackage.EXPLICIT_CONSTRUCTOR_CALL__NEXT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_32_0_0_5_0_0_1, a12_0, true); + copyLocalizationInfos(a12_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(29089); + addExpectedElement(29092); + addExpectedElement(29094); + addExpectedElement(29097); + addExpectedElement(29101); + addExpectedElement(29102); + addExpectedElement(29104); + addExpectedElement(29113); + addExpectedElement(29125); + addExpectedElement(29151); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(29153); + addExpectedElement(29156); + addExpectedElement(29158); + addExpectedElement(29161); + addExpectedElement(29165); + addExpectedElement(29166); + addExpectedElement(29168); + addExpectedElement(29177); + addExpectedElement(29189); + addExpectedElement(29215); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 34, parse_org_emftext_language_java_instantiations_ExplicitConstructorCall_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_instantiations_ExplicitConstructorCall" + + + + // $ANTLR start "parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped" + // Java.g:9476:1: parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped returns [org.emftext.language.java.arrays.ArrayInstantiationByValuesTyped element = null] : a0= 'new' (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )+ (a3_0= parse_org_emftext_language_java_arrays_ArrayInitializer ) ( (a4_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a5= '.' (a6_0= parse_org_emftext_language_java_references_Reference ) ) )? ; + public final org.emftext.language.java.arrays.ArrayInstantiationByValuesTyped parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped() throws RecognitionException { + org.emftext.language.java.arrays.ArrayInstantiationByValuesTyped element = null; + + int parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped_StartIndex = input.index(); + + Token a0=null; + Token a5=null; + org.emftext.language.java.types.TypeReference a1_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a2_0 =null; + + org.emftext.language.java.arrays.ArrayInitializer a3_0 =null; + + org.emftext.language.java.arrays.ArraySelector a4_0 =null; + + org.emftext.language.java.references.Reference a6_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 35) ) { return element; } + + // Java.g:9479:2: (a0= 'new' (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )+ (a3_0= parse_org_emftext_language_java_arrays_ArrayInitializer ) ( (a4_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a5= '.' (a6_0= parse_org_emftext_language_java_references_Reference ) ) )? ) + // Java.g:9480:2: a0= 'new' (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )+ (a3_0= parse_org_emftext_language_java_arrays_ArrayInitializer ) ( (a4_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a5= '.' (a6_0= parse_org_emftext_language_java_references_Reference ) ) )? + { + a0=(Token)match(input,84,FOLLOW_84_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped11940); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationByValuesTyped(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_33_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29227); + } + + // Java.g:9494:2: (a1_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:9495:3: a1_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped11958); + a1_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationByValuesTyped(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.arrays.ArraysPackage.ARRAY_INSTANTIATION_BY_VALUES_TYPED__TYPE_REFERENCE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_33_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29228); + } + + // Java.g:9520:2: ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )+ + int cnt136=0; + loop136: + do { + int alt136=2; + int LA136_0 = input.LA(1); + + if ( (LA136_0==49) ) { + alt136=1; + } + + + switch (alt136) { + case 1 : + // Java.g:9521:3: (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:9521:3: (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:9522:4: a2_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped11985); + a2_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationByValuesTyped(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.arrays.ArraysPackage.ARRAY_INSTANTIATION_BY_VALUES_TYPED__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_33_0_0_2, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + } + break; + + default : + if ( cnt136 >= 1 ) break loop136; + if (state.backtracking>0) {state.failed=true; return element;} + EarlyExitException eee = + new EarlyExitException(136, input); + throw eee; + } + cnt136++; + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29230); + } + + // Java.g:9548:2: (a3_0= parse_org_emftext_language_java_arrays_ArrayInitializer ) + // Java.g:9549:3: a3_0= parse_org_emftext_language_java_arrays_ArrayInitializer + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped12015); + a3_0=parse_org_emftext_language_java_arrays_ArrayInitializer(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationByValuesTyped(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.arrays.ArraysPackage.ARRAY_INSTANTIATION_BY_VALUES_TYPED__ARRAY_INITIALIZER), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_33_0_0_3, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29231); + addExpectedElement(29232); + addExpectedElement(29234); + addExpectedElement(29237); + addExpectedElement(29239); + addExpectedElement(29242); + addExpectedElement(29246); + addExpectedElement(29247); + addExpectedElement(29249); + addExpectedElement(29258); + addExpectedElement(29270); + addExpectedElement(29296); + } + + // Java.g:9585:2: ( (a4_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* + loop137: + do { + int alt137=2; + int LA137_0 = input.LA(1); + + if ( (LA137_0==49) ) { + alt137=1; + } + + + switch (alt137) { + case 1 : + // Java.g:9586:3: (a4_0= parse_org_emftext_language_java_arrays_ArraySelector ) + { + // Java.g:9586:3: (a4_0= parse_org_emftext_language_java_arrays_ArraySelector ) + // Java.g:9587:4: a4_0= parse_org_emftext_language_java_arrays_ArraySelector + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArraySelector_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped12042); + a4_0=parse_org_emftext_language_java_arrays_ArraySelector(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationByValuesTyped(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.arrays.ArraysPackage.ARRAY_INSTANTIATION_BY_VALUES_TYPED__ARRAY_SELECTORS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_33_0_0_4, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + } + break; + + default : + break loop137; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29297); + addExpectedElement(29298); + addExpectedElement(29300); + addExpectedElement(29303); + addExpectedElement(29305); + addExpectedElement(29308); + addExpectedElement(29312); + addExpectedElement(29313); + addExpectedElement(29315); + addExpectedElement(29324); + addExpectedElement(29336); + addExpectedElement(29362); + } + + // Java.g:9624:2: ( (a5= '.' (a6_0= parse_org_emftext_language_java_references_Reference ) ) )? + int alt138=2; + int LA138_0 = input.LA(1); + + if ( (LA138_0==37) ) { + alt138=1; + } + switch (alt138) { + case 1 : + // Java.g:9625:3: (a5= '.' (a6_0= parse_org_emftext_language_java_references_Reference ) ) + { + // Java.g:9625:3: (a5= '.' (a6_0= parse_org_emftext_language_java_references_Reference ) ) + // Java.g:9626:4: a5= '.' (a6_0= parse_org_emftext_language_java_references_Reference ) + { + a5=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped12077); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationByValuesTyped(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_33_0_0_5_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29387); + } + + // Java.g:9640:4: (a6_0= parse_org_emftext_language_java_references_Reference ) + // Java.g:9641:5: a6_0= parse_org_emftext_language_java_references_Reference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped12103); + a6_0=parse_org_emftext_language_java_references_Reference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationByValuesTyped(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.arrays.ArraysPackage.ARRAY_INSTANTIATION_BY_VALUES_TYPED__NEXT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_33_0_0_5_0_0_1, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(29389); + addExpectedElement(29392); + addExpectedElement(29394); + addExpectedElement(29397); + addExpectedElement(29401); + addExpectedElement(29402); + addExpectedElement(29404); + addExpectedElement(29413); + addExpectedElement(29425); + addExpectedElement(29451); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(29453); + addExpectedElement(29456); + addExpectedElement(29458); + addExpectedElement(29461); + addExpectedElement(29465); + addExpectedElement(29466); + addExpectedElement(29468); + addExpectedElement(29477); + addExpectedElement(29489); + addExpectedElement(29515); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 35, parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped" + + + + // $ANTLR start "parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped" + // Java.g:9699:1: parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped returns [org.emftext.language.java.arrays.ArrayInstantiationByValuesUntyped element = null] : (a0_0= parse_org_emftext_language_java_arrays_ArrayInitializer ) ( (a1_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) ) )? ; + public final org.emftext.language.java.arrays.ArrayInstantiationByValuesUntyped parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped() throws RecognitionException { + org.emftext.language.java.arrays.ArrayInstantiationByValuesUntyped element = null; + + int parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped_StartIndex = input.index(); + + Token a2=null; + org.emftext.language.java.arrays.ArrayInitializer a0_0 =null; + + org.emftext.language.java.arrays.ArraySelector a1_0 =null; + + org.emftext.language.java.references.Reference a3_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 36) ) { return element; } + + // Java.g:9702:2: ( (a0_0= parse_org_emftext_language_java_arrays_ArrayInitializer ) ( (a1_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) ) )? ) + // Java.g:9703:2: (a0_0= parse_org_emftext_language_java_arrays_ArrayInitializer ) ( (a1_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) ) )? + { + // Java.g:9703:2: (a0_0= parse_org_emftext_language_java_arrays_ArrayInitializer ) + // Java.g:9704:3: a0_0= parse_org_emftext_language_java_arrays_ArrayInitializer + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped12163); + a0_0=parse_org_emftext_language_java_arrays_ArrayInitializer(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationByValuesUntyped(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.arrays.ArraysPackage.ARRAY_INSTANTIATION_BY_VALUES_UNTYPED__ARRAY_INITIALIZER), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_34_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29516); + addExpectedElement(29517); + addExpectedElement(29519); + addExpectedElement(29522); + addExpectedElement(29524); + addExpectedElement(29527); + addExpectedElement(29531); + addExpectedElement(29532); + addExpectedElement(29534); + addExpectedElement(29543); + addExpectedElement(29555); + addExpectedElement(29581); + } + + // Java.g:9740:2: ( (a1_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* + loop139: + do { + int alt139=2; + int LA139_0 = input.LA(1); + + if ( (LA139_0==49) ) { + alt139=1; + } + + + switch (alt139) { + case 1 : + // Java.g:9741:3: (a1_0= parse_org_emftext_language_java_arrays_ArraySelector ) + { + // Java.g:9741:3: (a1_0= parse_org_emftext_language_java_arrays_ArraySelector ) + // Java.g:9742:4: a1_0= parse_org_emftext_language_java_arrays_ArraySelector + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArraySelector_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped12190); + a1_0=parse_org_emftext_language_java_arrays_ArraySelector(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationByValuesUntyped(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.arrays.ArraysPackage.ARRAY_INSTANTIATION_BY_VALUES_UNTYPED__ARRAY_SELECTORS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_34_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + } + break; + + default : + break loop139; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29582); + addExpectedElement(29583); + addExpectedElement(29585); + addExpectedElement(29588); + addExpectedElement(29590); + addExpectedElement(29593); + addExpectedElement(29597); + addExpectedElement(29598); + addExpectedElement(29600); + addExpectedElement(29609); + addExpectedElement(29621); + addExpectedElement(29647); + } + + // Java.g:9779:2: ( (a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) ) )? + int alt140=2; + int LA140_0 = input.LA(1); + + if ( (LA140_0==37) ) { + alt140=1; + } + switch (alt140) { + case 1 : + // Java.g:9780:3: (a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) ) + { + // Java.g:9780:3: (a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) ) + // Java.g:9781:4: a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) + { + a2=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped12225); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationByValuesUntyped(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_34_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29672); + } + + // Java.g:9795:4: (a3_0= parse_org_emftext_language_java_references_Reference ) + // Java.g:9796:5: a3_0= parse_org_emftext_language_java_references_Reference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped12251); + a3_0=parse_org_emftext_language_java_references_Reference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationByValuesUntyped(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.arrays.ArraysPackage.ARRAY_INSTANTIATION_BY_VALUES_UNTYPED__NEXT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_34_0_0_2_0_0_1, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(29674); + addExpectedElement(29677); + addExpectedElement(29679); + addExpectedElement(29682); + addExpectedElement(29686); + addExpectedElement(29687); + addExpectedElement(29689); + addExpectedElement(29698); + addExpectedElement(29710); + addExpectedElement(29736); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(29738); + addExpectedElement(29741); + addExpectedElement(29743); + addExpectedElement(29746); + addExpectedElement(29750); + addExpectedElement(29751); + addExpectedElement(29753); + addExpectedElement(29762); + addExpectedElement(29774); + addExpectedElement(29800); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 36, parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped" + + + + // $ANTLR start "parse_org_emftext_language_java_arrays_ArrayInstantiationBySize" + // Java.g:9854:1: parse_org_emftext_language_java_arrays_ArrayInstantiationBySize returns [org.emftext.language.java.arrays.ArrayInstantiationBySize element = null] : a0= 'new' (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2= '[' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a4= ']' ) )+ ( (a5_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a6= '.' (a7_0= parse_org_emftext_language_java_references_Reference ) ) )? ; + public final org.emftext.language.java.arrays.ArrayInstantiationBySize parse_org_emftext_language_java_arrays_ArrayInstantiationBySize() throws RecognitionException { + org.emftext.language.java.arrays.ArrayInstantiationBySize element = null; + + int parse_org_emftext_language_java_arrays_ArrayInstantiationBySize_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + Token a4=null; + Token a6=null; + org.emftext.language.java.types.TypeReference a1_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a3_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a5_0 =null; + + org.emftext.language.java.references.Reference a7_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 37) ) { return element; } + + // Java.g:9857:2: (a0= 'new' (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2= '[' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a4= ']' ) )+ ( (a5_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a6= '.' (a7_0= parse_org_emftext_language_java_references_Reference ) ) )? ) + // Java.g:9858:2: a0= 'new' (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2= '[' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a4= ']' ) )+ ( (a5_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a6= '.' (a7_0= parse_org_emftext_language_java_references_Reference ) ) )? + { + a0=(Token)match(input,84,FOLLOW_84_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12307); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationBySize(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_35_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29812); + } + + // Java.g:9872:2: (a1_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:9873:3: a1_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12325); + a1_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationBySize(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.arrays.ArraysPackage.ARRAY_INSTANTIATION_BY_SIZE__TYPE_REFERENCE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_35_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29813); + } + + // Java.g:9898:2: ( (a2= '[' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a4= ']' ) )+ + int cnt141=0; + loop141: + do { + int alt141=2; + int LA141_0 = input.LA(1); + + if ( (LA141_0==49) ) { + int LA141_1 = input.LA(2); + + if ( ((LA141_1 >= BOOLEAN_LITERAL && LA141_1 <= IDENTIFIER)||(LA141_1 >= OCTAL_INTEGER_LITERAL && LA141_1 <= OCTAL_LONG_LITERAL)||LA141_1==STRING_LITERAL||LA141_1==21||LA141_1==26||(LA141_1 >= 30 && LA141_1 <= 31)||(LA141_1 >= 34 && LA141_1 <= 35)||LA141_1==43||LA141_1==48||LA141_1==58||LA141_1==60||(LA141_1 >= 63 && LA141_1 <= 64)||LA141_1==68||LA141_1==74||LA141_1==80||LA141_1==82||(LA141_1 >= 84 && LA141_1 <= 85)||LA141_1==91||LA141_1==94||LA141_1==97||LA141_1==102||LA141_1==105||LA141_1==110) ) { + alt141=1; + } + + + } + + + switch (alt141) { + case 1 : + // Java.g:9899:3: (a2= '[' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a4= ']' ) + { + // Java.g:9899:3: (a2= '[' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a4= ']' ) + // Java.g:9900:4: a2= '[' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a4= ']' + { + a2=(Token)match(input,49,FOLLOW_49_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12352); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationBySize(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_35_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29897); + } + + // Java.g:9914:4: (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:9915:5: a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12378); + a3_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationBySize(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + addObjectToList(element, org.emftext.language.java.arrays.ArraysPackage.ARRAY_INSTANTIATION_BY_SIZE__SIZES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_35_0_0_2_0_0_1, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29898); + } + + a4=(Token)match(input,53,FOLLOW_53_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12406); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationBySize(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_35_0_0_2_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29899); + addExpectedElement(29900); + addExpectedElement(29901); + addExpectedElement(29903); + addExpectedElement(29906); + addExpectedElement(29908); + addExpectedElement(29911); + addExpectedElement(29915); + addExpectedElement(29916); + addExpectedElement(29918); + addExpectedElement(29927); + addExpectedElement(29939); + addExpectedElement(29965); + } + + } + + + } + break; + + default : + if ( cnt141 >= 1 ) break loop141; + if (state.backtracking>0) {state.failed=true; return element;} + EarlyExitException eee = + new EarlyExitException(141, input); + throw eee; + } + cnt141++; + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(29966); + addExpectedElement(29967); + addExpectedElement(29968); + addExpectedElement(29970); + addExpectedElement(29973); + addExpectedElement(29975); + addExpectedElement(29978); + addExpectedElement(29982); + addExpectedElement(29983); + addExpectedElement(29985); + addExpectedElement(29994); + addExpectedElement(30006); + addExpectedElement(30032); + } + + // Java.g:9985:2: ( (a5_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop142: + do { + int alt142=2; + int LA142_0 = input.LA(1); + + if ( (LA142_0==49) ) { + alt142=1; + } + + + switch (alt142) { + case 1 : + // Java.g:9986:3: (a5_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:9986:3: (a5_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:9987:4: a5_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12448); + a5_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationBySize(); + startIncompleteElement(element); + } + if (a5_0 != null) { + if (a5_0 != null) { + Object value = a5_0; + addObjectToList(element, org.emftext.language.java.arrays.ArraysPackage.ARRAY_INSTANTIATION_BY_SIZE__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_35_0_0_3, a5_0, true); + copyLocalizationInfos(a5_0, element); + } + } + + } + + + } + break; + + default : + break loop142; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30033); + addExpectedElement(30034); + addExpectedElement(30036); + addExpectedElement(30039); + addExpectedElement(30041); + addExpectedElement(30044); + addExpectedElement(30048); + addExpectedElement(30049); + addExpectedElement(30051); + addExpectedElement(30060); + addExpectedElement(30072); + addExpectedElement(30098); + } + + // Java.g:10024:2: ( (a6= '.' (a7_0= parse_org_emftext_language_java_references_Reference ) ) )? + int alt143=2; + int LA143_0 = input.LA(1); + + if ( (LA143_0==37) ) { + alt143=1; + } + switch (alt143) { + case 1 : + // Java.g:10025:3: (a6= '.' (a7_0= parse_org_emftext_language_java_references_Reference ) ) + { + // Java.g:10025:3: (a6= '.' (a7_0= parse_org_emftext_language_java_references_Reference ) ) + // Java.g:10026:4: a6= '.' (a7_0= parse_org_emftext_language_java_references_Reference ) + { + a6=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12483); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationBySize(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_35_0_0_4_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a6, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30123); + } + + // Java.g:10040:4: (a7_0= parse_org_emftext_language_java_references_Reference ) + // Java.g:10041:5: a7_0= parse_org_emftext_language_java_references_Reference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12509); + a7_0=parse_org_emftext_language_java_references_Reference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInstantiationBySize(); + startIncompleteElement(element); + } + if (a7_0 != null) { + if (a7_0 != null) { + Object value = a7_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.arrays.ArraysPackage.ARRAY_INSTANTIATION_BY_SIZE__NEXT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_35_0_0_4_0_0_1, a7_0, true); + copyLocalizationInfos(a7_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(30125); + addExpectedElement(30128); + addExpectedElement(30130); + addExpectedElement(30133); + addExpectedElement(30137); + addExpectedElement(30138); + addExpectedElement(30140); + addExpectedElement(30149); + addExpectedElement(30161); + addExpectedElement(30187); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(30189); + addExpectedElement(30192); + addExpectedElement(30194); + addExpectedElement(30197); + addExpectedElement(30201); + addExpectedElement(30202); + addExpectedElement(30204); + addExpectedElement(30213); + addExpectedElement(30225); + addExpectedElement(30251); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 37, parse_org_emftext_language_java_arrays_ArrayInstantiationBySize_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_arrays_ArrayInstantiationBySize" + + + + // $ANTLR start "parse_org_emftext_language_java_arrays_ArrayInitializer" + // Java.g:10099:1: parse_org_emftext_language_java_arrays_ArrayInitializer returns [org.emftext.language.java.arrays.ArrayInitializer element = null] : a0= '{' ( ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a1_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a3_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ) )* ) )? ( (a4= ',' ) )? a5= '}' ; + public final org.emftext.language.java.arrays.ArrayInitializer parse_org_emftext_language_java_arrays_ArrayInitializer() throws RecognitionException { + org.emftext.language.java.arrays.ArrayInitializer element = null; + + int parse_org_emftext_language_java_arrays_ArrayInitializer_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + Token a4=null; + Token a5=null; + org.emftext.language.java.expressions.AssignmentExpression a1_0 =null; + + org.emftext.language.java.arrays.ArrayInitializer a1_1 =null; + + org.emftext.language.java.expressions.AssignmentExpression a3_0 =null; + + org.emftext.language.java.arrays.ArrayInitializer a3_1 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 38) ) { return element; } + + // Java.g:10102:2: (a0= '{' ( ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a1_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a3_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ) )* ) )? ( (a4= ',' ) )? a5= '}' ) + // Java.g:10103:2: a0= '{' ( ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a1_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a3_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ) )* ) )? ( (a4= ',' ) )? a5= '}' + { + a0=(Token)match(input,105,FOLLOW_105_in_parse_org_emftext_language_java_arrays_ArrayInitializer12565); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInitializer(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_36_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30336); + addExpectedElement(30338); + } + + // Java.g:10118:2: ( ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a1_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a3_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ) )* ) )? + int alt147=2; + int LA147_0 = input.LA(1); + + if ( ((LA147_0 >= BOOLEAN_LITERAL && LA147_0 <= IDENTIFIER)||(LA147_0 >= OCTAL_INTEGER_LITERAL && LA147_0 <= OCTAL_LONG_LITERAL)||LA147_0==STRING_LITERAL||LA147_0==21||LA147_0==26||(LA147_0 >= 30 && LA147_0 <= 31)||(LA147_0 >= 34 && LA147_0 <= 35)||LA147_0==43||LA147_0==48||LA147_0==58||LA147_0==60||(LA147_0 >= 63 && LA147_0 <= 64)||LA147_0==68||LA147_0==74||LA147_0==80||LA147_0==82||(LA147_0 >= 84 && LA147_0 <= 85)||LA147_0==91||LA147_0==94||LA147_0==97||LA147_0==102||LA147_0==105||LA147_0==110) ) { + alt147=1; + } + switch (alt147) { + case 1 : + // Java.g:10119:3: ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a1_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a3_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ) )* ) + { + // Java.g:10119:3: ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a1_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a3_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ) )* ) + // Java.g:10120:4: (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a1_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a3_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ) )* + { + // Java.g:10120:4: (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a1_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) + int alt144=2; + int LA144_0 = input.LA(1); + + if ( ((LA144_0 >= BOOLEAN_LITERAL && LA144_0 <= IDENTIFIER)||(LA144_0 >= OCTAL_INTEGER_LITERAL && LA144_0 <= OCTAL_LONG_LITERAL)||LA144_0==STRING_LITERAL||LA144_0==21||LA144_0==26||(LA144_0 >= 30 && LA144_0 <= 31)||(LA144_0 >= 34 && LA144_0 <= 35)||LA144_0==43||LA144_0==48||LA144_0==58||LA144_0==60||(LA144_0 >= 63 && LA144_0 <= 64)||LA144_0==68||LA144_0==74||LA144_0==80||LA144_0==82||(LA144_0 >= 84 && LA144_0 <= 85)||LA144_0==91||LA144_0==94||LA144_0==97||LA144_0==102||LA144_0==110) ) { + alt144=1; + } + else if ( (LA144_0==105) ) { + int LA144_10 = input.LA(2); + + if ( (synpred145_Java()) ) { + alt144=1; + } + else if ( (true) ) { + alt144=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 144, 10, input); + + throw nvae; + + } + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 144, 0, input); + + throw nvae; + + } + switch (alt144) { + case 1 : + // Java.g:10121:5: a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_arrays_ArrayInitializer12594); + a1_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInitializer(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.arrays.ArraysPackage.ARRAY_INITIALIZER__INITIAL_VALUES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_36_0_0_2_0_0_0, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + break; + case 2 : + // Java.g:10140:10: a1_1= parse_org_emftext_language_java_arrays_ArrayInitializer + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_parse_org_emftext_language_java_arrays_ArrayInitializer12614); + a1_1=parse_org_emftext_language_java_arrays_ArrayInitializer(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInitializer(); + startIncompleteElement(element); + } + if (a1_1 != null) { + if (a1_1 != null) { + Object value = a1_1; + addObjectToList(element, org.emftext.language.java.arrays.ArraysPackage.ARRAY_INITIALIZER__INITIAL_VALUES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_36_0_0_2_0_0_0, a1_1, true); + copyLocalizationInfos(a1_1, element); + } + } + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30341); + } + + // Java.g:10165:4: ( (a2= ',' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a3_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ) )* + loop146: + do { + int alt146=2; + int LA146_0 = input.LA(1); + + if ( (LA146_0==33) ) { + int LA146_1 = input.LA(2); + + if ( ((LA146_1 >= BOOLEAN_LITERAL && LA146_1 <= IDENTIFIER)||(LA146_1 >= OCTAL_INTEGER_LITERAL && LA146_1 <= OCTAL_LONG_LITERAL)||LA146_1==STRING_LITERAL||LA146_1==21||LA146_1==26||(LA146_1 >= 30 && LA146_1 <= 31)||(LA146_1 >= 34 && LA146_1 <= 35)||LA146_1==43||LA146_1==48||LA146_1==58||LA146_1==60||(LA146_1 >= 63 && LA146_1 <= 64)||LA146_1==68||LA146_1==74||LA146_1==80||LA146_1==82||(LA146_1 >= 84 && LA146_1 <= 85)||LA146_1==91||LA146_1==94||LA146_1==97||LA146_1==102||LA146_1==105||LA146_1==110) ) { + alt146=1; + } + + + } + + + switch (alt146) { + case 1 : + // Java.g:10166:5: (a2= ',' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a3_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ) + { + // Java.g:10166:5: (a2= ',' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a3_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) ) + // Java.g:10167:6: a2= ',' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a3_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) + { + a2=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_arrays_ArrayInitializer12655); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInitializer(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_36_0_0_2_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30426); + } + + // Java.g:10181:6: (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression |a3_1= parse_org_emftext_language_java_arrays_ArrayInitializer ) + int alt145=2; + int LA145_0 = input.LA(1); + + if ( ((LA145_0 >= BOOLEAN_LITERAL && LA145_0 <= IDENTIFIER)||(LA145_0 >= OCTAL_INTEGER_LITERAL && LA145_0 <= OCTAL_LONG_LITERAL)||LA145_0==STRING_LITERAL||LA145_0==21||LA145_0==26||(LA145_0 >= 30 && LA145_0 <= 31)||(LA145_0 >= 34 && LA145_0 <= 35)||LA145_0==43||LA145_0==48||LA145_0==58||LA145_0==60||(LA145_0 >= 63 && LA145_0 <= 64)||LA145_0==68||LA145_0==74||LA145_0==80||LA145_0==82||(LA145_0 >= 84 && LA145_0 <= 85)||LA145_0==91||LA145_0==94||LA145_0==97||LA145_0==102||LA145_0==110) ) { + alt145=1; + } + else if ( (LA145_0==105) ) { + int LA145_10 = input.LA(2); + + if ( (synpred146_Java()) ) { + alt145=1; + } + else if ( (true) ) { + alt145=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 145, 10, input); + + throw nvae; + + } + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 145, 0, input); + + throw nvae; + + } + switch (alt145) { + case 1 : + // Java.g:10182:7: a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_arrays_ArrayInitializer12689); + a3_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInitializer(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + addObjectToList(element, org.emftext.language.java.arrays.ArraysPackage.ARRAY_INITIALIZER__INITIAL_VALUES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_36_0_0_2_0_0_1_0_0_1, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + break; + case 2 : + // Java.g:10201:14: a3_1= parse_org_emftext_language_java_arrays_ArrayInitializer + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_parse_org_emftext_language_java_arrays_ArrayInitializer12715); + a3_1=parse_org_emftext_language_java_arrays_ArrayInitializer(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInitializer(); + startIncompleteElement(element); + } + if (a3_1 != null) { + if (a3_1 != null) { + Object value = a3_1; + addObjectToList(element, org.emftext.language.java.arrays.ArraysPackage.ARRAY_INITIALIZER__INITIAL_VALUES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_36_0_0_2_0_0_1_0_0_1, a3_1, true); + copyLocalizationInfos(a3_1, element); + } + } + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30429); + } + + } + + + } + break; + + default : + break loop146; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30432); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30434); + } + + // Java.g:10240:2: ( (a4= ',' ) )? + int alt148=2; + int LA148_0 = input.LA(1); + + if ( (LA148_0==33) ) { + alt148=1; + } + switch (alt148) { + case 1 : + // Java.g:10241:3: (a4= ',' ) + { + // Java.g:10241:3: (a4= ',' ) + // Java.g:10242:4: a4= ',' + { + a4=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_arrays_ArrayInitializer12798); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInitializer(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_36_0_0_3_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30435); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30436); + } + + a5=(Token)match(input,109,FOLLOW_109_in_parse_org_emftext_language_java_arrays_ArrayInitializer12831); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayInitializer(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_36_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(30439); + addExpectedElement(30440); + addExpectedElement(30441); + addExpectedElement(30443); + addExpectedElement(30446); + addExpectedElement(30448); + addExpectedElement(30451); + addExpectedElement(30455); + addExpectedElement(30456); + addExpectedElement(30458); + addExpectedElement(30464); + addExpectedElement(30476); + addExpectedElement(30502); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 38, parse_org_emftext_language_java_arrays_ArrayInitializer_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_arrays_ArrayInitializer" + + + + // $ANTLR start "parse_org_emftext_language_java_arrays_ArraySelector" + // Java.g:10294:1: parse_org_emftext_language_java_arrays_ArraySelector returns [org.emftext.language.java.arrays.ArraySelector element = null] : a0= '[' ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) )? a2= ']' ; + public final org.emftext.language.java.arrays.ArraySelector parse_org_emftext_language_java_arrays_ArraySelector() throws RecognitionException { + org.emftext.language.java.arrays.ArraySelector element = null; + + int parse_org_emftext_language_java_arrays_ArraySelector_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + org.emftext.language.java.expressions.AssignmentExpression a1_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 39) ) { return element; } + + // Java.g:10297:2: (a0= '[' ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) )? a2= ']' ) + // Java.g:10298:2: a0= '[' ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) )? a2= ']' + { + a0=(Token)match(input,49,FOLLOW_49_in_parse_org_emftext_language_java_arrays_ArraySelector12860); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArraySelector(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_37_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30586); + addExpectedElement(30587); + } + + // Java.g:10313:2: ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) )? + int alt149=2; + int LA149_0 = input.LA(1); + + if ( ((LA149_0 >= BOOLEAN_LITERAL && LA149_0 <= IDENTIFIER)||(LA149_0 >= OCTAL_INTEGER_LITERAL && LA149_0 <= OCTAL_LONG_LITERAL)||LA149_0==STRING_LITERAL||LA149_0==21||LA149_0==26||(LA149_0 >= 30 && LA149_0 <= 31)||(LA149_0 >= 34 && LA149_0 <= 35)||LA149_0==43||LA149_0==48||LA149_0==58||LA149_0==60||(LA149_0 >= 63 && LA149_0 <= 64)||LA149_0==68||LA149_0==74||LA149_0==80||LA149_0==82||(LA149_0 >= 84 && LA149_0 <= 85)||LA149_0==91||LA149_0==94||LA149_0==97||LA149_0==102||LA149_0==105||LA149_0==110) ) { + alt149=1; + } + switch (alt149) { + case 1 : + // Java.g:10314:3: (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + // Java.g:10314:3: (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:10315:4: a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_arrays_ArraySelector12883); + a1_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArraySelector(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.arrays.ArraysPackage.ARRAY_SELECTOR__POSITION), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_37_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30588); + } + + a2=(Token)match(input,53,FOLLOW_53_in_parse_org_emftext_language_java_arrays_ArraySelector12909); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArraySelector(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_37_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(30589); + addExpectedElement(30590); + addExpectedElement(30592); + addExpectedElement(30595); + addExpectedElement(30597); + addExpectedElement(30600); + addExpectedElement(30604); + addExpectedElement(30605); + addExpectedElement(30607); + addExpectedElement(30616); + addExpectedElement(30628); + addExpectedElement(30654); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 39, parse_org_emftext_language_java_arrays_ArraySelector_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_arrays_ArraySelector" + + + + // $ANTLR start "parse_org_emftext_language_java_types_NamespaceClassifierReference" + // Java.g:10371:1: parse_org_emftext_language_java_types_NamespaceClassifierReference returns [org.emftext.language.java.types.NamespaceClassifierReference element = null] : ( ( (a0= IDENTIFIER ) a1= '.' ) )* ( ( (a2_0= parse_org_emftext_language_java_types_ClassifierReference ) a3= '.' ) )* (a4_0= parse_org_emftext_language_java_types_ClassifierReference ) ; + public final org.emftext.language.java.types.NamespaceClassifierReference parse_org_emftext_language_java_types_NamespaceClassifierReference() throws RecognitionException { + org.emftext.language.java.types.NamespaceClassifierReference element = null; + + int parse_org_emftext_language_java_types_NamespaceClassifierReference_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + org.emftext.language.java.types.ClassifierReference a2_0 =null; + + org.emftext.language.java.types.ClassifierReference a4_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 40) ) { return element; } + + // Java.g:10374:2: ( ( ( (a0= IDENTIFIER ) a1= '.' ) )* ( ( (a2_0= parse_org_emftext_language_java_types_ClassifierReference ) a3= '.' ) )* (a4_0= parse_org_emftext_language_java_types_ClassifierReference ) ) + // Java.g:10375:2: ( ( (a0= IDENTIFIER ) a1= '.' ) )* ( ( (a2_0= parse_org_emftext_language_java_types_ClassifierReference ) a3= '.' ) )* (a4_0= parse_org_emftext_language_java_types_ClassifierReference ) + { + // Java.g:10375:2: ( ( (a0= IDENTIFIER ) a1= '.' ) )* + loop150: + do { + int alt150=2; + int LA150_0 = input.LA(1); + + if ( (LA150_0==IDENTIFIER) ) { + int LA150_1 = input.LA(2); + + if ( (LA150_1==37) ) { + int LA150_3 = input.LA(3); + + if ( (synpred151_Java()) ) { + alt150=1; + } + + + } + + + } + + + switch (alt150) { + case 1 : + // Java.g:10376:3: ( (a0= IDENTIFIER ) a1= '.' ) + { + // Java.g:10376:3: ( (a0= IDENTIFIER ) a1= '.' ) + // Java.g:10377:4: (a0= IDENTIFIER ) a1= '.' + { + // Java.g:10377:4: (a0= IDENTIFIER ) + // Java.g:10378:5: a0= IDENTIFIER + { + a0=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_types_NamespaceClassifierReference12953); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createNamespaceClassifierReference(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.types.TypesPackage.NAMESPACE_CLASSIFIER_REFERENCE__NAMESPACES), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + addObjectToList(element, org.emftext.language.java.types.TypesPackage.NAMESPACE_CLASSIFIER_REFERENCE__NAMESPACES, value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_38_0_0_0_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30655); + } + + a1=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_types_NamespaceClassifierReference12986); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createNamespaceClassifierReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_38_0_0_0_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30656); + addExpectedElement(30657); + } + + } + + + } + break; + + default : + break loop150; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30658); + addExpectedElement(30659); + } + + // Java.g:10436:2: ( ( (a2_0= parse_org_emftext_language_java_types_ClassifierReference ) a3= '.' ) )* + loop151: + do { + int alt151=2; + int LA151_0 = input.LA(1); + + if ( (LA151_0==IDENTIFIER) ) { + int LA151_1 = input.LA(2); + + if ( (synpred152_Java()) ) { + alt151=1; + } + + + } + + + switch (alt151) { + case 1 : + // Java.g:10437:3: ( (a2_0= parse_org_emftext_language_java_types_ClassifierReference ) a3= '.' ) + { + // Java.g:10437:3: ( (a2_0= parse_org_emftext_language_java_types_ClassifierReference ) a3= '.' ) + // Java.g:10438:4: (a2_0= parse_org_emftext_language_java_types_ClassifierReference ) a3= '.' + { + // Java.g:10438:4: (a2_0= parse_org_emftext_language_java_types_ClassifierReference ) + // Java.g:10439:5: a2_0= parse_org_emftext_language_java_types_ClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_ClassifierReference_in_parse_org_emftext_language_java_types_NamespaceClassifierReference13034); + a2_0=parse_org_emftext_language_java_types_ClassifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createNamespaceClassifierReference(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.types.TypesPackage.NAMESPACE_CLASSIFIER_REFERENCE__CLASSIFIER_REFERENCES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_38_0_0_1_0_0_0, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30660); + } + + a3=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_types_NamespaceClassifierReference13062); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createNamespaceClassifierReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_38_0_0_1_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30661); + } + + } + + + } + break; + + default : + break loop151; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30662); + } + + // Java.g:10485:2: (a4_0= parse_org_emftext_language_java_types_ClassifierReference ) + // Java.g:10486:3: a4_0= parse_org_emftext_language_java_types_ClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_ClassifierReference_in_parse_org_emftext_language_java_types_NamespaceClassifierReference13099); + a4_0=parse_org_emftext_language_java_types_ClassifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createNamespaceClassifierReference(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.types.TypesPackage.NAMESPACE_CLASSIFIER_REFERENCE__CLASSIFIER_REFERENCES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_38_0_0_2, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(30677); + addExpectedElement(30678); + addExpectedElement(30680); + addExpectedElement(30681); + addExpectedElement(30683); + addExpectedElement(30684); + addExpectedElement(30686); + addExpectedElement(30687); + addExpectedElement(30691); + addExpectedElement(30692); + addExpectedElement(30693); + addExpectedElement(30694); + addExpectedElement(30703); + addExpectedElement(30704); + addExpectedElement(30705); + addExpectedElement(30706); + addExpectedElement(30708); + addExpectedElement(30717); + addExpectedElement(30729); + addExpectedElement(30750); + addExpectedElement(30751); + addExpectedElement(30752); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 40, parse_org_emftext_language_java_types_NamespaceClassifierReference_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_types_NamespaceClassifierReference" + + + + // $ANTLR start "parse_org_emftext_language_java_types_ClassifierReference" + // Java.g:10537:1: parse_org_emftext_language_java_types_ClassifierReference returns [org.emftext.language.java.types.ClassifierReference element = null] : (a0= IDENTIFIER ) ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) )? ; + public final org.emftext.language.java.types.ClassifierReference parse_org_emftext_language_java_types_ClassifierReference() throws RecognitionException { + org.emftext.language.java.types.ClassifierReference element = null; + + int parse_org_emftext_language_java_types_ClassifierReference_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + Token a5=null; + org.emftext.language.java.generics.TypeArgument a2_0 =null; + + org.emftext.language.java.generics.TypeArgument a4_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 41) ) { return element; } + + // Java.g:10540:2: ( (a0= IDENTIFIER ) ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) )? ) + // Java.g:10541:2: (a0= IDENTIFIER ) ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) )? + { + // Java.g:10541:2: (a0= IDENTIFIER ) + // Java.g:10542:3: a0= IDENTIFIER + { + a0=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_types_ClassifierReference13136); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createClassifierReference(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.types.TypesPackage.CLASSIFIER_REFERENCE__TARGET), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + String resolved = (String) resolvedObject; + org.emftext.language.java.classifiers.Classifier proxy = org.emftext.language.java.classifiers.ClassifiersFactory.eINSTANCE.createClass(); + collectHiddenTokens(element); + registerContextDependentProxy(new org.emftext.language.java.resource.java.mopp.JavaContextDependentURIFragmentFactory(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getClassifierReferenceTargetReferenceResolver()), element, (EReference) element.eClass().getEStructuralFeature(org.emftext.language.java.types.TypesPackage.CLASSIFIER_REFERENCE__TARGET), resolved, proxy); + if (proxy != null) { + Object value = proxy; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.types.TypesPackage.CLASSIFIER_REFERENCE__TARGET), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_39_0_0_0, proxy, true); + copyLocalizationInfos((CommonToken) a0, element); + copyLocalizationInfos((CommonToken) a0, proxy); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30768); + addExpectedElement(30769); + addExpectedElement(30771); + addExpectedElement(30772); + addExpectedElement(30774); + addExpectedElement(30775); + addExpectedElement(30777); + addExpectedElement(30778); + addExpectedElement(30782); + addExpectedElement(30783); + addExpectedElement(30785); + addExpectedElement(30786); + addExpectedElement(30795); + addExpectedElement(30796); + addExpectedElement(30797); + addExpectedElement(30798); + addExpectedElement(30800); + addExpectedElement(30809); + addExpectedElement(30821); + addExpectedElement(30842); + addExpectedElement(30843); + addExpectedElement(30844); + } + + // Java.g:10602:2: ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) )? + int alt153=2; + int LA153_0 = input.LA(1); + + if ( (LA153_0==43) ) { + int LA153_1 = input.LA(2); + + if ( (synpred154_Java()) ) { + alt153=1; + } + } + switch (alt153) { + case 1 : + // Java.g:10603:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) + { + // Java.g:10603:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) + // Java.g:10604:4: a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' + { + a1=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_types_ClassifierReference13166); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createClassifierReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_39_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30859); + } + + // Java.g:10618:4: (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:10619:5: a2_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_types_ClassifierReference13192); + a2_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createClassifierReference(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.types.TypesPackage.CLASSIFIER_REFERENCE__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_39_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30861); + } + + // Java.g:10644:4: ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* + loop152: + do { + int alt152=2; + int LA152_0 = input.LA(1); + + if ( (LA152_0==33) ) { + alt152=1; + } + + + switch (alt152) { + case 1 : + // Java.g:10645:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + { + // Java.g:10645:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + // Java.g:10646:6: a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + { + a3=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_types_ClassifierReference13233); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createClassifierReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_39_0_0_1_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30876); + } + + // Java.g:10660:6: (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:10661:7: a4_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_types_ClassifierReference13267); + a4_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createClassifierReference(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.types.TypesPackage.CLASSIFIER_REFERENCE__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_39_0_0_1_0_0_2_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30878); + } + + } + + + } + break; + + default : + break loop152; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(30880); + } + + a5=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_types_ClassifierReference13328); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createClassifierReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_39_0_0_1_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(30895); + addExpectedElement(30896); + addExpectedElement(30898); + addExpectedElement(30899); + addExpectedElement(30901); + addExpectedElement(30902); + addExpectedElement(30904); + addExpectedElement(30905); + addExpectedElement(30909); + addExpectedElement(30910); + addExpectedElement(30912); + addExpectedElement(30913); + addExpectedElement(30922); + addExpectedElement(30923); + addExpectedElement(30924); + addExpectedElement(30925); + addExpectedElement(30927); + addExpectedElement(30936); + addExpectedElement(30948); + addExpectedElement(30969); + addExpectedElement(30970); + addExpectedElement(30971); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(30986); + addExpectedElement(30987); + addExpectedElement(30989); + addExpectedElement(30990); + addExpectedElement(30992); + addExpectedElement(30993); + addExpectedElement(30995); + addExpectedElement(30996); + addExpectedElement(31000); + addExpectedElement(31001); + addExpectedElement(31003); + addExpectedElement(31004); + addExpectedElement(31013); + addExpectedElement(31014); + addExpectedElement(31015); + addExpectedElement(31016); + addExpectedElement(31018); + addExpectedElement(31027); + addExpectedElement(31039); + addExpectedElement(31060); + addExpectedElement(31061); + addExpectedElement(31062); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 41, parse_org_emftext_language_java_types_ClassifierReference_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_types_ClassifierReference" + + + + // $ANTLR start "parse_org_emftext_language_java_references_MethodCall" + // Java.g:10764:1: parse_org_emftext_language_java_references_MethodCall returns [org.emftext.language.java.references.MethodCall element = null] : ( (a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' ) )? (a5= IDENTIFIER ) ( (a6= '<' (a7_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a10= '>' ) )? a11= '(' ( ( (a12_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a13= ',' (a14_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a15= ')' ( (a16_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a17= '.' (a18_0= parse_org_emftext_language_java_references_Reference ) ) )? ; + public final org.emftext.language.java.references.MethodCall parse_org_emftext_language_java_references_MethodCall() throws RecognitionException { + org.emftext.language.java.references.MethodCall element = null; + + int parse_org_emftext_language_java_references_MethodCall_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + Token a4=null; + Token a5=null; + Token a6=null; + Token a8=null; + Token a10=null; + Token a11=null; + Token a13=null; + Token a15=null; + Token a17=null; + org.emftext.language.java.generics.TypeArgument a1_0 =null; + + org.emftext.language.java.generics.TypeArgument a3_0 =null; + + org.emftext.language.java.generics.TypeArgument a7_0 =null; + + org.emftext.language.java.generics.TypeArgument a9_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a12_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a14_0 =null; + + org.emftext.language.java.arrays.ArraySelector a16_0 =null; + + org.emftext.language.java.references.Reference a18_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 42) ) { return element; } + + // Java.g:10767:2: ( ( (a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' ) )? (a5= IDENTIFIER ) ( (a6= '<' (a7_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a10= '>' ) )? a11= '(' ( ( (a12_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a13= ',' (a14_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a15= ')' ( (a16_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a17= '.' (a18_0= parse_org_emftext_language_java_references_Reference ) ) )? ) + // Java.g:10768:2: ( (a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' ) )? (a5= IDENTIFIER ) ( (a6= '<' (a7_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a10= '>' ) )? a11= '(' ( ( (a12_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a13= ',' (a14_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a15= ')' ( (a16_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a17= '.' (a18_0= parse_org_emftext_language_java_references_Reference ) ) )? + { + // Java.g:10768:2: ( (a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' ) )? + int alt155=2; + int LA155_0 = input.LA(1); + + if ( (LA155_0==43) ) { + alt155=1; + } + switch (alt155) { + case 1 : + // Java.g:10769:3: (a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' ) + { + // Java.g:10769:3: (a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' ) + // Java.g:10770:4: a0= '<' (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a4= '>' + { + a0=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_references_MethodCall13385); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_0_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31077); + } + + // Java.g:10784:4: (a1_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:10785:5: a1_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_references_MethodCall13411); + a1_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.references.ReferencesPackage.METHOD_CALL__CALL_TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_0_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31079); + } + + // Java.g:10810:4: ( (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* + loop154: + do { + int alt154=2; + int LA154_0 = input.LA(1); + + if ( (LA154_0==33) ) { + alt154=1; + } + + + switch (alt154) { + case 1 : + // Java.g:10811:5: (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + { + // Java.g:10811:5: (a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + // Java.g:10812:6: a2= ',' (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) + { + a2=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_references_MethodCall13452); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_0_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31094); + } + + // Java.g:10826:6: (a3_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:10827:7: a3_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_references_MethodCall13486); + a3_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + addObjectToList(element, org.emftext.language.java.references.ReferencesPackage.METHOD_CALL__CALL_TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_0_0_0_2_0_0_1, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31096); + } + + } + + + } + break; + + default : + break loop154; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31098); + } + + a4=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_references_MethodCall13547); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_0_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31099); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31100); + } + + // Java.g:10880:2: (a5= IDENTIFIER ) + // Java.g:10881:3: a5= IDENTIFIER + { + a5=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_references_MethodCall13584); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + if (a5 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a5.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.METHOD_CALL__TARGET), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a5).getLine(), ((CommonToken) a5).getCharPositionInLine(), ((CommonToken) a5).getStartIndex(), ((CommonToken) a5).getStopIndex()); + } + String resolved = (String) resolvedObject; + org.emftext.language.java.references.ReferenceableElement proxy = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + collectHiddenTokens(element); + registerContextDependentProxy(new org.emftext.language.java.resource.java.mopp.JavaContextDependentURIFragmentFactory(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getElementReferenceTargetReferenceResolver()), element, (EReference) element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.METHOD_CALL__TARGET), resolved, proxy); + if (proxy != null) { + Object value = proxy; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.METHOD_CALL__TARGET), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_1, proxy, true); + copyLocalizationInfos((CommonToken) a5, element); + copyLocalizationInfos((CommonToken) a5, proxy); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31102); + } + + // Java.g:10920:2: ( (a6= '<' (a7_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a10= '>' ) )? + int alt157=2; + int LA157_0 = input.LA(1); + + if ( (LA157_0==43) ) { + alt157=1; + } + switch (alt157) { + case 1 : + // Java.g:10921:3: (a6= '<' (a7_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a10= '>' ) + { + // Java.g:10921:3: (a6= '<' (a7_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a10= '>' ) + // Java.g:10922:4: a6= '<' (a7_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a8= ',' (a9_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a10= '>' + { + a6=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_references_MethodCall13614); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a6, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31117); + } + + // Java.g:10936:4: (a7_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:10937:5: a7_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_references_MethodCall13640); + a7_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + if (a7_0 != null) { + if (a7_0 != null) { + Object value = a7_0; + addObjectToList(element, org.emftext.language.java.references.ReferencesPackage.METHOD_CALL__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_2_0_0_1, a7_0, true); + copyLocalizationInfos(a7_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31119); + } + + // Java.g:10962:4: ( (a8= ',' (a9_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* + loop156: + do { + int alt156=2; + int LA156_0 = input.LA(1); + + if ( (LA156_0==33) ) { + alt156=1; + } + + + switch (alt156) { + case 1 : + // Java.g:10963:5: (a8= ',' (a9_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + { + // Java.g:10963:5: (a8= ',' (a9_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + // Java.g:10964:6: a8= ',' (a9_0= parse_org_emftext_language_java_generics_TypeArgument ) + { + a8=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_references_MethodCall13681); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_2_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a8, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31134); + } + + // Java.g:10978:6: (a9_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:10979:7: a9_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_references_MethodCall13715); + a9_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + if (a9_0 != null) { + if (a9_0 != null) { + Object value = a9_0; + addObjectToList(element, org.emftext.language.java.references.ReferencesPackage.METHOD_CALL__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_2_0_0_2_0_0_1, a9_0, true); + copyLocalizationInfos(a9_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31136); + } + + } + + + } + break; + + default : + break loop156; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31138); + } + + a10=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_references_MethodCall13776); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_2_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a10, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31139); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31140); + } + + a11=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_references_MethodCall13809); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a11, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31224); + addExpectedElement(31225); + } + + // Java.g:11047:2: ( ( (a12_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a13= ',' (a14_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? + int alt159=2; + int LA159_0 = input.LA(1); + + if ( ((LA159_0 >= BOOLEAN_LITERAL && LA159_0 <= IDENTIFIER)||(LA159_0 >= OCTAL_INTEGER_LITERAL && LA159_0 <= OCTAL_LONG_LITERAL)||LA159_0==STRING_LITERAL||LA159_0==21||LA159_0==26||(LA159_0 >= 30 && LA159_0 <= 31)||(LA159_0 >= 34 && LA159_0 <= 35)||LA159_0==43||LA159_0==48||LA159_0==58||LA159_0==60||(LA159_0 >= 63 && LA159_0 <= 64)||LA159_0==68||LA159_0==74||LA159_0==80||LA159_0==82||(LA159_0 >= 84 && LA159_0 <= 85)||LA159_0==91||LA159_0==94||LA159_0==97||LA159_0==102||LA159_0==105||LA159_0==110) ) { + alt159=1; + } + switch (alt159) { + case 1 : + // Java.g:11048:3: ( (a12_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a13= ',' (a14_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) + { + // Java.g:11048:3: ( (a12_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a13= ',' (a14_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) + // Java.g:11049:4: (a12_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a13= ',' (a14_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* + { + // Java.g:11049:4: (a12_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:11050:5: a12_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_references_MethodCall13838); + a12_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + if (a12_0 != null) { + if (a12_0 != null) { + Object value = a12_0; + addObjectToList(element, org.emftext.language.java.references.ReferencesPackage.METHOD_CALL__ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_4_0_0_0, a12_0, true); + copyLocalizationInfos(a12_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31227); + } + + // Java.g:11075:4: ( (a13= ',' (a14_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* + loop158: + do { + int alt158=2; + int LA158_0 = input.LA(1); + + if ( (LA158_0==33) ) { + alt158=1; + } + + + switch (alt158) { + case 1 : + // Java.g:11076:5: (a13= ',' (a14_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + { + // Java.g:11076:5: (a13= ',' (a14_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + // Java.g:11077:6: a13= ',' (a14_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + a13=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_references_MethodCall13879); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_4_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a13, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31311); + } + + // Java.g:11091:6: (a14_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:11092:7: a14_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_references_MethodCall13913); + a14_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + if (a14_0 != null) { + if (a14_0 != null) { + Object value = a14_0; + addObjectToList(element, org.emftext.language.java.references.ReferencesPackage.METHOD_CALL__ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_4_0_0_1_0_0_1, a14_0, true); + copyLocalizationInfos(a14_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31313); + } + + } + + + } + break; + + default : + break loop158; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31315); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31316); + } + + a15=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_references_MethodCall13987); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_5, null, true); + copyLocalizationInfos((CommonToken)a15, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31317); + addExpectedElement(31318); + addExpectedElement(31320); + addExpectedElement(31323); + addExpectedElement(31325); + addExpectedElement(31328); + addExpectedElement(31332); + addExpectedElement(31333); + addExpectedElement(31335); + addExpectedElement(31344); + addExpectedElement(31356); + addExpectedElement(31382); + } + + // Java.g:11156:2: ( (a16_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* + loop160: + do { + int alt160=2; + int LA160_0 = input.LA(1); + + if ( (LA160_0==49) ) { + alt160=1; + } + + + switch (alt160) { + case 1 : + // Java.g:11157:3: (a16_0= parse_org_emftext_language_java_arrays_ArraySelector ) + { + // Java.g:11157:3: (a16_0= parse_org_emftext_language_java_arrays_ArraySelector ) + // Java.g:11158:4: a16_0= parse_org_emftext_language_java_arrays_ArraySelector + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArraySelector_in_parse_org_emftext_language_java_references_MethodCall14010); + a16_0=parse_org_emftext_language_java_arrays_ArraySelector(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + if (a16_0 != null) { + if (a16_0 != null) { + Object value = a16_0; + addObjectToList(element, org.emftext.language.java.references.ReferencesPackage.METHOD_CALL__ARRAY_SELECTORS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_6, a16_0, true); + copyLocalizationInfos(a16_0, element); + } + } + + } + + + } + break; + + default : + break loop160; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31383); + addExpectedElement(31384); + addExpectedElement(31386); + addExpectedElement(31389); + addExpectedElement(31391); + addExpectedElement(31394); + addExpectedElement(31398); + addExpectedElement(31399); + addExpectedElement(31401); + addExpectedElement(31410); + addExpectedElement(31422); + addExpectedElement(31448); + } + + // Java.g:11195:2: ( (a17= '.' (a18_0= parse_org_emftext_language_java_references_Reference ) ) )? + int alt161=2; + int LA161_0 = input.LA(1); + + if ( (LA161_0==37) ) { + alt161=1; + } + switch (alt161) { + case 1 : + // Java.g:11196:3: (a17= '.' (a18_0= parse_org_emftext_language_java_references_Reference ) ) + { + // Java.g:11196:3: (a17= '.' (a18_0= parse_org_emftext_language_java_references_Reference ) ) + // Java.g:11197:4: a17= '.' (a18_0= parse_org_emftext_language_java_references_Reference ) + { + a17=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_references_MethodCall14045); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_7_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a17, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31473); + } + + // Java.g:11211:4: (a18_0= parse_org_emftext_language_java_references_Reference ) + // Java.g:11212:5: a18_0= parse_org_emftext_language_java_references_Reference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_references_MethodCall14071); + a18_0=parse_org_emftext_language_java_references_Reference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall(); + startIncompleteElement(element); + } + if (a18_0 != null) { + if (a18_0 != null) { + Object value = a18_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.METHOD_CALL__NEXT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_40_0_0_7_0_0_1, a18_0, true); + copyLocalizationInfos(a18_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(31475); + addExpectedElement(31478); + addExpectedElement(31480); + addExpectedElement(31483); + addExpectedElement(31487); + addExpectedElement(31488); + addExpectedElement(31490); + addExpectedElement(31499); + addExpectedElement(31511); + addExpectedElement(31537); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(31539); + addExpectedElement(31542); + addExpectedElement(31544); + addExpectedElement(31547); + addExpectedElement(31551); + addExpectedElement(31552); + addExpectedElement(31554); + addExpectedElement(31563); + addExpectedElement(31575); + addExpectedElement(31601); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 42, parse_org_emftext_language_java_references_MethodCall_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_references_MethodCall" + + + + // $ANTLR start "parse_org_emftext_language_java_references_IdentifierReference" + // Java.g:11270:1: parse_org_emftext_language_java_references_IdentifierReference returns [org.emftext.language.java.references.IdentifierReference element = null] : (a0= IDENTIFIER ) ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a7= '.' (a8_0= parse_org_emftext_language_java_references_Reference ) ) )? ; + public final org.emftext.language.java.references.IdentifierReference parse_org_emftext_language_java_references_IdentifierReference() throws RecognitionException { + org.emftext.language.java.references.IdentifierReference element = null; + + int parse_org_emftext_language_java_references_IdentifierReference_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + Token a5=null; + Token a7=null; + org.emftext.language.java.generics.TypeArgument a2_0 =null; + + org.emftext.language.java.generics.TypeArgument a4_0 =null; + + org.emftext.language.java.arrays.ArraySelector a6_0 =null; + + org.emftext.language.java.references.Reference a8_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 43) ) { return element; } + + // Java.g:11273:2: ( (a0= IDENTIFIER ) ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a7= '.' (a8_0= parse_org_emftext_language_java_references_Reference ) ) )? ) + // Java.g:11274:2: (a0= IDENTIFIER ) ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a7= '.' (a8_0= parse_org_emftext_language_java_references_Reference ) ) )? + { + // Java.g:11274:2: (a0= IDENTIFIER ) + // Java.g:11275:3: a0= IDENTIFIER + { + a0=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_references_IdentifierReference14131); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createIdentifierReference(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.IDENTIFIER_REFERENCE__TARGET), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + String resolved = (String) resolvedObject; + org.emftext.language.java.references.ReferenceableElement proxy = org.emftext.language.java.annotations.AnnotationsFactory.eINSTANCE.createAnnotationAttribute(); + collectHiddenTokens(element); + registerContextDependentProxy(new org.emftext.language.java.resource.java.mopp.JavaContextDependentURIFragmentFactory(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getElementReferenceTargetReferenceResolver()), element, (EReference) element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.IDENTIFIER_REFERENCE__TARGET), resolved, proxy); + if (proxy != null) { + Object value = proxy; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.IDENTIFIER_REFERENCE__TARGET), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_41_0_0_0, proxy, true); + copyLocalizationInfos((CommonToken) a0, element); + copyLocalizationInfos((CommonToken) a0, proxy); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31602); + addExpectedElement(31603); + addExpectedElement(31604); + addExpectedElement(31606); + addExpectedElement(31609); + addExpectedElement(31611); + addExpectedElement(31614); + addExpectedElement(31618); + addExpectedElement(31619); + addExpectedElement(31621); + addExpectedElement(31630); + addExpectedElement(31642); + addExpectedElement(31668); + } + + // Java.g:11326:2: ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) )? + int alt163=2; + int LA163_0 = input.LA(1); + + if ( (LA163_0==43) ) { + int LA163_1 = input.LA(2); + + if ( (synpred164_Java()) ) { + alt163=1; + } + } + switch (alt163) { + case 1 : + // Java.g:11327:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) + { + // Java.g:11327:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) + // Java.g:11328:4: a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' + { + a1=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_references_IdentifierReference14161); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createIdentifierReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_41_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31683); + } + + // Java.g:11342:4: (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:11343:5: a2_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_references_IdentifierReference14187); + a2_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createIdentifierReference(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.references.ReferencesPackage.IDENTIFIER_REFERENCE__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_41_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31685); + } + + // Java.g:11368:4: ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* + loop162: + do { + int alt162=2; + int LA162_0 = input.LA(1); + + if ( (LA162_0==33) ) { + alt162=1; + } + + + switch (alt162) { + case 1 : + // Java.g:11369:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + { + // Java.g:11369:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + // Java.g:11370:6: a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + { + a3=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_references_IdentifierReference14228); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createIdentifierReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_41_0_0_1_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31700); + } + + // Java.g:11384:6: (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:11385:7: a4_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_references_IdentifierReference14262); + a4_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createIdentifierReference(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.references.ReferencesPackage.IDENTIFIER_REFERENCE__TYPE_ARGUMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_41_0_0_1_0_0_2_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31702); + } + + } + + + } + break; + + default : + break loop162; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31704); + } + + a5=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_references_IdentifierReference14323); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createIdentifierReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_41_0_0_1_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31705); + addExpectedElement(31706); + addExpectedElement(31708); + addExpectedElement(31711); + addExpectedElement(31713); + addExpectedElement(31716); + addExpectedElement(31720); + addExpectedElement(31721); + addExpectedElement(31723); + addExpectedElement(31732); + addExpectedElement(31744); + addExpectedElement(31770); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31771); + addExpectedElement(31772); + addExpectedElement(31774); + addExpectedElement(31777); + addExpectedElement(31779); + addExpectedElement(31782); + addExpectedElement(31786); + addExpectedElement(31787); + addExpectedElement(31789); + addExpectedElement(31798); + addExpectedElement(31810); + addExpectedElement(31836); + } + + // Java.g:11460:2: ( (a6_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* + loop164: + do { + int alt164=2; + int LA164_0 = input.LA(1); + + if ( (LA164_0==49) ) { + alt164=1; + } + + + switch (alt164) { + case 1 : + // Java.g:11461:3: (a6_0= parse_org_emftext_language_java_arrays_ArraySelector ) + { + // Java.g:11461:3: (a6_0= parse_org_emftext_language_java_arrays_ArraySelector ) + // Java.g:11462:4: a6_0= parse_org_emftext_language_java_arrays_ArraySelector + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArraySelector_in_parse_org_emftext_language_java_references_IdentifierReference14365); + a6_0=parse_org_emftext_language_java_arrays_ArraySelector(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createIdentifierReference(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + addObjectToList(element, org.emftext.language.java.references.ReferencesPackage.IDENTIFIER_REFERENCE__ARRAY_SELECTORS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_41_0_0_2, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + } + break; + + default : + break loop164; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31837); + addExpectedElement(31838); + addExpectedElement(31840); + addExpectedElement(31843); + addExpectedElement(31845); + addExpectedElement(31848); + addExpectedElement(31852); + addExpectedElement(31853); + addExpectedElement(31855); + addExpectedElement(31864); + addExpectedElement(31876); + addExpectedElement(31902); + } + + // Java.g:11499:2: ( (a7= '.' (a8_0= parse_org_emftext_language_java_references_Reference ) ) )? + int alt165=2; + int LA165_0 = input.LA(1); + + if ( (LA165_0==37) ) { + alt165=1; + } + switch (alt165) { + case 1 : + // Java.g:11500:3: (a7= '.' (a8_0= parse_org_emftext_language_java_references_Reference ) ) + { + // Java.g:11500:3: (a7= '.' (a8_0= parse_org_emftext_language_java_references_Reference ) ) + // Java.g:11501:4: a7= '.' (a8_0= parse_org_emftext_language_java_references_Reference ) + { + a7=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_references_IdentifierReference14400); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createIdentifierReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_41_0_0_3_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a7, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(31927); + } + + // Java.g:11515:4: (a8_0= parse_org_emftext_language_java_references_Reference ) + // Java.g:11516:5: a8_0= parse_org_emftext_language_java_references_Reference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_references_IdentifierReference14426); + a8_0=parse_org_emftext_language_java_references_Reference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createIdentifierReference(); + startIncompleteElement(element); + } + if (a8_0 != null) { + if (a8_0 != null) { + Object value = a8_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.IDENTIFIER_REFERENCE__NEXT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_41_0_0_3_0_0_1, a8_0, true); + copyLocalizationInfos(a8_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(31929); + addExpectedElement(31932); + addExpectedElement(31934); + addExpectedElement(31937); + addExpectedElement(31941); + addExpectedElement(31942); + addExpectedElement(31944); + addExpectedElement(31953); + addExpectedElement(31965); + addExpectedElement(31991); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(31993); + addExpectedElement(31996); + addExpectedElement(31998); + addExpectedElement(32001); + addExpectedElement(32005); + addExpectedElement(32006); + addExpectedElement(32008); + addExpectedElement(32017); + addExpectedElement(32029); + addExpectedElement(32055); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 43, parse_org_emftext_language_java_references_IdentifierReference_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_references_IdentifierReference" + + + + // $ANTLR start "parse_org_emftext_language_java_references_ReflectiveClassReference" + // Java.g:11574:1: parse_org_emftext_language_java_references_ReflectiveClassReference returns [org.emftext.language.java.references.ReflectiveClassReference element = null] : a0= 'class' ( (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) )? ; + public final org.emftext.language.java.references.ReflectiveClassReference parse_org_emftext_language_java_references_ReflectiveClassReference() throws RecognitionException { + org.emftext.language.java.references.ReflectiveClassReference element = null; + + int parse_org_emftext_language_java_references_ReflectiveClassReference_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + org.emftext.language.java.references.Reference a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 44) ) { return element; } + + // Java.g:11577:2: (a0= 'class' ( (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) )? ) + // Java.g:11578:2: a0= 'class' ( (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) )? + { + a0=(Token)match(input,64,FOLLOW_64_in_parse_org_emftext_language_java_references_ReflectiveClassReference14482); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createReflectiveClassReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_42_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(32056); + addExpectedElement(32058); + addExpectedElement(32061); + addExpectedElement(32063); + addExpectedElement(32066); + addExpectedElement(32070); + addExpectedElement(32071); + addExpectedElement(32073); + addExpectedElement(32082); + addExpectedElement(32094); + addExpectedElement(32120); + } + + // Java.g:11602:2: ( (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) )? + int alt166=2; + int LA166_0 = input.LA(1); + + if ( (LA166_0==37) ) { + alt166=1; + } + switch (alt166) { + case 1 : + // Java.g:11603:3: (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) + { + // Java.g:11603:3: (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) + // Java.g:11604:4: a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) + { + a1=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_references_ReflectiveClassReference14505); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createReflectiveClassReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_42_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(32145); + } + + // Java.g:11618:4: (a2_0= parse_org_emftext_language_java_references_Reference ) + // Java.g:11619:5: a2_0= parse_org_emftext_language_java_references_Reference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_references_ReflectiveClassReference14531); + a2_0=parse_org_emftext_language_java_references_Reference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createReflectiveClassReference(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.REFLECTIVE_CLASS_REFERENCE__NEXT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_42_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(32147); + addExpectedElement(32150); + addExpectedElement(32152); + addExpectedElement(32155); + addExpectedElement(32159); + addExpectedElement(32160); + addExpectedElement(32162); + addExpectedElement(32171); + addExpectedElement(32183); + addExpectedElement(32209); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(32211); + addExpectedElement(32214); + addExpectedElement(32216); + addExpectedElement(32219); + addExpectedElement(32223); + addExpectedElement(32224); + addExpectedElement(32226); + addExpectedElement(32235); + addExpectedElement(32247); + addExpectedElement(32273); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 44, parse_org_emftext_language_java_references_ReflectiveClassReference_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_references_ReflectiveClassReference" + + + + // $ANTLR start "parse_org_emftext_language_java_references_SelfReference" + // Java.g:11677:1: parse_org_emftext_language_java_references_SelfReference returns [org.emftext.language.java.references.SelfReference element = null] : (a0_0= parse_org_emftext_language_java_literals_Self ) ( (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) )? ; + public final org.emftext.language.java.references.SelfReference parse_org_emftext_language_java_references_SelfReference() throws RecognitionException { + org.emftext.language.java.references.SelfReference element = null; + + int parse_org_emftext_language_java_references_SelfReference_StartIndex = input.index(); + + Token a1=null; + org.emftext.language.java.literals.Self a0_0 =null; + + org.emftext.language.java.references.Reference a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 45) ) { return element; } + + // Java.g:11680:2: ( (a0_0= parse_org_emftext_language_java_literals_Self ) ( (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) )? ) + // Java.g:11681:2: (a0_0= parse_org_emftext_language_java_literals_Self ) ( (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) )? + { + // Java.g:11681:2: (a0_0= parse_org_emftext_language_java_literals_Self ) + // Java.g:11682:3: a0_0= parse_org_emftext_language_java_literals_Self + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_Self_in_parse_org_emftext_language_java_references_SelfReference14591); + a0_0=parse_org_emftext_language_java_literals_Self(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createSelfReference(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.SELF_REFERENCE__SELF), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_43_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(32274); + addExpectedElement(32276); + addExpectedElement(32279); + addExpectedElement(32281); + addExpectedElement(32284); + addExpectedElement(32288); + addExpectedElement(32289); + addExpectedElement(32291); + addExpectedElement(32300); + addExpectedElement(32312); + addExpectedElement(32338); + } + + // Java.g:11717:2: ( (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) )? + int alt167=2; + int LA167_0 = input.LA(1); + + if ( (LA167_0==37) ) { + alt167=1; + } + switch (alt167) { + case 1 : + // Java.g:11718:3: (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) + { + // Java.g:11718:3: (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) + // Java.g:11719:4: a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) + { + a1=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_references_SelfReference14618); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createSelfReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_43_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(32363); + } + + // Java.g:11733:4: (a2_0= parse_org_emftext_language_java_references_Reference ) + // Java.g:11734:5: a2_0= parse_org_emftext_language_java_references_Reference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_references_SelfReference14644); + a2_0=parse_org_emftext_language_java_references_Reference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createSelfReference(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.SELF_REFERENCE__NEXT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_43_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(32365); + addExpectedElement(32368); + addExpectedElement(32370); + addExpectedElement(32373); + addExpectedElement(32377); + addExpectedElement(32378); + addExpectedElement(32380); + addExpectedElement(32389); + addExpectedElement(32401); + addExpectedElement(32427); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(32429); + addExpectedElement(32432); + addExpectedElement(32434); + addExpectedElement(32437); + addExpectedElement(32441); + addExpectedElement(32442); + addExpectedElement(32444); + addExpectedElement(32453); + addExpectedElement(32465); + addExpectedElement(32491); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 45, parse_org_emftext_language_java_references_SelfReference_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_references_SelfReference" + + + + // $ANTLR start "parse_org_emftext_language_java_references_PrimitiveTypeReference" + // Java.g:11792:1: parse_org_emftext_language_java_references_PrimitiveTypeReference returns [org.emftext.language.java.references.PrimitiveTypeReference element = null] : (a0_0= parse_org_emftext_language_java_types_PrimitiveType ) ( (a1_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) ) )? ; + public final org.emftext.language.java.references.PrimitiveTypeReference parse_org_emftext_language_java_references_PrimitiveTypeReference() throws RecognitionException { + org.emftext.language.java.references.PrimitiveTypeReference element = null; + + int parse_org_emftext_language_java_references_PrimitiveTypeReference_StartIndex = input.index(); + + Token a2=null; + org.emftext.language.java.types.PrimitiveType a0_0 =null; + + org.emftext.language.java.arrays.ArraySelector a1_0 =null; + + org.emftext.language.java.references.Reference a3_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 46) ) { return element; } + + // Java.g:11795:2: ( (a0_0= parse_org_emftext_language_java_types_PrimitiveType ) ( (a1_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) ) )? ) + // Java.g:11796:2: (a0_0= parse_org_emftext_language_java_types_PrimitiveType ) ( (a1_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) ) )? + { + // Java.g:11796:2: (a0_0= parse_org_emftext_language_java_types_PrimitiveType ) + // Java.g:11797:3: a0_0= parse_org_emftext_language_java_types_PrimitiveType + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_PrimitiveType_in_parse_org_emftext_language_java_references_PrimitiveTypeReference14704); + a0_0=parse_org_emftext_language_java_types_PrimitiveType(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createPrimitiveTypeReference(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.PRIMITIVE_TYPE_REFERENCE__PRIMITIVE_TYPE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_44_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(32492); + addExpectedElement(32493); + addExpectedElement(32495); + addExpectedElement(32498); + addExpectedElement(32500); + addExpectedElement(32503); + addExpectedElement(32507); + addExpectedElement(32508); + addExpectedElement(32510); + addExpectedElement(32519); + addExpectedElement(32531); + addExpectedElement(32557); + } + + // Java.g:11833:2: ( (a1_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* + loop168: + do { + int alt168=2; + int LA168_0 = input.LA(1); + + if ( (LA168_0==49) ) { + alt168=1; + } + + + switch (alt168) { + case 1 : + // Java.g:11834:3: (a1_0= parse_org_emftext_language_java_arrays_ArraySelector ) + { + // Java.g:11834:3: (a1_0= parse_org_emftext_language_java_arrays_ArraySelector ) + // Java.g:11835:4: a1_0= parse_org_emftext_language_java_arrays_ArraySelector + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArraySelector_in_parse_org_emftext_language_java_references_PrimitiveTypeReference14731); + a1_0=parse_org_emftext_language_java_arrays_ArraySelector(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createPrimitiveTypeReference(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.references.ReferencesPackage.PRIMITIVE_TYPE_REFERENCE__ARRAY_SELECTORS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_44_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + } + break; + + default : + break loop168; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(32558); + addExpectedElement(32559); + addExpectedElement(32561); + addExpectedElement(32564); + addExpectedElement(32566); + addExpectedElement(32569); + addExpectedElement(32573); + addExpectedElement(32574); + addExpectedElement(32576); + addExpectedElement(32585); + addExpectedElement(32597); + addExpectedElement(32623); + } + + // Java.g:11872:2: ( (a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) ) )? + int alt169=2; + int LA169_0 = input.LA(1); + + if ( (LA169_0==37) ) { + alt169=1; + } + switch (alt169) { + case 1 : + // Java.g:11873:3: (a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) ) + { + // Java.g:11873:3: (a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) ) + // Java.g:11874:4: a2= '.' (a3_0= parse_org_emftext_language_java_references_Reference ) + { + a2=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_references_PrimitiveTypeReference14766); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createPrimitiveTypeReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_44_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(32648); + } + + // Java.g:11888:4: (a3_0= parse_org_emftext_language_java_references_Reference ) + // Java.g:11889:5: a3_0= parse_org_emftext_language_java_references_Reference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_references_PrimitiveTypeReference14792); + a3_0=parse_org_emftext_language_java_references_Reference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createPrimitiveTypeReference(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.PRIMITIVE_TYPE_REFERENCE__NEXT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_44_0_0_2_0_0_1, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(32650); + addExpectedElement(32653); + addExpectedElement(32655); + addExpectedElement(32658); + addExpectedElement(32662); + addExpectedElement(32663); + addExpectedElement(32665); + addExpectedElement(32674); + addExpectedElement(32686); + addExpectedElement(32712); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(32714); + addExpectedElement(32717); + addExpectedElement(32719); + addExpectedElement(32722); + addExpectedElement(32726); + addExpectedElement(32727); + addExpectedElement(32729); + addExpectedElement(32738); + addExpectedElement(32750); + addExpectedElement(32776); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 46, parse_org_emftext_language_java_references_PrimitiveTypeReference_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_references_PrimitiveTypeReference" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_This" + // Java.g:11947:1: parse_org_emftext_language_java_literals_This returns [org.emftext.language.java.literals.This element = null] : a0= 'this' ; + public final org.emftext.language.java.literals.This parse_org_emftext_language_java_literals_This() throws RecognitionException { + org.emftext.language.java.literals.This element = null; + + int parse_org_emftext_language_java_literals_This_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 47) ) { return element; } + + // Java.g:11950:2: (a0= 'this' ) + // Java.g:11951:2: a0= 'this' + { + a0=(Token)match(input,97,FOLLOW_97_in_parse_org_emftext_language_java_literals_This14848); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createThis(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_45_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(32778); + addExpectedElement(32780); + addExpectedElement(32783); + addExpectedElement(32785); + addExpectedElement(32788); + addExpectedElement(32792); + addExpectedElement(32793); + addExpectedElement(32795); + addExpectedElement(32804); + addExpectedElement(32816); + addExpectedElement(32842); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 47, parse_org_emftext_language_java_literals_This_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_This" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_Super" + // Java.g:11980:1: parse_org_emftext_language_java_literals_Super returns [org.emftext.language.java.literals.Super element = null] : a0= 'super' ; + public final org.emftext.language.java.literals.Super parse_org_emftext_language_java_literals_Super() throws RecognitionException { + org.emftext.language.java.literals.Super element = null; + + int parse_org_emftext_language_java_literals_Super_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 48) ) { return element; } + + // Java.g:11983:2: (a0= 'super' ) + // Java.g:11984:2: a0= 'super' + { + a0=(Token)match(input,94,FOLLOW_94_in_parse_org_emftext_language_java_literals_Super14877); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createSuper(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_46_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(32844); + addExpectedElement(32846); + addExpectedElement(32849); + addExpectedElement(32851); + addExpectedElement(32854); + addExpectedElement(32858); + addExpectedElement(32859); + addExpectedElement(32861); + addExpectedElement(32870); + addExpectedElement(32882); + addExpectedElement(32908); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 48, parse_org_emftext_language_java_literals_Super_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_Super" + + + + // $ANTLR start "parse_org_emftext_language_java_references_StringReference" + // Java.g:12013:1: parse_org_emftext_language_java_references_StringReference returns [org.emftext.language.java.references.StringReference element = null] : (a0= STRING_LITERAL ) ( (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) )? ; + public final org.emftext.language.java.references.StringReference parse_org_emftext_language_java_references_StringReference() throws RecognitionException { + org.emftext.language.java.references.StringReference element = null; + + int parse_org_emftext_language_java_references_StringReference_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + org.emftext.language.java.references.Reference a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 49) ) { return element; } + + // Java.g:12016:2: ( (a0= STRING_LITERAL ) ( (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) )? ) + // Java.g:12017:2: (a0= STRING_LITERAL ) ( (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) )? + { + // Java.g:12017:2: (a0= STRING_LITERAL ) + // Java.g:12018:3: a0= STRING_LITERAL + { + a0=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_parse_org_emftext_language_java_references_StringReference14910); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createStringReference(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("STRING_LITERAL"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.STRING_REFERENCE__VALUE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.STRING_REFERENCE__VALUE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_47_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(32909); + addExpectedElement(32911); + addExpectedElement(32914); + addExpectedElement(32916); + addExpectedElement(32919); + addExpectedElement(32923); + addExpectedElement(32924); + addExpectedElement(32926); + addExpectedElement(32935); + addExpectedElement(32947); + addExpectedElement(32973); + } + + // Java.g:12063:2: ( (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) )? + int alt170=2; + int LA170_0 = input.LA(1); + + if ( (LA170_0==37) ) { + alt170=1; + } + switch (alt170) { + case 1 : + // Java.g:12064:3: (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) + { + // Java.g:12064:3: (a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) ) + // Java.g:12065:4: a1= '.' (a2_0= parse_org_emftext_language_java_references_Reference ) + { + a1=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_references_StringReference14940); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createStringReference(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_47_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(32998); + } + + // Java.g:12079:4: (a2_0= parse_org_emftext_language_java_references_Reference ) + // Java.g:12080:5: a2_0= parse_org_emftext_language_java_references_Reference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_references_StringReference14966); + a2_0=parse_org_emftext_language_java_references_Reference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createStringReference(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.references.ReferencesPackage.STRING_REFERENCE__NEXT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_47_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(33000); + addExpectedElement(33003); + addExpectedElement(33005); + addExpectedElement(33008); + addExpectedElement(33012); + addExpectedElement(33013); + addExpectedElement(33015); + addExpectedElement(33024); + addExpectedElement(33036); + addExpectedElement(33062); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(33064); + addExpectedElement(33067); + addExpectedElement(33069); + addExpectedElement(33072); + addExpectedElement(33076); + addExpectedElement(33077); + addExpectedElement(33079); + addExpectedElement(33088); + addExpectedElement(33100); + addExpectedElement(33126); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 49, parse_org_emftext_language_java_references_StringReference_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_references_StringReference" + + + + // $ANTLR start "parse_org_emftext_language_java_generics_QualifiedTypeArgument" + // Java.g:12138:1: parse_org_emftext_language_java_generics_QualifiedTypeArgument returns [org.emftext.language.java.generics.QualifiedTypeArgument element = null] : (a0_0= parse_org_emftext_language_java_types_TypeReference ) ( (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ; + public final org.emftext.language.java.generics.QualifiedTypeArgument parse_org_emftext_language_java_generics_QualifiedTypeArgument() throws RecognitionException { + org.emftext.language.java.generics.QualifiedTypeArgument element = null; + + int parse_org_emftext_language_java_generics_QualifiedTypeArgument_StartIndex = input.index(); + + org.emftext.language.java.types.TypeReference a0_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a1_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 50) ) { return element; } + + // Java.g:12141:2: ( (a0_0= parse_org_emftext_language_java_types_TypeReference ) ( (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) + // Java.g:12142:2: (a0_0= parse_org_emftext_language_java_types_TypeReference ) ( (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + { + // Java.g:12142:2: (a0_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:12143:3: a0_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_generics_QualifiedTypeArgument15026); + a0_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createQualifiedTypeArgument(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.generics.GenericsPackage.QUALIFIED_TYPE_ARGUMENT__TYPE_REFERENCE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_48_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33127); + addExpectedElement(33145); + } + + // Java.g:12169:2: ( (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop171: + do { + int alt171=2; + int LA171_0 = input.LA(1); + + if ( (LA171_0==49) ) { + alt171=1; + } + + + switch (alt171) { + case 1 : + // Java.g:12170:3: (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:12170:3: (a1_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:12171:4: a1_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_generics_QualifiedTypeArgument15053); + a1_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createQualifiedTypeArgument(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.generics.GenericsPackage.QUALIFIED_TYPE_ARGUMENT__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_48_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + } + break; + + default : + break loop171; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(33146); + addExpectedElement(33164); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 50, parse_org_emftext_language_java_generics_QualifiedTypeArgument_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_generics_QualifiedTypeArgument" + + + + // $ANTLR start "parse_org_emftext_language_java_generics_UnknownTypeArgument" + // Java.g:12203:1: parse_org_emftext_language_java_generics_UnknownTypeArgument returns [org.emftext.language.java.generics.UnknownTypeArgument element = null] : a0= '?' ; + public final org.emftext.language.java.generics.UnknownTypeArgument parse_org_emftext_language_java_generics_UnknownTypeArgument() throws RecognitionException { + org.emftext.language.java.generics.UnknownTypeArgument element = null; + + int parse_org_emftext_language_java_generics_UnknownTypeArgument_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 51) ) { return element; } + + // Java.g:12206:2: (a0= '?' ) + // Java.g:12207:2: a0= '?' + { + a0=(Token)match(input,47,FOLLOW_47_in_parse_org_emftext_language_java_generics_UnknownTypeArgument15094); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createUnknownTypeArgument(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_49_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(33182); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 51, parse_org_emftext_language_java_generics_UnknownTypeArgument_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_generics_UnknownTypeArgument" + + + + // $ANTLR start "parse_org_emftext_language_java_generics_ExtendsTypeArgument" + // Java.g:12226:1: parse_org_emftext_language_java_generics_ExtendsTypeArgument returns [org.emftext.language.java.generics.ExtendsTypeArgument element = null] : a0= '?' a1= 'extends' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ( (a5_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ; + public final org.emftext.language.java.generics.ExtendsTypeArgument parse_org_emftext_language_java_generics_ExtendsTypeArgument() throws RecognitionException { + org.emftext.language.java.generics.ExtendsTypeArgument element = null; + + int parse_org_emftext_language_java_generics_ExtendsTypeArgument_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + org.emftext.language.java.types.TypeReference a2_0 =null; + + org.emftext.language.java.types.TypeReference a4_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a5_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 52) ) { return element; } + + // Java.g:12229:2: (a0= '?' a1= 'extends' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ( (a5_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) + // Java.g:12230:2: a0= '?' a1= 'extends' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) )* ( (a5_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + { + a0=(Token)match(input,47,FOLLOW_47_in_parse_org_emftext_language_java_generics_ExtendsTypeArgument15123); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createExtendsTypeArgument(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_50_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33183); + } + + a1=(Token)match(input,71,FOLLOW_71_in_parse_org_emftext_language_java_generics_ExtendsTypeArgument15137); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createExtendsTypeArgument(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_50_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33195); + } + + // Java.g:12258:2: (a2_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:12259:3: a2_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_generics_ExtendsTypeArgument15155); + a2_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createExtendsTypeArgument(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.generics.GenericsPackage.EXTENDS_TYPE_ARGUMENT__EXTEND_TYPES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_50_0_0_2, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33196); + addExpectedElement(33197); + addExpectedElement(33215); + } + + // Java.g:12286:2: ( (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) )* + loop172: + do { + int alt172=2; + int LA172_0 = input.LA(1); + + if ( (LA172_0==24) ) { + alt172=1; + } + + + switch (alt172) { + case 1 : + // Java.g:12287:3: (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) + { + // Java.g:12287:3: (a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) ) + // Java.g:12288:4: a3= '&' (a4_0= parse_org_emftext_language_java_types_TypeReference ) + { + a3=(Token)match(input,24,FOLLOW_24_in_parse_org_emftext_language_java_generics_ExtendsTypeArgument15182); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createExtendsTypeArgument(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_50_0_0_3_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33227); + } + + // Java.g:12302:4: (a4_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:12303:5: a4_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_generics_ExtendsTypeArgument15208); + a4_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createExtendsTypeArgument(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.generics.GenericsPackage.EXTENDS_TYPE_ARGUMENT__EXTEND_TYPES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_50_0_0_3_0_0_1, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33228); + addExpectedElement(33229); + addExpectedElement(33247); + } + + } + + + } + break; + + default : + break loop172; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33248); + addExpectedElement(33249); + addExpectedElement(33267); + } + + // Java.g:12339:2: ( (a5_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop173: + do { + int alt173=2; + int LA173_0 = input.LA(1); + + if ( (LA173_0==49) ) { + alt173=1; + } + + + switch (alt173) { + case 1 : + // Java.g:12340:3: (a5_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:12340:3: (a5_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:12341:4: a5_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_generics_ExtendsTypeArgument15258); + a5_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createExtendsTypeArgument(); + startIncompleteElement(element); + } + if (a5_0 != null) { + if (a5_0 != null) { + Object value = a5_0; + addObjectToList(element, org.emftext.language.java.generics.GenericsPackage.EXTENDS_TYPE_ARGUMENT__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_50_0_0_4, a5_0, true); + copyLocalizationInfos(a5_0, element); + } + } + + } + + + } + break; + + default : + break loop173; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(33268); + addExpectedElement(33286); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 52, parse_org_emftext_language_java_generics_ExtendsTypeArgument_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_generics_ExtendsTypeArgument" + + + + // $ANTLR start "parse_org_emftext_language_java_generics_SuperTypeArgument" + // Java.g:12373:1: parse_org_emftext_language_java_generics_SuperTypeArgument returns [org.emftext.language.java.generics.SuperTypeArgument element = null] : a0= '?' a1= 'super' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ; + public final org.emftext.language.java.generics.SuperTypeArgument parse_org_emftext_language_java_generics_SuperTypeArgument() throws RecognitionException { + org.emftext.language.java.generics.SuperTypeArgument element = null; + + int parse_org_emftext_language_java_generics_SuperTypeArgument_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + org.emftext.language.java.types.TypeReference a2_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a3_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 53) ) { return element; } + + // Java.g:12376:2: (a0= '?' a1= 'super' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) + // Java.g:12377:2: a0= '?' a1= 'super' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + { + a0=(Token)match(input,47,FOLLOW_47_in_parse_org_emftext_language_java_generics_SuperTypeArgument15299); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createSuperTypeArgument(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_51_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33287); + } + + a1=(Token)match(input,94,FOLLOW_94_in_parse_org_emftext_language_java_generics_SuperTypeArgument15313); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createSuperTypeArgument(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_51_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33299); + } + + // Java.g:12405:2: (a2_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:12406:3: a2_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_generics_SuperTypeArgument15331); + a2_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createSuperTypeArgument(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.generics.GenericsPackage.SUPER_TYPE_ARGUMENT__SUPER_TYPE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_51_0_0_2, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33300); + addExpectedElement(33318); + } + + // Java.g:12432:2: ( (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop174: + do { + int alt174=2; + int LA174_0 = input.LA(1); + + if ( (LA174_0==49) ) { + alt174=1; + } + + + switch (alt174) { + case 1 : + // Java.g:12433:3: (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:12433:3: (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:12434:4: a3_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_generics_SuperTypeArgument15358); + a3_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.generics.GenericsFactory.eINSTANCE.createSuperTypeArgument(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + addObjectToList(element, org.emftext.language.java.generics.GenericsPackage.SUPER_TYPE_ARGUMENT__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_51_0_0_3, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + } + break; + + default : + break loop174; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(33319); + addExpectedElement(33337); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 53, parse_org_emftext_language_java_generics_SuperTypeArgument_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_generics_SuperTypeArgument" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_Assert" + // Java.g:12466:1: parse_org_emftext_language_java_statements_Assert returns [org.emftext.language.java.statements.Assert element = null] : a0= 'assert' (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a2= ':' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? a4= ';' ; + public final org.emftext.language.java.statements.Assert parse_org_emftext_language_java_statements_Assert() throws RecognitionException { + org.emftext.language.java.statements.Assert element = null; + + int parse_org_emftext_language_java_statements_Assert_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + Token a4=null; + org.emftext.language.java.expressions.AssignmentExpression a1_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a3_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 54) ) { return element; } + + // Java.g:12469:2: (a0= 'assert' (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a2= ':' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? a4= ';' ) + // Java.g:12470:2: a0= 'assert' (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a2= ':' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? a4= ';' + { + a0=(Token)match(input,57,FOLLOW_57_in_parse_org_emftext_language_java_statements_Assert15399); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createAssert(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_52_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33421); + } + + // Java.g:12484:2: (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:12485:3: a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_Assert15417); + a1_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createAssert(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.ASSERT__CONDITION), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_52_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33423); + } + + // Java.g:12510:2: ( (a2= ':' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? + int alt175=2; + int LA175_0 = input.LA(1); + + if ( (LA175_0==41) ) { + alt175=1; + } + switch (alt175) { + case 1 : + // Java.g:12511:3: (a2= ':' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + { + // Java.g:12511:3: (a2= ':' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + // Java.g:12512:4: a2= ':' (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + a2=(Token)match(input,41,FOLLOW_41_in_parse_org_emftext_language_java_statements_Assert15444); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createAssert(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_52_0_0_2_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33507); + } + + // Java.g:12526:4: (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:12527:5: a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_Assert15470); + a3_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createAssert(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.ASSERT__ERROR_MESSAGE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_52_0_0_2_0_0_1, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33508); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(33509); + } + + a4=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_statements_Assert15511); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createAssert(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_52_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(33696); + addExpectedElement(33697); + addExpectedElement(33884); + addExpectedElement(33885); + addExpectedElement(34072); + addExpectedElement(34075); + addExpectedElement(34262); + addExpectedElement(34263); + addExpectedElement(34450); + addExpectedElement(34451); + addExpectedElement(34638); + addExpectedElement(34639); + addExpectedElement(34826); + addExpectedElement(34828); + addExpectedElement(34829); + addExpectedElement(35016); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 54, parse_org_emftext_language_java_statements_Assert_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_Assert" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_Condition" + // Java.g:12593:1: parse_org_emftext_language_java_statements_Condition returns [org.emftext.language.java.statements.Condition element = null] : a0= 'if' a1= '(' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ')' (a4_0= parse_org_emftext_language_java_statements_Statement ) ( (a5= 'else' (a6_0= parse_org_emftext_language_java_statements_Statement ) ) )? ; + public final org.emftext.language.java.statements.Condition parse_org_emftext_language_java_statements_Condition() throws RecognitionException { + org.emftext.language.java.statements.Condition element = null; + + int parse_org_emftext_language_java_statements_Condition_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + Token a5=null; + org.emftext.language.java.expressions.AssignmentExpression a2_0 =null; + + org.emftext.language.java.statements.Statement a4_0 =null; + + org.emftext.language.java.statements.Statement a6_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 55) ) { return element; } + + // Java.g:12596:2: (a0= 'if' a1= '(' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ')' (a4_0= parse_org_emftext_language_java_statements_Statement ) ( (a5= 'else' (a6_0= parse_org_emftext_language_java_statements_Statement ) ) )? ) + // Java.g:12597:2: a0= 'if' a1= '(' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ')' (a4_0= parse_org_emftext_language_java_statements_Statement ) ( (a5= 'else' (a6_0= parse_org_emftext_language_java_statements_Statement ) ) )? + { + a0=(Token)match(input,76,FOLLOW_76_in_parse_org_emftext_language_java_statements_Condition15540); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCondition(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_53_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(35017); + } + + a1=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_statements_Condition15554); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCondition(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_53_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(35101); + } + + // Java.g:12625:2: (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:12626:3: a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_Condition15572); + a2_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCondition(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.CONDITION__CONDITION), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_53_0_0_3, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(35102); + } + + a3=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_statements_Condition15590); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCondition(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_53_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(35289); + } + + // Java.g:12665:2: (a4_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:12666:3: a4_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_Condition15608); + a4_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCondition(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.CONDITION__STATEMENT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_53_0_0_5, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(35290); + addExpectedElement(35477); + addExpectedElement(35478); + addExpectedElement(35665); + addExpectedElement(35666); + addExpectedElement(35853); + addExpectedElement(35855); + addExpectedElement(36042); + addExpectedElement(36043); + addExpectedElement(36230); + addExpectedElement(36231); + addExpectedElement(36418); + addExpectedElement(36419); + addExpectedElement(36606); + addExpectedElement(36608); + addExpectedElement(36609); + addExpectedElement(36796); + } + + // Java.g:12707:2: ( (a5= 'else' (a6_0= parse_org_emftext_language_java_statements_Statement ) ) )? + int alt176=2; + int LA176_0 = input.LA(1); + + if ( (LA176_0==69) ) { + int LA176_1 = input.LA(2); + + if ( (synpred177_Java()) ) { + alt176=1; + } + } + switch (alt176) { + case 1 : + // Java.g:12708:3: (a5= 'else' (a6_0= parse_org_emftext_language_java_statements_Statement ) ) + { + // Java.g:12708:3: (a5= 'else' (a6_0= parse_org_emftext_language_java_statements_Statement ) ) + // Java.g:12709:4: a5= 'else' (a6_0= parse_org_emftext_language_java_statements_Statement ) + { + a5=(Token)match(input,69,FOLLOW_69_in_parse_org_emftext_language_java_statements_Condition15635); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCondition(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_53_0_0_6_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(36983); + } + + // Java.g:12723:4: (a6_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:12724:5: a6_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_Condition15661); + a6_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCondition(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.CONDITION__ELSE_STATEMENT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_53_0_0_6_0_0_1, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(37170); + addExpectedElement(37171); + addExpectedElement(37358); + addExpectedElement(37359); + addExpectedElement(37546); + addExpectedElement(37549); + addExpectedElement(37736); + addExpectedElement(37737); + addExpectedElement(37924); + addExpectedElement(37925); + addExpectedElement(38112); + addExpectedElement(38113); + addExpectedElement(38300); + addExpectedElement(38302); + addExpectedElement(38303); + addExpectedElement(38490); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(38677); + addExpectedElement(38678); + addExpectedElement(38865); + addExpectedElement(38866); + addExpectedElement(39053); + addExpectedElement(39056); + addExpectedElement(39243); + addExpectedElement(39244); + addExpectedElement(39431); + addExpectedElement(39432); + addExpectedElement(39619); + addExpectedElement(39620); + addExpectedElement(39807); + addExpectedElement(39809); + addExpectedElement(39810); + addExpectedElement(39997); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 55, parse_org_emftext_language_java_statements_Condition_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_Condition" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_ForLoop" + // Java.g:12794:1: parse_org_emftext_language_java_statements_ForLoop returns [org.emftext.language.java.statements.ForLoop element = null] : a0= 'for' a1= '(' ( (a2_0= parse_org_emftext_language_java_statements_ForLoopInitializer ) )? a3= ';' ( (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) )? a5= ';' ( ( (a6_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a7= ',' (a8_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a9= ')' (a10_0= parse_org_emftext_language_java_statements_Statement ) ; + public final org.emftext.language.java.statements.ForLoop parse_org_emftext_language_java_statements_ForLoop() throws RecognitionException { + org.emftext.language.java.statements.ForLoop element = null; + + int parse_org_emftext_language_java_statements_ForLoop_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + Token a5=null; + Token a7=null; + Token a9=null; + org.emftext.language.java.statements.ForLoopInitializer a2_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a4_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a6_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a8_0 =null; + + org.emftext.language.java.statements.Statement a10_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 56) ) { return element; } + + // Java.g:12797:2: (a0= 'for' a1= '(' ( (a2_0= parse_org_emftext_language_java_statements_ForLoopInitializer ) )? a3= ';' ( (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) )? a5= ';' ( ( (a6_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a7= ',' (a8_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a9= ')' (a10_0= parse_org_emftext_language_java_statements_Statement ) ) + // Java.g:12798:2: a0= 'for' a1= '(' ( (a2_0= parse_org_emftext_language_java_statements_ForLoopInitializer ) )? a3= ';' ( (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) )? a5= ';' ( ( (a6_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a7= ',' (a8_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? a9= ')' (a10_0= parse_org_emftext_language_java_statements_Statement ) + { + a0=(Token)match(input,75,FOLLOW_75_in_parse_org_emftext_language_java_statements_ForLoop15717); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_54_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(39998); + } + + a1=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_statements_ForLoop15731); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_54_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(40106); + addExpectedElement(40107); + } + + // Java.g:12827:2: ( (a2_0= parse_org_emftext_language_java_statements_ForLoopInitializer ) )? + int alt177=2; + int LA177_0 = input.LA(1); + + if ( ((LA177_0 >= BOOLEAN_LITERAL && LA177_0 <= IDENTIFIER)||(LA177_0 >= OCTAL_INTEGER_LITERAL && LA177_0 <= OCTAL_LONG_LITERAL)||LA177_0==STRING_LITERAL||LA177_0==21||LA177_0==26||(LA177_0 >= 30 && LA177_0 <= 31)||(LA177_0 >= 34 && LA177_0 <= 35)||LA177_0==43||LA177_0==48||LA177_0==56||LA177_0==58||LA177_0==60||(LA177_0 >= 63 && LA177_0 <= 64)||LA177_0==68||LA177_0==72||LA177_0==74||LA177_0==80||(LA177_0 >= 82 && LA177_0 <= 85)||(LA177_0 >= 87 && LA177_0 <= 89)||(LA177_0 >= 91 && LA177_0 <= 94)||(LA177_0 >= 96 && LA177_0 <= 97)||LA177_0==100||(LA177_0 >= 102 && LA177_0 <= 103)||LA177_0==105||LA177_0==110) ) { + alt177=1; + } + switch (alt177) { + case 1 : + // Java.g:12828:3: (a2_0= parse_org_emftext_language_java_statements_ForLoopInitializer ) + { + // Java.g:12828:3: (a2_0= parse_org_emftext_language_java_statements_ForLoopInitializer ) + // Java.g:12829:4: a2_0= parse_org_emftext_language_java_statements_ForLoopInitializer + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_ForLoopInitializer_in_parse_org_emftext_language_java_statements_ForLoop15754); + a2_0=parse_org_emftext_language_java_statements_ForLoopInitializer(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForLoop(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.FOR_LOOP__INIT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_54_0_0_3, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(40108); + } + + a3=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_statements_ForLoop15780); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_54_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(40192); + addExpectedElement(40193); + } + + // Java.g:12870:2: ( (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) )? + int alt178=2; + int LA178_0 = input.LA(1); + + if ( ((LA178_0 >= BOOLEAN_LITERAL && LA178_0 <= IDENTIFIER)||(LA178_0 >= OCTAL_INTEGER_LITERAL && LA178_0 <= OCTAL_LONG_LITERAL)||LA178_0==STRING_LITERAL||LA178_0==21||LA178_0==26||(LA178_0 >= 30 && LA178_0 <= 31)||(LA178_0 >= 34 && LA178_0 <= 35)||LA178_0==43||LA178_0==48||LA178_0==58||LA178_0==60||(LA178_0 >= 63 && LA178_0 <= 64)||LA178_0==68||LA178_0==74||LA178_0==80||LA178_0==82||(LA178_0 >= 84 && LA178_0 <= 85)||LA178_0==91||LA178_0==94||LA178_0==97||LA178_0==102||LA178_0==105||LA178_0==110) ) { + alt178=1; + } + switch (alt178) { + case 1 : + // Java.g:12871:3: (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + // Java.g:12871:3: (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:12872:4: a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_ForLoop15803); + a4_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForLoop(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.FOR_LOOP__CONDITION), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_54_0_0_5, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(40194); + } + + a5=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_statements_ForLoop15829); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_54_0_0_6, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(40278); + addExpectedElement(40279); + } + + // Java.g:12913:2: ( ( (a6_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a7= ',' (a8_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) )? + int alt180=2; + int LA180_0 = input.LA(1); + + if ( ((LA180_0 >= BOOLEAN_LITERAL && LA180_0 <= IDENTIFIER)||(LA180_0 >= OCTAL_INTEGER_LITERAL && LA180_0 <= OCTAL_LONG_LITERAL)||LA180_0==STRING_LITERAL||LA180_0==21||LA180_0==26||(LA180_0 >= 30 && LA180_0 <= 31)||(LA180_0 >= 34 && LA180_0 <= 35)||LA180_0==43||LA180_0==48||LA180_0==58||LA180_0==60||(LA180_0 >= 63 && LA180_0 <= 64)||LA180_0==68||LA180_0==74||LA180_0==80||LA180_0==82||(LA180_0 >= 84 && LA180_0 <= 85)||LA180_0==91||LA180_0==94||LA180_0==97||LA180_0==102||LA180_0==105||LA180_0==110) ) { + alt180=1; + } + switch (alt180) { + case 1 : + // Java.g:12914:3: ( (a6_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a7= ',' (a8_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) + { + // Java.g:12914:3: ( (a6_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a7= ',' (a8_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) + // Java.g:12915:4: (a6_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a7= ',' (a8_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* + { + // Java.g:12915:4: (a6_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:12916:5: a6_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_ForLoop15858); + a6_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForLoop(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + addObjectToList(element, org.emftext.language.java.statements.StatementsPackage.FOR_LOOP__UPDATES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_54_0_0_7_0_0_0, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(40281); + } + + // Java.g:12941:4: ( (a7= ',' (a8_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* + loop179: + do { + int alt179=2; + int LA179_0 = input.LA(1); + + if ( (LA179_0==33) ) { + alt179=1; + } + + + switch (alt179) { + case 1 : + // Java.g:12942:5: (a7= ',' (a8_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + { + // Java.g:12942:5: (a7= ',' (a8_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + // Java.g:12943:6: a7= ',' (a8_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + a7=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_statements_ForLoop15899); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_54_0_0_7_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a7, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(40365); + } + + // Java.g:12957:6: (a8_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:12958:7: a8_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_ForLoop15933); + a8_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForLoop(); + startIncompleteElement(element); + } + if (a8_0 != null) { + if (a8_0 != null) { + Object value = a8_0; + addObjectToList(element, org.emftext.language.java.statements.StatementsPackage.FOR_LOOP__UPDATES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_54_0_0_7_0_0_1_0_0_1, a8_0, true); + copyLocalizationInfos(a8_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(40367); + } + + } + + + } + break; + + default : + break loop179; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(40369); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(40370); + } + + a9=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_statements_ForLoop16007); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_54_0_0_8, null, true); + copyLocalizationInfos((CommonToken)a9, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(40557); + } + + // Java.g:13011:2: (a10_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:13012:3: a10_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_ForLoop16025); + a10_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForLoop(); + startIncompleteElement(element); + } + if (a10_0 != null) { + if (a10_0 != null) { + Object value = a10_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.FOR_LOOP__STATEMENT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_54_0_0_9, a10_0, true); + copyLocalizationInfos(a10_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(40744); + addExpectedElement(40745); + addExpectedElement(40932); + addExpectedElement(40933); + addExpectedElement(41120); + addExpectedElement(41123); + addExpectedElement(41310); + addExpectedElement(41311); + addExpectedElement(41498); + addExpectedElement(41499); + addExpectedElement(41686); + addExpectedElement(41687); + addExpectedElement(41874); + addExpectedElement(41876); + addExpectedElement(41877); + addExpectedElement(42064); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 56, parse_org_emftext_language_java_statements_ForLoop_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_ForLoop" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_ForEachLoop" + // Java.g:13057:1: parse_org_emftext_language_java_statements_ForEachLoop returns [org.emftext.language.java.statements.ForEachLoop element = null] : a0= 'for' a1= '(' (a2_0= parse_org_emftext_language_java_parameters_OrdinaryParameter ) a3= ':' (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a5= ')' (a6_0= parse_org_emftext_language_java_statements_Statement ) ; + public final org.emftext.language.java.statements.ForEachLoop parse_org_emftext_language_java_statements_ForEachLoop() throws RecognitionException { + org.emftext.language.java.statements.ForEachLoop element = null; + + int parse_org_emftext_language_java_statements_ForEachLoop_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + Token a5=null; + org.emftext.language.java.parameters.OrdinaryParameter a2_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a4_0 =null; + + org.emftext.language.java.statements.Statement a6_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 57) ) { return element; } + + // Java.g:13060:2: (a0= 'for' a1= '(' (a2_0= parse_org_emftext_language_java_parameters_OrdinaryParameter ) a3= ':' (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a5= ')' (a6_0= parse_org_emftext_language_java_statements_Statement ) ) + // Java.g:13061:2: a0= 'for' a1= '(' (a2_0= parse_org_emftext_language_java_parameters_OrdinaryParameter ) a3= ':' (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a5= ')' (a6_0= parse_org_emftext_language_java_statements_Statement ) + { + a0=(Token)match(input,75,FOLLOW_75_in_parse_org_emftext_language_java_statements_ForEachLoop16058); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForEachLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_55_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(42065); + } + + a1=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_statements_ForEachLoop16072); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForEachLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_55_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(42089); + } + + // Java.g:13089:2: (a2_0= parse_org_emftext_language_java_parameters_OrdinaryParameter ) + // Java.g:13090:3: a2_0= parse_org_emftext_language_java_parameters_OrdinaryParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_OrdinaryParameter_in_parse_org_emftext_language_java_statements_ForEachLoop16090); + a2_0=parse_org_emftext_language_java_parameters_OrdinaryParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForEachLoop(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.FOR_EACH_LOOP__NEXT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_55_0_0_3, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(42090); + } + + a3=(Token)match(input,41,FOLLOW_41_in_parse_org_emftext_language_java_statements_ForEachLoop16108); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForEachLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_55_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(42174); + } + + // Java.g:13129:2: (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:13130:3: a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_ForEachLoop16126); + a4_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForEachLoop(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.FOR_EACH_LOOP__COLLECTION), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_55_0_0_5, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(42175); + } + + a5=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_statements_ForEachLoop16144); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForEachLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_55_0_0_6, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(42362); + } + + // Java.g:13169:2: (a6_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:13170:3: a6_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_ForEachLoop16162); + a6_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createForEachLoop(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.FOR_EACH_LOOP__STATEMENT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_55_0_0_7, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(42549); + addExpectedElement(42550); + addExpectedElement(42737); + addExpectedElement(42738); + addExpectedElement(42925); + addExpectedElement(42928); + addExpectedElement(43115); + addExpectedElement(43116); + addExpectedElement(43303); + addExpectedElement(43304); + addExpectedElement(43491); + addExpectedElement(43492); + addExpectedElement(43679); + addExpectedElement(43681); + addExpectedElement(43682); + addExpectedElement(43869); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 57, parse_org_emftext_language_java_statements_ForEachLoop_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_ForEachLoop" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_WhileLoop" + // Java.g:13215:1: parse_org_emftext_language_java_statements_WhileLoop returns [org.emftext.language.java.statements.WhileLoop element = null] : (a0= 'while' a1= '(' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ')' (a4_0= parse_org_emftext_language_java_statements_Statement ) |c0= parse_org_emftext_language_java_statements_DoWhileLoop ); + public final org.emftext.language.java.statements.WhileLoop parse_org_emftext_language_java_statements_WhileLoop() throws RecognitionException { + org.emftext.language.java.statements.WhileLoop element = null; + + int parse_org_emftext_language_java_statements_WhileLoop_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + org.emftext.language.java.expressions.AssignmentExpression a2_0 =null; + + org.emftext.language.java.statements.Statement a4_0 =null; + + org.emftext.language.java.statements.DoWhileLoop c0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 58) ) { return element; } + + // Java.g:13218:2: (a0= 'while' a1= '(' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ')' (a4_0= parse_org_emftext_language_java_statements_Statement ) |c0= parse_org_emftext_language_java_statements_DoWhileLoop ) + int alt181=2; + int LA181_0 = input.LA(1); + + if ( (LA181_0==104) ) { + alt181=1; + } + else if ( (LA181_0==67) ) { + alt181=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 181, 0, input); + + throw nvae; + + } + switch (alt181) { + case 1 : + // Java.g:13219:2: a0= 'while' a1= '(' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ')' (a4_0= parse_org_emftext_language_java_statements_Statement ) + { + a0=(Token)match(input,104,FOLLOW_104_in_parse_org_emftext_language_java_statements_WhileLoop16195); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createWhileLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_56_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(43870); + } + + a1=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_statements_WhileLoop16209); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createWhileLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_56_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(43954); + } + + // Java.g:13247:2: (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:13248:3: a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_WhileLoop16227); + a2_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createWhileLoop(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.WHILE_LOOP__CONDITION), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_56_0_0_3, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(43955); + } + + a3=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_statements_WhileLoop16245); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createWhileLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_56_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(44142); + } + + // Java.g:13287:2: (a4_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:13288:3: a4_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_WhileLoop16263); + a4_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createWhileLoop(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.WHILE_LOOP__STATEMENT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_56_0_0_5, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(44329); + addExpectedElement(44330); + addExpectedElement(44517); + addExpectedElement(44518); + addExpectedElement(44705); + addExpectedElement(44708); + addExpectedElement(44895); + addExpectedElement(44896); + addExpectedElement(45083); + addExpectedElement(45084); + addExpectedElement(45271); + addExpectedElement(45272); + addExpectedElement(45459); + addExpectedElement(45461); + addExpectedElement(45462); + addExpectedElement(45649); + } + + } + break; + case 2 : + // Java.g:13333:2: c0= parse_org_emftext_language_java_statements_DoWhileLoop + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_DoWhileLoop_in_parse_org_emftext_language_java_statements_WhileLoop16286); + c0=parse_org_emftext_language_java_statements_DoWhileLoop(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 58, parse_org_emftext_language_java_statements_WhileLoop_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_WhileLoop" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_DoWhileLoop" + // Java.g:13337:1: parse_org_emftext_language_java_statements_DoWhileLoop returns [org.emftext.language.java.statements.DoWhileLoop element = null] : a0= 'do' (a1_0= parse_org_emftext_language_java_statements_Statement ) a2= 'while' a3= '(' (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a5= ')' a6= ';' ; + public final org.emftext.language.java.statements.DoWhileLoop parse_org_emftext_language_java_statements_DoWhileLoop() throws RecognitionException { + org.emftext.language.java.statements.DoWhileLoop element = null; + + int parse_org_emftext_language_java_statements_DoWhileLoop_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + Token a3=null; + Token a5=null; + Token a6=null; + org.emftext.language.java.statements.Statement a1_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a4_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 59) ) { return element; } + + // Java.g:13340:2: (a0= 'do' (a1_0= parse_org_emftext_language_java_statements_Statement ) a2= 'while' a3= '(' (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a5= ')' a6= ';' ) + // Java.g:13341:2: a0= 'do' (a1_0= parse_org_emftext_language_java_statements_Statement ) a2= 'while' a3= '(' (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a5= ')' a6= ';' + { + a0=(Token)match(input,67,FOLLOW_67_in_parse_org_emftext_language_java_statements_DoWhileLoop16311); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createDoWhileLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_57_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(45836); + } + + // Java.g:13355:2: (a1_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:13356:3: a1_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_DoWhileLoop16329); + a1_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createDoWhileLoop(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.DO_WHILE_LOOP__STATEMENT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_57_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(45837); + } + + a2=(Token)match(input,104,FOLLOW_104_in_parse_org_emftext_language_java_statements_DoWhileLoop16347); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createDoWhileLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_57_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(45838); + } + + a3=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_statements_DoWhileLoop16361); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createDoWhileLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_57_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(45922); + } + + // Java.g:13409:2: (a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:13410:3: a4_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_DoWhileLoop16379); + a4_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createDoWhileLoop(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.DO_WHILE_LOOP__CONDITION), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_57_0_0_5, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(45923); + } + + a5=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_statements_DoWhileLoop16397); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createDoWhileLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_57_0_0_6, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(45924); + } + + a6=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_statements_DoWhileLoop16411); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createDoWhileLoop(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_57_0_0_7, null, true); + copyLocalizationInfos((CommonToken)a6, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(46111); + addExpectedElement(46112); + addExpectedElement(46299); + addExpectedElement(46300); + addExpectedElement(46487); + addExpectedElement(46490); + addExpectedElement(46677); + addExpectedElement(46678); + addExpectedElement(46865); + addExpectedElement(46866); + addExpectedElement(47053); + addExpectedElement(47054); + addExpectedElement(47241); + addExpectedElement(47243); + addExpectedElement(47244); + addExpectedElement(47431); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 59, parse_org_emftext_language_java_statements_DoWhileLoop_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_DoWhileLoop" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_EmptyStatement" + // Java.g:13483:1: parse_org_emftext_language_java_statements_EmptyStatement returns [org.emftext.language.java.statements.EmptyStatement element = null] : a0= ';' ; + public final org.emftext.language.java.statements.EmptyStatement parse_org_emftext_language_java_statements_EmptyStatement() throws RecognitionException { + org.emftext.language.java.statements.EmptyStatement element = null; + + int parse_org_emftext_language_java_statements_EmptyStatement_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 60) ) { return element; } + + // Java.g:13486:2: (a0= ';' ) + // Java.g:13487:2: a0= ';' + { + a0=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_statements_EmptyStatement16440); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createEmptyStatement(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_58_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(47618); + addExpectedElement(47619); + addExpectedElement(47806); + addExpectedElement(47807); + addExpectedElement(47994); + addExpectedElement(47997); + addExpectedElement(48184); + addExpectedElement(48185); + addExpectedElement(48372); + addExpectedElement(48373); + addExpectedElement(48560); + addExpectedElement(48561); + addExpectedElement(48748); + addExpectedElement(48750); + addExpectedElement(48751); + addExpectedElement(48938); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 60, parse_org_emftext_language_java_statements_EmptyStatement_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_EmptyStatement" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_SynchronizedBlock" + // Java.g:13521:1: parse_org_emftext_language_java_statements_SynchronizedBlock returns [org.emftext.language.java.statements.SynchronizedBlock element = null] : a0= 'synchronized' a1= '(' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ')' a4= '{' ( ( (a5_0= parse_org_emftext_language_java_statements_Statement ) ) )* a6= '}' ; + public final org.emftext.language.java.statements.SynchronizedBlock parse_org_emftext_language_java_statements_SynchronizedBlock() throws RecognitionException { + org.emftext.language.java.statements.SynchronizedBlock element = null; + + int parse_org_emftext_language_java_statements_SynchronizedBlock_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + Token a4=null; + Token a6=null; + org.emftext.language.java.expressions.AssignmentExpression a2_0 =null; + + org.emftext.language.java.statements.Statement a5_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 61) ) { return element; } + + // Java.g:13524:2: (a0= 'synchronized' a1= '(' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ')' a4= '{' ( ( (a5_0= parse_org_emftext_language_java_statements_Statement ) ) )* a6= '}' ) + // Java.g:13525:2: a0= 'synchronized' a1= '(' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ')' a4= '{' ( ( (a5_0= parse_org_emftext_language_java_statements_Statement ) ) )* a6= '}' + { + a0=(Token)match(input,96,FOLLOW_96_in_parse_org_emftext_language_java_statements_SynchronizedBlock16469); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSynchronizedBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_59_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(48939); + } + + a1=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_statements_SynchronizedBlock16483); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSynchronizedBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_59_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(49023); + } + + // Java.g:13553:2: (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:13554:3: a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_SynchronizedBlock16501); + a2_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSynchronizedBlock(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.SYNCHRONIZED_BLOCK__LOCK_PROVIDER), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_59_0_0_3, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(49024); + } + + a3=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_statements_SynchronizedBlock16519); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSynchronizedBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_59_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(49025); + } + + a4=(Token)match(input,105,FOLLOW_105_in_parse_org_emftext_language_java_statements_SynchronizedBlock16533); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSynchronizedBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_59_0_0_6, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(49212); + addExpectedElement(49213); + } + + // Java.g:13608:2: ( ( (a5_0= parse_org_emftext_language_java_statements_Statement ) ) )* + loop182: + do { + int alt182=2; + int LA182_0 = input.LA(1); + + if ( ((LA182_0 >= BOOLEAN_LITERAL && LA182_0 <= IDENTIFIER)||(LA182_0 >= OCTAL_INTEGER_LITERAL && LA182_0 <= OCTAL_LONG_LITERAL)||LA182_0==STRING_LITERAL||LA182_0==21||LA182_0==26||(LA182_0 >= 30 && LA182_0 <= 31)||(LA182_0 >= 34 && LA182_0 <= 35)||(LA182_0 >= 42 && LA182_0 <= 43)||LA182_0==48||(LA182_0 >= 56 && LA182_0 <= 60)||(LA182_0 >= 63 && LA182_0 <= 65)||(LA182_0 >= 67 && LA182_0 <= 68)||LA182_0==70||LA182_0==72||(LA182_0 >= 74 && LA182_0 <= 76)||(LA182_0 >= 80 && LA182_0 <= 85)||(LA182_0 >= 87 && LA182_0 <= 98)||(LA182_0 >= 100 && LA182_0 <= 105)||LA182_0==110) ) { + alt182=1; + } + + + switch (alt182) { + case 1 : + // Java.g:13609:3: ( (a5_0= parse_org_emftext_language_java_statements_Statement ) ) + { + // Java.g:13609:3: ( (a5_0= parse_org_emftext_language_java_statements_Statement ) ) + // Java.g:13610:4: (a5_0= parse_org_emftext_language_java_statements_Statement ) + { + // Java.g:13610:4: (a5_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:13611:5: a5_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_SynchronizedBlock16562); + a5_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSynchronizedBlock(); + startIncompleteElement(element); + } + if (a5_0 != null) { + if (a5_0 != null) { + Object value = a5_0; + addObjectToList(element, org.emftext.language.java.statements.StatementsPackage.SYNCHRONIZED_BLOCK__STATEMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_59_0_0_7_0_0_1, a5_0, true); + copyLocalizationInfos(a5_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(49400); + addExpectedElement(49401); + } + + } + + + } + break; + + default : + break loop182; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(49588); + addExpectedElement(49589); + } + + a6=(Token)match(input,109,FOLLOW_109_in_parse_org_emftext_language_java_statements_SynchronizedBlock16603); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSynchronizedBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_59_0_0_9, null, true); + copyLocalizationInfos((CommonToken)a6, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(49776); + addExpectedElement(49777); + addExpectedElement(49964); + addExpectedElement(49965); + addExpectedElement(50152); + addExpectedElement(50155); + addExpectedElement(50342); + addExpectedElement(50343); + addExpectedElement(50530); + addExpectedElement(50531); + addExpectedElement(50718); + addExpectedElement(50719); + addExpectedElement(50906); + addExpectedElement(50908); + addExpectedElement(50909); + addExpectedElement(51096); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 61, parse_org_emftext_language_java_statements_SynchronizedBlock_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_SynchronizedBlock" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_TryBlock" + // Java.g:13679:1: parse_org_emftext_language_java_statements_TryBlock returns [org.emftext.language.java.statements.TryBlock element = null] : a0= 'try' a1= '{' ( ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) )* a3= '}' ( (a4_0= parse_org_emftext_language_java_statements_CatchBlock ) )* ( (a5= 'finally' (a6_0= parse_org_emftext_language_java_statements_Block ) ) )? ; + public final org.emftext.language.java.statements.TryBlock parse_org_emftext_language_java_statements_TryBlock() throws RecognitionException { + org.emftext.language.java.statements.TryBlock element = null; + + int parse_org_emftext_language_java_statements_TryBlock_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + Token a5=null; + org.emftext.language.java.statements.Statement a2_0 =null; + + org.emftext.language.java.statements.CatchBlock a4_0 =null; + + org.emftext.language.java.statements.Block a6_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 62) ) { return element; } + + // Java.g:13682:2: (a0= 'try' a1= '{' ( ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) )* a3= '}' ( (a4_0= parse_org_emftext_language_java_statements_CatchBlock ) )* ( (a5= 'finally' (a6_0= parse_org_emftext_language_java_statements_Block ) ) )? ) + // Java.g:13683:2: a0= 'try' a1= '{' ( ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) )* a3= '}' ( (a4_0= parse_org_emftext_language_java_statements_CatchBlock ) )* ( (a5= 'finally' (a6_0= parse_org_emftext_language_java_statements_Block ) ) )? + { + a0=(Token)match(input,101,FOLLOW_101_in_parse_org_emftext_language_java_statements_TryBlock16632); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createTryBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_60_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(51097); + } + + a1=(Token)match(input,105,FOLLOW_105_in_parse_org_emftext_language_java_statements_TryBlock16646); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createTryBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_60_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(51284); + addExpectedElement(51285); + } + + // Java.g:13712:2: ( ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) )* + loop183: + do { + int alt183=2; + int LA183_0 = input.LA(1); + + if ( ((LA183_0 >= BOOLEAN_LITERAL && LA183_0 <= IDENTIFIER)||(LA183_0 >= OCTAL_INTEGER_LITERAL && LA183_0 <= OCTAL_LONG_LITERAL)||LA183_0==STRING_LITERAL||LA183_0==21||LA183_0==26||(LA183_0 >= 30 && LA183_0 <= 31)||(LA183_0 >= 34 && LA183_0 <= 35)||(LA183_0 >= 42 && LA183_0 <= 43)||LA183_0==48||(LA183_0 >= 56 && LA183_0 <= 60)||(LA183_0 >= 63 && LA183_0 <= 65)||(LA183_0 >= 67 && LA183_0 <= 68)||LA183_0==70||LA183_0==72||(LA183_0 >= 74 && LA183_0 <= 76)||(LA183_0 >= 80 && LA183_0 <= 85)||(LA183_0 >= 87 && LA183_0 <= 98)||(LA183_0 >= 100 && LA183_0 <= 105)||LA183_0==110) ) { + alt183=1; + } + + + switch (alt183) { + case 1 : + // Java.g:13713:3: ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) + { + // Java.g:13713:3: ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) + // Java.g:13714:4: (a2_0= parse_org_emftext_language_java_statements_Statement ) + { + // Java.g:13714:4: (a2_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:13715:5: a2_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_TryBlock16675); + a2_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createTryBlock(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.statements.StatementsPackage.TRY_BLOCK__STATEMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_60_0_0_3_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(51472); + addExpectedElement(51473); + } + + } + + + } + break; + + default : + break loop183; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(51660); + addExpectedElement(51661); + } + + a3=(Token)match(input,109,FOLLOW_109_in_parse_org_emftext_language_java_statements_TryBlock16716); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createTryBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_60_0_0_5, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(51662); + addExpectedElement(51663); + addExpectedElement(51850); + addExpectedElement(51851); + addExpectedElement(52038); + addExpectedElement(52039); + addExpectedElement(52226); + addExpectedElement(52229); + addExpectedElement(52416); + addExpectedElement(52417); + addExpectedElement(52604); + addExpectedElement(52605); + addExpectedElement(52792); + addExpectedElement(52793); + addExpectedElement(52980); + addExpectedElement(52982); + addExpectedElement(52983); + addExpectedElement(53170); + } + + // Java.g:13780:2: ( (a4_0= parse_org_emftext_language_java_statements_CatchBlock ) )* + loop184: + do { + int alt184=2; + int LA184_0 = input.LA(1); + + if ( (LA184_0==62) ) { + alt184=1; + } + + + switch (alt184) { + case 1 : + // Java.g:13781:3: (a4_0= parse_org_emftext_language_java_statements_CatchBlock ) + { + // Java.g:13781:3: (a4_0= parse_org_emftext_language_java_statements_CatchBlock ) + // Java.g:13782:4: a4_0= parse_org_emftext_language_java_statements_CatchBlock + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_CatchBlock_in_parse_org_emftext_language_java_statements_TryBlock16739); + a4_0=parse_org_emftext_language_java_statements_CatchBlock(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createTryBlock(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + addObjectToList(element, org.emftext.language.java.statements.StatementsPackage.TRY_BLOCK__CATCHE_BLOCKS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_60_0_0_6, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + } + break; + + default : + break loop184; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(53171); + addExpectedElement(53172); + addExpectedElement(53359); + addExpectedElement(53360); + addExpectedElement(53547); + addExpectedElement(53548); + addExpectedElement(53735); + addExpectedElement(53738); + addExpectedElement(53925); + addExpectedElement(53926); + addExpectedElement(54113); + addExpectedElement(54114); + addExpectedElement(54301); + addExpectedElement(54302); + addExpectedElement(54489); + addExpectedElement(54491); + addExpectedElement(54492); + addExpectedElement(54679); + } + + // Java.g:13825:2: ( (a5= 'finally' (a6_0= parse_org_emftext_language_java_statements_Block ) ) )? + int alt185=2; + int LA185_0 = input.LA(1); + + if ( (LA185_0==73) ) { + alt185=1; + } + switch (alt185) { + case 1 : + // Java.g:13826:3: (a5= 'finally' (a6_0= parse_org_emftext_language_java_statements_Block ) ) + { + // Java.g:13826:3: (a5= 'finally' (a6_0= parse_org_emftext_language_java_statements_Block ) ) + // Java.g:13827:4: a5= 'finally' (a6_0= parse_org_emftext_language_java_statements_Block ) + { + a5=(Token)match(input,73,FOLLOW_73_in_parse_org_emftext_language_java_statements_TryBlock16774); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createTryBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_60_0_0_7_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a5, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(54691); + } + + // Java.g:13841:4: (a6_0= parse_org_emftext_language_java_statements_Block ) + // Java.g:13842:5: a6_0= parse_org_emftext_language_java_statements_Block + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Block_in_parse_org_emftext_language_java_statements_TryBlock16800); + a6_0=parse_org_emftext_language_java_statements_Block(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createTryBlock(); + startIncompleteElement(element); + } + if (a6_0 != null) { + if (a6_0 != null) { + Object value = a6_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.TRY_BLOCK__FINALLY_BLOCK), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_60_0_0_7_0_0_1, a6_0, true); + copyLocalizationInfos(a6_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(54878); + addExpectedElement(54879); + addExpectedElement(55066); + addExpectedElement(55067); + addExpectedElement(55254); + addExpectedElement(55257); + addExpectedElement(55444); + addExpectedElement(55445); + addExpectedElement(55632); + addExpectedElement(55633); + addExpectedElement(55820); + addExpectedElement(55821); + addExpectedElement(56008); + addExpectedElement(56010); + addExpectedElement(56011); + addExpectedElement(56198); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(56385); + addExpectedElement(56386); + addExpectedElement(56573); + addExpectedElement(56574); + addExpectedElement(56761); + addExpectedElement(56764); + addExpectedElement(56951); + addExpectedElement(56952); + addExpectedElement(57139); + addExpectedElement(57140); + addExpectedElement(57327); + addExpectedElement(57328); + addExpectedElement(57515); + addExpectedElement(57517); + addExpectedElement(57518); + addExpectedElement(57705); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 62, parse_org_emftext_language_java_statements_TryBlock_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_TryBlock" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_CatchBlock" + // Java.g:13912:1: parse_org_emftext_language_java_statements_CatchBlock returns [org.emftext.language.java.statements.CatchBlock element = null] : a0= 'catch' a1= '(' (a2_0= parse_org_emftext_language_java_parameters_OrdinaryParameter ) a3= ')' a4= '{' ( ( (a5_0= parse_org_emftext_language_java_statements_Statement ) ) )* a6= '}' ; + public final org.emftext.language.java.statements.CatchBlock parse_org_emftext_language_java_statements_CatchBlock() throws RecognitionException { + org.emftext.language.java.statements.CatchBlock element = null; + + int parse_org_emftext_language_java_statements_CatchBlock_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + Token a4=null; + Token a6=null; + org.emftext.language.java.parameters.OrdinaryParameter a2_0 =null; + + org.emftext.language.java.statements.Statement a5_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 63) ) { return element; } + + // Java.g:13915:2: (a0= 'catch' a1= '(' (a2_0= parse_org_emftext_language_java_parameters_OrdinaryParameter ) a3= ')' a4= '{' ( ( (a5_0= parse_org_emftext_language_java_statements_Statement ) ) )* a6= '}' ) + // Java.g:13916:2: a0= 'catch' a1= '(' (a2_0= parse_org_emftext_language_java_parameters_OrdinaryParameter ) a3= ')' a4= '{' ( ( (a5_0= parse_org_emftext_language_java_statements_Statement ) ) )* a6= '}' + { + a0=(Token)match(input,62,FOLLOW_62_in_parse_org_emftext_language_java_statements_CatchBlock16856); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCatchBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_61_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(57706); + } + + a1=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_statements_CatchBlock16870); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCatchBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_61_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(57730); + } + + // Java.g:13944:2: (a2_0= parse_org_emftext_language_java_parameters_OrdinaryParameter ) + // Java.g:13945:3: a2_0= parse_org_emftext_language_java_parameters_OrdinaryParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_OrdinaryParameter_in_parse_org_emftext_language_java_statements_CatchBlock16888); + a2_0=parse_org_emftext_language_java_parameters_OrdinaryParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCatchBlock(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.CATCH_BLOCK__PARAMETER), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_61_0_0_3, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(57731); + } + + a3=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_statements_CatchBlock16906); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCatchBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_61_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(57732); + } + + a4=(Token)match(input,105,FOLLOW_105_in_parse_org_emftext_language_java_statements_CatchBlock16920); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCatchBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_61_0_0_6, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(57919); + addExpectedElement(57920); + } + + // Java.g:13999:2: ( ( (a5_0= parse_org_emftext_language_java_statements_Statement ) ) )* + loop186: + do { + int alt186=2; + int LA186_0 = input.LA(1); + + if ( ((LA186_0 >= BOOLEAN_LITERAL && LA186_0 <= IDENTIFIER)||(LA186_0 >= OCTAL_INTEGER_LITERAL && LA186_0 <= OCTAL_LONG_LITERAL)||LA186_0==STRING_LITERAL||LA186_0==21||LA186_0==26||(LA186_0 >= 30 && LA186_0 <= 31)||(LA186_0 >= 34 && LA186_0 <= 35)||(LA186_0 >= 42 && LA186_0 <= 43)||LA186_0==48||(LA186_0 >= 56 && LA186_0 <= 60)||(LA186_0 >= 63 && LA186_0 <= 65)||(LA186_0 >= 67 && LA186_0 <= 68)||LA186_0==70||LA186_0==72||(LA186_0 >= 74 && LA186_0 <= 76)||(LA186_0 >= 80 && LA186_0 <= 85)||(LA186_0 >= 87 && LA186_0 <= 98)||(LA186_0 >= 100 && LA186_0 <= 105)||LA186_0==110) ) { + alt186=1; + } + + + switch (alt186) { + case 1 : + // Java.g:14000:3: ( (a5_0= parse_org_emftext_language_java_statements_Statement ) ) + { + // Java.g:14000:3: ( (a5_0= parse_org_emftext_language_java_statements_Statement ) ) + // Java.g:14001:4: (a5_0= parse_org_emftext_language_java_statements_Statement ) + { + // Java.g:14001:4: (a5_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:14002:5: a5_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_CatchBlock16949); + a5_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCatchBlock(); + startIncompleteElement(element); + } + if (a5_0 != null) { + if (a5_0 != null) { + Object value = a5_0; + addObjectToList(element, org.emftext.language.java.statements.StatementsPackage.CATCH_BLOCK__STATEMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_61_0_0_7_0_0_1, a5_0, true); + copyLocalizationInfos(a5_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(58107); + addExpectedElement(58108); + } + + } + + + } + break; + + default : + break loop186; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(58295); + addExpectedElement(58296); + } + + a6=(Token)match(input,109,FOLLOW_109_in_parse_org_emftext_language_java_statements_CatchBlock16990); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createCatchBlock(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_61_0_0_9, null, true); + copyLocalizationInfos((CommonToken)a6, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(58297); + addExpectedElement(58298); + addExpectedElement(58485); + addExpectedElement(58486); + addExpectedElement(58673); + addExpectedElement(58674); + addExpectedElement(58861); + addExpectedElement(58864); + addExpectedElement(59051); + addExpectedElement(59052); + addExpectedElement(59239); + addExpectedElement(59240); + addExpectedElement(59427); + addExpectedElement(59429); + addExpectedElement(59430); + addExpectedElement(59617); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 63, parse_org_emftext_language_java_statements_CatchBlock_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_CatchBlock" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_Switch" + // Java.g:14070:1: parse_org_emftext_language_java_statements_Switch returns [org.emftext.language.java.statements.Switch element = null] : a0= 'switch' a1= '(' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ')' a4= '{' ( ( (a5_0= parse_org_emftext_language_java_statements_SwitchCase ) )* ) a6= '}' ; + public final org.emftext.language.java.statements.Switch parse_org_emftext_language_java_statements_Switch() throws RecognitionException { + org.emftext.language.java.statements.Switch element = null; + + int parse_org_emftext_language_java_statements_Switch_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a3=null; + Token a4=null; + Token a6=null; + org.emftext.language.java.expressions.AssignmentExpression a2_0 =null; + + org.emftext.language.java.statements.SwitchCase a5_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 64) ) { return element; } + + // Java.g:14073:2: (a0= 'switch' a1= '(' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ')' a4= '{' ( ( (a5_0= parse_org_emftext_language_java_statements_SwitchCase ) )* ) a6= '}' ) + // Java.g:14074:2: a0= 'switch' a1= '(' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ')' a4= '{' ( ( (a5_0= parse_org_emftext_language_java_statements_SwitchCase ) )* ) a6= '}' + { + a0=(Token)match(input,95,FOLLOW_95_in_parse_org_emftext_language_java_statements_Switch17019); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSwitch(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_62_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(59618); + } + + a1=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_statements_Switch17033); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSwitch(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_62_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(59702); + } + + // Java.g:14102:2: (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:14103:3: a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_Switch17051); + a2_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSwitch(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.SWITCH__VARIABLE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_62_0_0_3, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(59703); + } + + a3=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_statements_Switch17069); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSwitch(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_62_0_0_4, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(59704); + } + + a4=(Token)match(input,105,FOLLOW_105_in_parse_org_emftext_language_java_statements_Switch17083); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSwitch(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_62_0_0_6, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(59706); + addExpectedElement(59707); + } + + // Java.g:14157:2: ( ( (a5_0= parse_org_emftext_language_java_statements_SwitchCase ) )* ) + // Java.g:14158:3: ( (a5_0= parse_org_emftext_language_java_statements_SwitchCase ) )* + { + // Java.g:14158:3: ( (a5_0= parse_org_emftext_language_java_statements_SwitchCase ) )* + loop187: + do { + int alt187=2; + int LA187_0 = input.LA(1); + + if ( (LA187_0==61||LA187_0==66) ) { + alt187=1; + } + + + switch (alt187) { + case 1 : + // Java.g:14159:4: (a5_0= parse_org_emftext_language_java_statements_SwitchCase ) + { + // Java.g:14159:4: (a5_0= parse_org_emftext_language_java_statements_SwitchCase ) + // Java.g:14160:5: a5_0= parse_org_emftext_language_java_statements_SwitchCase + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_SwitchCase_in_parse_org_emftext_language_java_statements_Switch17112); + a5_0=parse_org_emftext_language_java_statements_SwitchCase(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSwitch(); + startIncompleteElement(element); + } + if (a5_0 != null) { + if (a5_0 != null) { + Object value = a5_0; + addObjectToList(element, org.emftext.language.java.statements.StatementsPackage.SWITCH__CASES, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_62_0_0_7_0_0_0, a5_0, true); + copyLocalizationInfos(a5_0, element); + } + } + + } + + + } + break; + + default : + break loop187; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(59709); + addExpectedElement(59710); + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(59711); + } + + a6=(Token)match(input,109,FOLLOW_109_in_parse_org_emftext_language_java_statements_Switch17152); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createSwitch(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_62_0_0_8, null, true); + copyLocalizationInfos((CommonToken)a6, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(59898); + addExpectedElement(59899); + addExpectedElement(60086); + addExpectedElement(60087); + addExpectedElement(60274); + addExpectedElement(60277); + addExpectedElement(60464); + addExpectedElement(60465); + addExpectedElement(60652); + addExpectedElement(60653); + addExpectedElement(60840); + addExpectedElement(60841); + addExpectedElement(61028); + addExpectedElement(61030); + addExpectedElement(61031); + addExpectedElement(61218); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 64, parse_org_emftext_language_java_statements_Switch_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_Switch" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_NormalSwitchCase" + // Java.g:14227:1: parse_org_emftext_language_java_statements_NormalSwitchCase returns [org.emftext.language.java.statements.NormalSwitchCase element = null] : a0= 'case' (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a2= ':' ( ( (a3_0= parse_org_emftext_language_java_statements_Statement ) ) )* ; + public final org.emftext.language.java.statements.NormalSwitchCase parse_org_emftext_language_java_statements_NormalSwitchCase() throws RecognitionException { + org.emftext.language.java.statements.NormalSwitchCase element = null; + + int parse_org_emftext_language_java_statements_NormalSwitchCase_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + org.emftext.language.java.expressions.AssignmentExpression a1_0 =null; + + org.emftext.language.java.statements.Statement a3_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 65) ) { return element; } + + // Java.g:14230:2: (a0= 'case' (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a2= ':' ( ( (a3_0= parse_org_emftext_language_java_statements_Statement ) ) )* ) + // Java.g:14231:2: a0= 'case' (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a2= ':' ( ( (a3_0= parse_org_emftext_language_java_statements_Statement ) ) )* + { + a0=(Token)match(input,61,FOLLOW_61_in_parse_org_emftext_language_java_statements_NormalSwitchCase17181); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createNormalSwitchCase(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_63_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(61302); + } + + // Java.g:14245:2: (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:14246:3: a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_NormalSwitchCase17199); + a1_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createNormalSwitchCase(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.NORMAL_SWITCH_CASE__CONDITION), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_63_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(61303); + } + + a2=(Token)match(input,41,FOLLOW_41_in_parse_org_emftext_language_java_statements_NormalSwitchCase17217); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createNormalSwitchCase(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_63_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(61490); + addExpectedElement(61492); + addExpectedElement(61493); + } + + // Java.g:14287:2: ( ( (a3_0= parse_org_emftext_language_java_statements_Statement ) ) )* + loop188: + do { + int alt188=2; + int LA188_0 = input.LA(1); + + if ( ((LA188_0 >= BOOLEAN_LITERAL && LA188_0 <= IDENTIFIER)||(LA188_0 >= OCTAL_INTEGER_LITERAL && LA188_0 <= OCTAL_LONG_LITERAL)||LA188_0==STRING_LITERAL||LA188_0==21||LA188_0==26||(LA188_0 >= 30 && LA188_0 <= 31)||(LA188_0 >= 34 && LA188_0 <= 35)||(LA188_0 >= 42 && LA188_0 <= 43)||LA188_0==48||(LA188_0 >= 56 && LA188_0 <= 60)||(LA188_0 >= 63 && LA188_0 <= 65)||(LA188_0 >= 67 && LA188_0 <= 68)||LA188_0==70||LA188_0==72||(LA188_0 >= 74 && LA188_0 <= 76)||(LA188_0 >= 80 && LA188_0 <= 85)||(LA188_0 >= 87 && LA188_0 <= 98)||(LA188_0 >= 100 && LA188_0 <= 105)||LA188_0==110) ) { + alt188=1; + } + + + switch (alt188) { + case 1 : + // Java.g:14288:3: ( (a3_0= parse_org_emftext_language_java_statements_Statement ) ) + { + // Java.g:14288:3: ( (a3_0= parse_org_emftext_language_java_statements_Statement ) ) + // Java.g:14289:4: (a3_0= parse_org_emftext_language_java_statements_Statement ) + { + // Java.g:14289:4: (a3_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:14290:5: a3_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_NormalSwitchCase17246); + a3_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createNormalSwitchCase(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + addObjectToList(element, org.emftext.language.java.statements.StatementsPackage.NORMAL_SWITCH_CASE__STATEMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_63_0_0_3_0_0_1, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(61680); + addExpectedElement(61682); + addExpectedElement(61683); + } + + } + + + } + break; + + default : + break loop188; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(61870); + addExpectedElement(61872); + addExpectedElement(61873); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 65, parse_org_emftext_language_java_statements_NormalSwitchCase_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_NormalSwitchCase" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_DefaultSwitchCase" + // Java.g:14334:1: parse_org_emftext_language_java_statements_DefaultSwitchCase returns [org.emftext.language.java.statements.DefaultSwitchCase element = null] : a0= 'default' a1= ':' ( ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) )* ; + public final org.emftext.language.java.statements.DefaultSwitchCase parse_org_emftext_language_java_statements_DefaultSwitchCase() throws RecognitionException { + org.emftext.language.java.statements.DefaultSwitchCase element = null; + + int parse_org_emftext_language_java_statements_DefaultSwitchCase_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + org.emftext.language.java.statements.Statement a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 66) ) { return element; } + + // Java.g:14337:2: (a0= 'default' a1= ':' ( ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) )* ) + // Java.g:14338:2: a0= 'default' a1= ':' ( ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) )* + { + a0=(Token)match(input,66,FOLLOW_66_in_parse_org_emftext_language_java_statements_DefaultSwitchCase17302); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createDefaultSwitchCase(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_64_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(61874); + } + + a1=(Token)match(input,41,FOLLOW_41_in_parse_org_emftext_language_java_statements_DefaultSwitchCase17316); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createDefaultSwitchCase(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_64_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(62061); + addExpectedElement(62063); + addExpectedElement(62064); + } + + // Java.g:14368:2: ( ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) )* + loop189: + do { + int alt189=2; + int LA189_0 = input.LA(1); + + if ( ((LA189_0 >= BOOLEAN_LITERAL && LA189_0 <= IDENTIFIER)||(LA189_0 >= OCTAL_INTEGER_LITERAL && LA189_0 <= OCTAL_LONG_LITERAL)||LA189_0==STRING_LITERAL||LA189_0==21||LA189_0==26||(LA189_0 >= 30 && LA189_0 <= 31)||(LA189_0 >= 34 && LA189_0 <= 35)||(LA189_0 >= 42 && LA189_0 <= 43)||LA189_0==48||(LA189_0 >= 56 && LA189_0 <= 60)||(LA189_0 >= 63 && LA189_0 <= 65)||(LA189_0 >= 67 && LA189_0 <= 68)||LA189_0==70||LA189_0==72||(LA189_0 >= 74 && LA189_0 <= 76)||(LA189_0 >= 80 && LA189_0 <= 85)||(LA189_0 >= 87 && LA189_0 <= 98)||(LA189_0 >= 100 && LA189_0 <= 105)||LA189_0==110) ) { + alt189=1; + } + + + switch (alt189) { + case 1 : + // Java.g:14369:3: ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) + { + // Java.g:14369:3: ( (a2_0= parse_org_emftext_language_java_statements_Statement ) ) + // Java.g:14370:4: (a2_0= parse_org_emftext_language_java_statements_Statement ) + { + // Java.g:14370:4: (a2_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:14371:5: a2_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_DefaultSwitchCase17345); + a2_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createDefaultSwitchCase(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.statements.StatementsPackage.DEFAULT_SWITCH_CASE__STATEMENTS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_64_0_0_2_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(62251); + addExpectedElement(62253); + addExpectedElement(62254); + } + + } + + + } + break; + + default : + break loop189; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(62441); + addExpectedElement(62443); + addExpectedElement(62444); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 66, parse_org_emftext_language_java_statements_DefaultSwitchCase_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_DefaultSwitchCase" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_Return" + // Java.g:14415:1: parse_org_emftext_language_java_statements_Return returns [org.emftext.language.java.statements.Return element = null] : a0= 'return' ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) )? a2= ';' ; + public final org.emftext.language.java.statements.Return parse_org_emftext_language_java_statements_Return() throws RecognitionException { + org.emftext.language.java.statements.Return element = null; + + int parse_org_emftext_language_java_statements_Return_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + org.emftext.language.java.expressions.AssignmentExpression a1_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 67) ) { return element; } + + // Java.g:14418:2: (a0= 'return' ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) )? a2= ';' ) + // Java.g:14419:2: a0= 'return' ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) )? a2= ';' + { + a0=(Token)match(input,90,FOLLOW_90_in_parse_org_emftext_language_java_statements_Return17401); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createReturn(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_65_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(62528); + addExpectedElement(62529); + } + + // Java.g:14434:2: ( (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) )? + int alt190=2; + int LA190_0 = input.LA(1); + + if ( ((LA190_0 >= BOOLEAN_LITERAL && LA190_0 <= IDENTIFIER)||(LA190_0 >= OCTAL_INTEGER_LITERAL && LA190_0 <= OCTAL_LONG_LITERAL)||LA190_0==STRING_LITERAL||LA190_0==21||LA190_0==26||(LA190_0 >= 30 && LA190_0 <= 31)||(LA190_0 >= 34 && LA190_0 <= 35)||LA190_0==43||LA190_0==48||LA190_0==58||LA190_0==60||(LA190_0 >= 63 && LA190_0 <= 64)||LA190_0==68||LA190_0==74||LA190_0==80||LA190_0==82||(LA190_0 >= 84 && LA190_0 <= 85)||LA190_0==91||LA190_0==94||LA190_0==97||LA190_0==102||LA190_0==105||LA190_0==110) ) { + alt190=1; + } + switch (alt190) { + case 1 : + // Java.g:14435:3: (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + // Java.g:14435:3: (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:14436:4: a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_Return17424); + a1_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createReturn(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.RETURN__RETURN_VALUE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_65_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(62530); + } + + a2=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_statements_Return17450); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createReturn(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_65_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(62717); + addExpectedElement(62718); + addExpectedElement(62905); + addExpectedElement(62906); + addExpectedElement(63093); + addExpectedElement(63096); + addExpectedElement(63283); + addExpectedElement(63284); + addExpectedElement(63471); + addExpectedElement(63472); + addExpectedElement(63659); + addExpectedElement(63660); + addExpectedElement(63847); + addExpectedElement(63849); + addExpectedElement(63850); + addExpectedElement(64037); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 67, parse_org_emftext_language_java_statements_Return_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_Return" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_Throw" + // Java.g:14496:1: parse_org_emftext_language_java_statements_Throw returns [org.emftext.language.java.statements.Throw element = null] : a0= 'throw' (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a2= ';' ; + public final org.emftext.language.java.statements.Throw parse_org_emftext_language_java_statements_Throw() throws RecognitionException { + org.emftext.language.java.statements.Throw element = null; + + int parse_org_emftext_language_java_statements_Throw_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + org.emftext.language.java.expressions.AssignmentExpression a1_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 68) ) { return element; } + + // Java.g:14499:2: (a0= 'throw' (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a2= ';' ) + // Java.g:14500:2: a0= 'throw' (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a2= ';' + { + a0=(Token)match(input,98,FOLLOW_98_in_parse_org_emftext_language_java_statements_Throw17479); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createThrow(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_66_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(64121); + } + + // Java.g:14514:2: (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:14515:3: a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_Throw17497); + a1_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createThrow(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.THROW__THROWABLE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_66_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(64122); + } + + a2=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_statements_Throw17515); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createThrow(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_66_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(64309); + addExpectedElement(64310); + addExpectedElement(64497); + addExpectedElement(64498); + addExpectedElement(64685); + addExpectedElement(64688); + addExpectedElement(64875); + addExpectedElement(64876); + addExpectedElement(65063); + addExpectedElement(65064); + addExpectedElement(65251); + addExpectedElement(65252); + addExpectedElement(65439); + addExpectedElement(65441); + addExpectedElement(65442); + addExpectedElement(65629); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 68, parse_org_emftext_language_java_statements_Throw_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_Throw" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_Break" + // Java.g:14574:1: parse_org_emftext_language_java_statements_Break returns [org.emftext.language.java.statements.Break element = null] : a0= 'break' ( ( (a1= IDENTIFIER ) ) )? a2= ';' ; + public final org.emftext.language.java.statements.Break parse_org_emftext_language_java_statements_Break() throws RecognitionException { + org.emftext.language.java.statements.Break element = null; + + int parse_org_emftext_language_java_statements_Break_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a2=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 69) ) { return element; } + + // Java.g:14577:2: (a0= 'break' ( ( (a1= IDENTIFIER ) ) )? a2= ';' ) + // Java.g:14578:2: a0= 'break' ( ( (a1= IDENTIFIER ) ) )? a2= ';' + { + a0=(Token)match(input,59,FOLLOW_59_in_parse_org_emftext_language_java_statements_Break17544); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createBreak(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_67_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(65631); + } + + // Java.g:14592:2: ( ( (a1= IDENTIFIER ) ) )? + int alt191=2; + int LA191_0 = input.LA(1); + + if ( (LA191_0==IDENTIFIER) ) { + alt191=1; + } + switch (alt191) { + case 1 : + // Java.g:14593:3: ( (a1= IDENTIFIER ) ) + { + // Java.g:14593:3: ( (a1= IDENTIFIER ) ) + // Java.g:14594:4: (a1= IDENTIFIER ) + { + // Java.g:14594:4: (a1= IDENTIFIER ) + // Java.g:14595:5: a1= IDENTIFIER + { + a1=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_statements_Break17573); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createBreak(); + startIncompleteElement(element); + } + if (a1 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a1.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.BREAK__TARGET), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a1).getLine(), ((CommonToken) a1).getCharPositionInLine(), ((CommonToken) a1).getStartIndex(), ((CommonToken) a1).getStopIndex()); + } + String resolved = (String) resolvedObject; + org.emftext.language.java.statements.JumpLabel proxy = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createJumpLabel(); + collectHiddenTokens(element); + registerContextDependentProxy(new org.emftext.language.java.resource.java.mopp.JavaContextDependentURIFragmentFactory(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getJumpTargetReferenceResolver()), element, (EReference) element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.BREAK__TARGET), resolved, proxy); + if (proxy != null) { + Object value = proxy; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.BREAK__TARGET), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_67_0_0_1_0_0_0, proxy, true); + copyLocalizationInfos((CommonToken) a1, element); + copyLocalizationInfos((CommonToken) a1, proxy); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(65632); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(65633); + } + + a2=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_statements_Break17619); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createBreak(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_67_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(65820); + addExpectedElement(65821); + addExpectedElement(66008); + addExpectedElement(66009); + addExpectedElement(66196); + addExpectedElement(66199); + addExpectedElement(66386); + addExpectedElement(66387); + addExpectedElement(66574); + addExpectedElement(66575); + addExpectedElement(66762); + addExpectedElement(66763); + addExpectedElement(66950); + addExpectedElement(66952); + addExpectedElement(66953); + addExpectedElement(67140); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 69, parse_org_emftext_language_java_statements_Break_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_Break" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_Continue" + // Java.g:14675:1: parse_org_emftext_language_java_statements_Continue returns [org.emftext.language.java.statements.Continue element = null] : a0= 'continue' ( ( (a1= IDENTIFIER ) ) )? a2= ';' ; + public final org.emftext.language.java.statements.Continue parse_org_emftext_language_java_statements_Continue() throws RecognitionException { + org.emftext.language.java.statements.Continue element = null; + + int parse_org_emftext_language_java_statements_Continue_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a2=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 70) ) { return element; } + + // Java.g:14678:2: (a0= 'continue' ( ( (a1= IDENTIFIER ) ) )? a2= ';' ) + // Java.g:14679:2: a0= 'continue' ( ( (a1= IDENTIFIER ) ) )? a2= ';' + { + a0=(Token)match(input,65,FOLLOW_65_in_parse_org_emftext_language_java_statements_Continue17648); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createContinue(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_68_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(67142); + } + + // Java.g:14693:2: ( ( (a1= IDENTIFIER ) ) )? + int alt192=2; + int LA192_0 = input.LA(1); + + if ( (LA192_0==IDENTIFIER) ) { + alt192=1; + } + switch (alt192) { + case 1 : + // Java.g:14694:3: ( (a1= IDENTIFIER ) ) + { + // Java.g:14694:3: ( (a1= IDENTIFIER ) ) + // Java.g:14695:4: (a1= IDENTIFIER ) + { + // Java.g:14695:4: (a1= IDENTIFIER ) + // Java.g:14696:5: a1= IDENTIFIER + { + a1=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_statements_Continue17677); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createContinue(); + startIncompleteElement(element); + } + if (a1 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a1.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.CONTINUE__TARGET), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a1).getLine(), ((CommonToken) a1).getCharPositionInLine(), ((CommonToken) a1).getStartIndex(), ((CommonToken) a1).getStopIndex()); + } + String resolved = (String) resolvedObject; + org.emftext.language.java.statements.JumpLabel proxy = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createJumpLabel(); + collectHiddenTokens(element); + registerContextDependentProxy(new org.emftext.language.java.resource.java.mopp.JavaContextDependentURIFragmentFactory(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getJumpTargetReferenceResolver()), element, (EReference) element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.CONTINUE__TARGET), resolved, proxy); + if (proxy != null) { + Object value = proxy; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.CONTINUE__TARGET), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_68_0_0_1_0_0_0, proxy, true); + copyLocalizationInfos((CommonToken) a1, element); + copyLocalizationInfos((CommonToken) a1, proxy); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(67143); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(67144); + } + + a2=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_statements_Continue17723); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createContinue(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_68_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(67331); + addExpectedElement(67332); + addExpectedElement(67519); + addExpectedElement(67520); + addExpectedElement(67707); + addExpectedElement(67710); + addExpectedElement(67897); + addExpectedElement(67898); + addExpectedElement(68085); + addExpectedElement(68086); + addExpectedElement(68273); + addExpectedElement(68274); + addExpectedElement(68461); + addExpectedElement(68463); + addExpectedElement(68464); + addExpectedElement(68651); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 70, parse_org_emftext_language_java_statements_Continue_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_Continue" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_JumpLabel" + // Java.g:14776:1: parse_org_emftext_language_java_statements_JumpLabel returns [org.emftext.language.java.statements.JumpLabel element = null] : (a0= IDENTIFIER ) a1= ':' (a2_0= parse_org_emftext_language_java_statements_Statement ) ; + public final org.emftext.language.java.statements.JumpLabel parse_org_emftext_language_java_statements_JumpLabel() throws RecognitionException { + org.emftext.language.java.statements.JumpLabel element = null; + + int parse_org_emftext_language_java_statements_JumpLabel_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + org.emftext.language.java.statements.Statement a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 71) ) { return element; } + + // Java.g:14779:2: ( (a0= IDENTIFIER ) a1= ':' (a2_0= parse_org_emftext_language_java_statements_Statement ) ) + // Java.g:14780:2: (a0= IDENTIFIER ) a1= ':' (a2_0= parse_org_emftext_language_java_statements_Statement ) + { + // Java.g:14780:2: (a0= IDENTIFIER ) + // Java.g:14781:3: a0= IDENTIFIER + { + a0=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_statements_JumpLabel17756); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createJumpLabel(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("IDENTIFIER"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.JUMP_LABEL__NAME), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.lang.String resolved = (java.lang.String) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.JUMP_LABEL__NAME), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_69_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(68652); + } + + a1=(Token)match(input,41,FOLLOW_41_in_parse_org_emftext_language_java_statements_JumpLabel17777); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createJumpLabel(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_69_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(68839); + } + + // Java.g:14830:2: (a2_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:14831:3: a2_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_JumpLabel17795); + a2_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createJumpLabel(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.JUMP_LABEL__STATEMENT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_69_0_0_2, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(69026); + addExpectedElement(69027); + addExpectedElement(69214); + addExpectedElement(69215); + addExpectedElement(69402); + addExpectedElement(69405); + addExpectedElement(69592); + addExpectedElement(69593); + addExpectedElement(69780); + addExpectedElement(69781); + addExpectedElement(69968); + addExpectedElement(69969); + addExpectedElement(70156); + addExpectedElement(70158); + addExpectedElement(70159); + addExpectedElement(70346); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 71, parse_org_emftext_language_java_statements_JumpLabel_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_JumpLabel" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_ExpressionStatement" + // Java.g:14876:1: parse_org_emftext_language_java_statements_ExpressionStatement returns [org.emftext.language.java.statements.ExpressionStatement element = null] : (a0_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a1= ';' ; + public final org.emftext.language.java.statements.ExpressionStatement parse_org_emftext_language_java_statements_ExpressionStatement() throws RecognitionException { + org.emftext.language.java.statements.ExpressionStatement element = null; + + int parse_org_emftext_language_java_statements_ExpressionStatement_StartIndex = input.index(); + + Token a1=null; + org.emftext.language.java.expressions.AssignmentExpression a0_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 72) ) { return element; } + + // Java.g:14879:2: ( (a0_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a1= ';' ) + // Java.g:14880:2: (a0_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a1= ';' + { + // Java.g:14880:2: (a0_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:14881:3: a0_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_ExpressionStatement17832); + a0_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createExpressionStatement(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.statements.StatementsPackage.EXPRESSION_STATEMENT__EXPRESSION), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_70_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(70347); + } + + a1=(Token)match(input,42,FOLLOW_42_in_parse_org_emftext_language_java_statements_ExpressionStatement17850); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createExpressionStatement(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_70_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(70534); + addExpectedElement(70535); + addExpectedElement(70722); + addExpectedElement(70723); + addExpectedElement(70910); + addExpectedElement(70913); + addExpectedElement(71100); + addExpectedElement(71101); + addExpectedElement(71288); + addExpectedElement(71289); + addExpectedElement(71476); + addExpectedElement(71477); + addExpectedElement(71664); + addExpectedElement(71666); + addExpectedElement(71667); + addExpectedElement(71854); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 72, parse_org_emftext_language_java_statements_ExpressionStatement_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_ExpressionStatement" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_ExpressionList" + // Java.g:14940:1: parse_org_emftext_language_java_expressions_ExpressionList returns [org.emftext.language.java.expressions.ExpressionList element = null] : (a0_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a1= ',' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ; + public final org.emftext.language.java.expressions.ExpressionList parse_org_emftext_language_java_expressions_ExpressionList() throws RecognitionException { + org.emftext.language.java.expressions.ExpressionList element = null; + + int parse_org_emftext_language_java_expressions_ExpressionList_StartIndex = input.index(); + + Token a1=null; + org.emftext.language.java.expressions.AssignmentExpression a0_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 73) ) { return element; } + + // Java.g:14943:2: ( (a0_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a1= ',' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* ) + // Java.g:14944:2: (a0_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ( (a1= ',' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* + { + // Java.g:14944:2: (a0_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:14945:3: a0_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_expressions_ExpressionList17883); + a0_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createExpressionList(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.EXPRESSION_LIST__EXPRESSIONS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_71_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(71856); + } + + // Java.g:14970:2: ( (a1= ',' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )* + loop193: + do { + int alt193=2; + int LA193_0 = input.LA(1); + + if ( (LA193_0==33) ) { + alt193=1; + } + + + switch (alt193) { + case 1 : + // Java.g:14971:3: (a1= ',' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + { + // Java.g:14971:3: (a1= ',' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + // Java.g:14972:4: a1= ',' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + a1=(Token)match(input,33,FOLLOW_33_in_parse_org_emftext_language_java_expressions_ExpressionList17910); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createExpressionList(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_71_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(71940); + } + + // Java.g:14986:4: (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:14987:5: a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_expressions_ExpressionList17936); + a2_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createExpressionList(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.EXPRESSION_LIST__EXPRESSIONS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_71_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(71942); + } + + } + + + } + break; + + default : + break loop193; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(71944); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 73, parse_org_emftext_language_java_expressions_ExpressionList_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_ExpressionList" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_AssignmentExpression" + // Java.g:15027:1: parse_org_emftext_language_java_expressions_AssignmentExpression returns [org.emftext.language.java.expressions.AssignmentExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_ConditionalExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_AssignmentOperator ) (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? ; + public final org.emftext.language.java.expressions.AssignmentExpression parse_org_emftext_language_java_expressions_AssignmentExpression() throws RecognitionException { + org.emftext.language.java.expressions.AssignmentExpression element = null; + + int parse_org_emftext_language_java_expressions_AssignmentExpression_StartIndex = input.index(); + + org.emftext.language.java.expressions.ConditionalExpression a0_0 =null; + + org.emftext.language.java.operators.AssignmentOperator a1_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 74) ) { return element; } + + // Java.g:15030:2: ( (a0_0= parse_org_emftext_language_java_expressions_ConditionalExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_AssignmentOperator ) (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? ) + // Java.g:15031:2: (a0_0= parse_org_emftext_language_java_expressions_ConditionalExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_AssignmentOperator ) (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? + { + // Java.g:15031:2: (a0_0= parse_org_emftext_language_java_expressions_ConditionalExpression ) + // Java.g:15032:3: a0_0= parse_org_emftext_language_java_expressions_ConditionalExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_ConditionalExpression_in_parse_org_emftext_language_java_expressions_AssignmentExpression17996); + a0_0=parse_org_emftext_language_java_expressions_ConditionalExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createAssignmentExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.ASSIGNMENT_EXPRESSION__CHILD), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_72_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(71956); + addExpectedElement(71990); + } + + // Java.g:15058:2: ( ( (a1_0= parse_org_emftext_language_java_operators_AssignmentOperator ) (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) )? + int alt194=2; + int LA194_0 = input.LA(1); + + if ( (LA194_0==25||LA194_0==29||LA194_0==32||LA194_0==36||LA194_0==40||(LA194_0 >= 43 && LA194_0 <= 44)||LA194_0==46||LA194_0==52||LA194_0==55||LA194_0==107) ) { + alt194=1; + } + switch (alt194) { + case 1 : + // Java.g:15059:3: ( (a1_0= parse_org_emftext_language_java_operators_AssignmentOperator ) (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + { + // Java.g:15059:3: ( (a1_0= parse_org_emftext_language_java_operators_AssignmentOperator ) (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) ) + // Java.g:15060:4: (a1_0= parse_org_emftext_language_java_operators_AssignmentOperator ) (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + { + // Java.g:15060:4: (a1_0= parse_org_emftext_language_java_operators_AssignmentOperator ) + // Java.g:15061:5: a1_0= parse_org_emftext_language_java_operators_AssignmentOperator + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_AssignmentOperator_in_parse_org_emftext_language_java_expressions_AssignmentExpression18029); + a1_0=parse_org_emftext_language_java_operators_AssignmentOperator(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createAssignmentExpression(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.ASSIGNMENT_EXPRESSION__ASSIGNMENT_OPERATOR), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_72_0_0_1_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(72074); + } + + // Java.g:15086:4: (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:15087:5: a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_expressions_AssignmentExpression18063); + a2_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createAssignmentExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.ASSIGNMENT_EXPRESSION__VALUE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_72_0_0_1_0_0_3, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(72108); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(72142); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 74, parse_org_emftext_language_java_expressions_AssignmentExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_AssignmentExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_ConditionalExpression" + // Java.g:15127:1: parse_org_emftext_language_java_expressions_ConditionalExpression returns [org.emftext.language.java.expressions.ConditionalExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_ConditionalOrExpression ) ( (a1= '?' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ':' (a4_0= parse_org_emftext_language_java_expressions_ConditionalExpression ) ) )? ; + public final org.emftext.language.java.expressions.ConditionalExpression parse_org_emftext_language_java_expressions_ConditionalExpression() throws RecognitionException { + org.emftext.language.java.expressions.ConditionalExpression element = null; + + int parse_org_emftext_language_java_expressions_ConditionalExpression_StartIndex = input.index(); + + Token a1=null; + Token a3=null; + org.emftext.language.java.expressions.ConditionalOrExpression a0_0 =null; + + org.emftext.language.java.expressions.AssignmentExpression a2_0 =null; + + org.emftext.language.java.expressions.ConditionalExpression a4_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 75) ) { return element; } + + // Java.g:15130:2: ( (a0_0= parse_org_emftext_language_java_expressions_ConditionalOrExpression ) ( (a1= '?' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ':' (a4_0= parse_org_emftext_language_java_expressions_ConditionalExpression ) ) )? ) + // Java.g:15131:2: (a0_0= parse_org_emftext_language_java_expressions_ConditionalOrExpression ) ( (a1= '?' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ':' (a4_0= parse_org_emftext_language_java_expressions_ConditionalExpression ) ) )? + { + // Java.g:15131:2: (a0_0= parse_org_emftext_language_java_expressions_ConditionalOrExpression ) + // Java.g:15132:3: a0_0= parse_org_emftext_language_java_expressions_ConditionalOrExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_ConditionalOrExpression_in_parse_org_emftext_language_java_expressions_ConditionalExpression18123); + a0_0=parse_org_emftext_language_java_expressions_ConditionalOrExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createConditionalExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.CONDITIONAL_EXPRESSION__CHILD), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_73_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(72146); + addExpectedElement(72158); + addExpectedElement(72192); + } + + // Java.g:15159:2: ( (a1= '?' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ':' (a4_0= parse_org_emftext_language_java_expressions_ConditionalExpression ) ) )? + int alt195=2; + int LA195_0 = input.LA(1); + + if ( (LA195_0==47) ) { + alt195=1; + } + switch (alt195) { + case 1 : + // Java.g:15160:3: (a1= '?' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ':' (a4_0= parse_org_emftext_language_java_expressions_ConditionalExpression ) ) + { + // Java.g:15160:3: (a1= '?' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ':' (a4_0= parse_org_emftext_language_java_expressions_ConditionalExpression ) ) + // Java.g:15161:4: a1= '?' (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a3= ':' (a4_0= parse_org_emftext_language_java_expressions_ConditionalExpression ) + { + a1=(Token)match(input,47,FOLLOW_47_in_parse_org_emftext_language_java_expressions_ConditionalExpression18150); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createConditionalExpression(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_73_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(72276); + } + + // Java.g:15175:4: (a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:15176:5: a2_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_expressions_ConditionalExpression18176); + a2_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createConditionalExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.CONDITIONAL_EXPRESSION__EXPRESSION_IF), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_73_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(72277); + } + + a3=(Token)match(input,41,FOLLOW_41_in_parse_org_emftext_language_java_expressions_ConditionalExpression18204); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createConditionalExpression(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_73_0_0_1_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(72361); + } + + // Java.g:15215:4: (a4_0= parse_org_emftext_language_java_expressions_ConditionalExpression ) + // Java.g:15216:5: a4_0= parse_org_emftext_language_java_expressions_ConditionalExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_ConditionalExpression_in_parse_org_emftext_language_java_expressions_ConditionalExpression18230); + a4_0=parse_org_emftext_language_java_expressions_ConditionalExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createConditionalExpression(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.CONDITIONAL_EXPRESSION__EXPRESSION_ELSE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_73_0_0_1_0_0_3, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(72364); + addExpectedElement(72376); + addExpectedElement(72410); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(72413); + addExpectedElement(72425); + addExpectedElement(72459); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 75, parse_org_emftext_language_java_expressions_ConditionalExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_ConditionalExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_ConditionalOrExpression" + // Java.g:15260:1: parse_org_emftext_language_java_expressions_ConditionalOrExpression returns [org.emftext.language.java.expressions.ConditionalOrExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression ) ( (a1= '||' (a2_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression ) ) )* ; + public final org.emftext.language.java.expressions.ConditionalOrExpression parse_org_emftext_language_java_expressions_ConditionalOrExpression() throws RecognitionException { + org.emftext.language.java.expressions.ConditionalOrExpression element = null; + + int parse_org_emftext_language_java_expressions_ConditionalOrExpression_StartIndex = input.index(); + + Token a1=null; + org.emftext.language.java.expressions.ConditionalAndExpression a0_0 =null; + + org.emftext.language.java.expressions.ConditionalAndExpression a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 76) ) { return element; } + + // Java.g:15263:2: ( (a0_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression ) ( (a1= '||' (a2_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression ) ) )* ) + // Java.g:15264:2: (a0_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression ) ( (a1= '||' (a2_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression ) ) )* + { + // Java.g:15264:2: (a0_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression ) + // Java.g:15265:3: a0_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_ConditionalAndExpression_in_parse_org_emftext_language_java_expressions_ConditionalOrExpression18290); + a0_0=parse_org_emftext_language_java_expressions_ConditionalAndExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createConditionalOrExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.CONDITIONAL_OR_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_74_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(72464); + addExpectedElement(72476); + addExpectedElement(72509); + } + + // Java.g:15292:2: ( (a1= '||' (a2_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression ) ) )* + loop196: + do { + int alt196=2; + int LA196_0 = input.LA(1); + + if ( (LA196_0==108) ) { + alt196=1; + } + + + switch (alt196) { + case 1 : + // Java.g:15293:3: (a1= '||' (a2_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression ) ) + { + // Java.g:15293:3: (a1= '||' (a2_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression ) ) + // Java.g:15294:4: a1= '||' (a2_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression ) + { + a1=(Token)match(input,108,FOLLOW_108_in_parse_org_emftext_language_java_expressions_ConditionalOrExpression18317); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createConditionalOrExpression(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_74_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(72593); + } + + // Java.g:15308:4: (a2_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression ) + // Java.g:15309:5: a2_0= parse_org_emftext_language_java_expressions_ConditionalAndExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_ConditionalAndExpression_in_parse_org_emftext_language_java_expressions_ConditionalOrExpression18343); + a2_0=parse_org_emftext_language_java_expressions_ConditionalAndExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createConditionalOrExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.CONDITIONAL_OR_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_74_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(72598); + addExpectedElement(72610); + addExpectedElement(72643); + } + + } + + + } + break; + + default : + break loop196; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(72648); + addExpectedElement(72660); + addExpectedElement(72693); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 76, parse_org_emftext_language_java_expressions_ConditionalOrExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_ConditionalOrExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_ConditionalAndExpression" + // Java.g:15353:1: parse_org_emftext_language_java_expressions_ConditionalAndExpression returns [org.emftext.language.java.expressions.ConditionalAndExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression ) ( (a1= '&&' (a2_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression ) ) )* ; + public final org.emftext.language.java.expressions.ConditionalAndExpression parse_org_emftext_language_java_expressions_ConditionalAndExpression() throws RecognitionException { + org.emftext.language.java.expressions.ConditionalAndExpression element = null; + + int parse_org_emftext_language_java_expressions_ConditionalAndExpression_StartIndex = input.index(); + + Token a1=null; + org.emftext.language.java.expressions.InclusiveOrExpression a0_0 =null; + + org.emftext.language.java.expressions.InclusiveOrExpression a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 77) ) { return element; } + + // Java.g:15356:2: ( (a0_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression ) ( (a1= '&&' (a2_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression ) ) )* ) + // Java.g:15357:2: (a0_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression ) ( (a1= '&&' (a2_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression ) ) )* + { + // Java.g:15357:2: (a0_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression ) + // Java.g:15358:3: a0_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_InclusiveOrExpression_in_parse_org_emftext_language_java_expressions_ConditionalAndExpression18403); + a0_0=parse_org_emftext_language_java_expressions_InclusiveOrExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createConditionalAndExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.CONDITIONAL_AND_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_75_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(72699); + addExpectedElement(72711); + addExpectedElement(72744); + } + + // Java.g:15385:2: ( (a1= '&&' (a2_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression ) ) )* + loop197: + do { + int alt197=2; + int LA197_0 = input.LA(1); + + if ( (LA197_0==23) ) { + alt197=1; + } + + + switch (alt197) { + case 1 : + // Java.g:15386:3: (a1= '&&' (a2_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression ) ) + { + // Java.g:15386:3: (a1= '&&' (a2_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression ) ) + // Java.g:15387:4: a1= '&&' (a2_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression ) + { + a1=(Token)match(input,23,FOLLOW_23_in_parse_org_emftext_language_java_expressions_ConditionalAndExpression18430); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createConditionalAndExpression(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_75_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(72828); + } + + // Java.g:15401:4: (a2_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression ) + // Java.g:15402:5: a2_0= parse_org_emftext_language_java_expressions_InclusiveOrExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_InclusiveOrExpression_in_parse_org_emftext_language_java_expressions_ConditionalAndExpression18456); + a2_0=parse_org_emftext_language_java_expressions_InclusiveOrExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createConditionalAndExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.CONDITIONAL_AND_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_75_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(72834); + addExpectedElement(72846); + addExpectedElement(72879); + } + + } + + + } + break; + + default : + break loop197; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(72885); + addExpectedElement(72897); + addExpectedElement(72930); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 77, parse_org_emftext_language_java_expressions_ConditionalAndExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_ConditionalAndExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_InclusiveOrExpression" + // Java.g:15446:1: parse_org_emftext_language_java_expressions_InclusiveOrExpression returns [org.emftext.language.java.expressions.InclusiveOrExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression ) ( (a1= '|' (a2_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression ) ) )* ; + public final org.emftext.language.java.expressions.InclusiveOrExpression parse_org_emftext_language_java_expressions_InclusiveOrExpression() throws RecognitionException { + org.emftext.language.java.expressions.InclusiveOrExpression element = null; + + int parse_org_emftext_language_java_expressions_InclusiveOrExpression_StartIndex = input.index(); + + Token a1=null; + org.emftext.language.java.expressions.ExclusiveOrExpression a0_0 =null; + + org.emftext.language.java.expressions.ExclusiveOrExpression a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 78) ) { return element; } + + // Java.g:15449:2: ( (a0_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression ) ( (a1= '|' (a2_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression ) ) )* ) + // Java.g:15450:2: (a0_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression ) ( (a1= '|' (a2_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression ) ) )* + { + // Java.g:15450:2: (a0_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression ) + // Java.g:15451:3: a0_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_ExclusiveOrExpression_in_parse_org_emftext_language_java_expressions_InclusiveOrExpression18516); + a0_0=parse_org_emftext_language_java_expressions_ExclusiveOrExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createInclusiveOrExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.INCLUSIVE_OR_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_76_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(72937); + addExpectedElement(72949); + addExpectedElement(72982); + } + + // Java.g:15478:2: ( (a1= '|' (a2_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression ) ) )* + loop198: + do { + int alt198=2; + int LA198_0 = input.LA(1); + + if ( (LA198_0==106) ) { + alt198=1; + } + + + switch (alt198) { + case 1 : + // Java.g:15479:3: (a1= '|' (a2_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression ) ) + { + // Java.g:15479:3: (a1= '|' (a2_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression ) ) + // Java.g:15480:4: a1= '|' (a2_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression ) + { + a1=(Token)match(input,106,FOLLOW_106_in_parse_org_emftext_language_java_expressions_InclusiveOrExpression18543); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createInclusiveOrExpression(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_76_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(73066); + } + + // Java.g:15494:4: (a2_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression ) + // Java.g:15495:5: a2_0= parse_org_emftext_language_java_expressions_ExclusiveOrExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_ExclusiveOrExpression_in_parse_org_emftext_language_java_expressions_InclusiveOrExpression18569); + a2_0=parse_org_emftext_language_java_expressions_ExclusiveOrExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createInclusiveOrExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.INCLUSIVE_OR_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_76_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(73073); + addExpectedElement(73085); + addExpectedElement(73118); + } + + } + + + } + break; + + default : + break loop198; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(73125); + addExpectedElement(73137); + addExpectedElement(73170); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 78, parse_org_emftext_language_java_expressions_InclusiveOrExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_InclusiveOrExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_ExclusiveOrExpression" + // Java.g:15539:1: parse_org_emftext_language_java_expressions_ExclusiveOrExpression returns [org.emftext.language.java.expressions.ExclusiveOrExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_AndExpression ) ( (a1= '^' (a2_0= parse_org_emftext_language_java_expressions_AndExpression ) ) )* ; + public final org.emftext.language.java.expressions.ExclusiveOrExpression parse_org_emftext_language_java_expressions_ExclusiveOrExpression() throws RecognitionException { + org.emftext.language.java.expressions.ExclusiveOrExpression element = null; + + int parse_org_emftext_language_java_expressions_ExclusiveOrExpression_StartIndex = input.index(); + + Token a1=null; + org.emftext.language.java.expressions.AndExpression a0_0 =null; + + org.emftext.language.java.expressions.AndExpression a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 79) ) { return element; } + + // Java.g:15542:2: ( (a0_0= parse_org_emftext_language_java_expressions_AndExpression ) ( (a1= '^' (a2_0= parse_org_emftext_language_java_expressions_AndExpression ) ) )* ) + // Java.g:15543:2: (a0_0= parse_org_emftext_language_java_expressions_AndExpression ) ( (a1= '^' (a2_0= parse_org_emftext_language_java_expressions_AndExpression ) ) )* + { + // Java.g:15543:2: (a0_0= parse_org_emftext_language_java_expressions_AndExpression ) + // Java.g:15544:3: a0_0= parse_org_emftext_language_java_expressions_AndExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AndExpression_in_parse_org_emftext_language_java_expressions_ExclusiveOrExpression18629); + a0_0=parse_org_emftext_language_java_expressions_AndExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createExclusiveOrExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.EXCLUSIVE_OR_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_77_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(73178); + addExpectedElement(73190); + addExpectedElement(73223); + } + + // Java.g:15571:2: ( (a1= '^' (a2_0= parse_org_emftext_language_java_expressions_AndExpression ) ) )* + loop199: + do { + int alt199=2; + int LA199_0 = input.LA(1); + + if ( (LA199_0==54) ) { + alt199=1; + } + + + switch (alt199) { + case 1 : + // Java.g:15572:3: (a1= '^' (a2_0= parse_org_emftext_language_java_expressions_AndExpression ) ) + { + // Java.g:15572:3: (a1= '^' (a2_0= parse_org_emftext_language_java_expressions_AndExpression ) ) + // Java.g:15573:4: a1= '^' (a2_0= parse_org_emftext_language_java_expressions_AndExpression ) + { + a1=(Token)match(input,54,FOLLOW_54_in_parse_org_emftext_language_java_expressions_ExclusiveOrExpression18656); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createExclusiveOrExpression(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_77_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(73307); + } + + // Java.g:15587:4: (a2_0= parse_org_emftext_language_java_expressions_AndExpression ) + // Java.g:15588:5: a2_0= parse_org_emftext_language_java_expressions_AndExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AndExpression_in_parse_org_emftext_language_java_expressions_ExclusiveOrExpression18682); + a2_0=parse_org_emftext_language_java_expressions_AndExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createExclusiveOrExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.EXCLUSIVE_OR_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_77_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(73315); + addExpectedElement(73327); + addExpectedElement(73360); + } + + } + + + } + break; + + default : + break loop199; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(73368); + addExpectedElement(73380); + addExpectedElement(73413); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 79, parse_org_emftext_language_java_expressions_ExclusiveOrExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_ExclusiveOrExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_AndExpression" + // Java.g:15632:1: parse_org_emftext_language_java_expressions_AndExpression returns [org.emftext.language.java.expressions.AndExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_EqualityExpression ) ( (a1= '&' (a2_0= parse_org_emftext_language_java_expressions_EqualityExpression ) ) )* ; + public final org.emftext.language.java.expressions.AndExpression parse_org_emftext_language_java_expressions_AndExpression() throws RecognitionException { + org.emftext.language.java.expressions.AndExpression element = null; + + int parse_org_emftext_language_java_expressions_AndExpression_StartIndex = input.index(); + + Token a1=null; + org.emftext.language.java.expressions.EqualityExpression a0_0 =null; + + org.emftext.language.java.expressions.EqualityExpression a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 80) ) { return element; } + + // Java.g:15635:2: ( (a0_0= parse_org_emftext_language_java_expressions_EqualityExpression ) ( (a1= '&' (a2_0= parse_org_emftext_language_java_expressions_EqualityExpression ) ) )* ) + // Java.g:15636:2: (a0_0= parse_org_emftext_language_java_expressions_EqualityExpression ) ( (a1= '&' (a2_0= parse_org_emftext_language_java_expressions_EqualityExpression ) ) )* + { + // Java.g:15636:2: (a0_0= parse_org_emftext_language_java_expressions_EqualityExpression ) + // Java.g:15637:3: a0_0= parse_org_emftext_language_java_expressions_EqualityExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_EqualityExpression_in_parse_org_emftext_language_java_expressions_AndExpression18742); + a0_0=parse_org_emftext_language_java_expressions_EqualityExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createAndExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.AND_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_78_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(73422); + addExpectedElement(73434); + addExpectedElement(73467); + } + + // Java.g:15664:2: ( (a1= '&' (a2_0= parse_org_emftext_language_java_expressions_EqualityExpression ) ) )* + loop200: + do { + int alt200=2; + int LA200_0 = input.LA(1); + + if ( (LA200_0==24) ) { + alt200=1; + } + + + switch (alt200) { + case 1 : + // Java.g:15665:3: (a1= '&' (a2_0= parse_org_emftext_language_java_expressions_EqualityExpression ) ) + { + // Java.g:15665:3: (a1= '&' (a2_0= parse_org_emftext_language_java_expressions_EqualityExpression ) ) + // Java.g:15666:4: a1= '&' (a2_0= parse_org_emftext_language_java_expressions_EqualityExpression ) + { + a1=(Token)match(input,24,FOLLOW_24_in_parse_org_emftext_language_java_expressions_AndExpression18769); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createAndExpression(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_78_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(73551); + } + + // Java.g:15680:4: (a2_0= parse_org_emftext_language_java_expressions_EqualityExpression ) + // Java.g:15681:5: a2_0= parse_org_emftext_language_java_expressions_EqualityExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_EqualityExpression_in_parse_org_emftext_language_java_expressions_AndExpression18795); + a2_0=parse_org_emftext_language_java_expressions_EqualityExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createAndExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.AND_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_78_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(73560); + addExpectedElement(73572); + addExpectedElement(73605); + } + + } + + + } + break; + + default : + break loop200; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(73614); + addExpectedElement(73626); + addExpectedElement(73659); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 80, parse_org_emftext_language_java_expressions_AndExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_AndExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_EqualityExpression" + // Java.g:15725:1: parse_org_emftext_language_java_expressions_EqualityExpression returns [org.emftext.language.java.expressions.EqualityExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_InstanceOfExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_EqualityOperator ) (a2_0= parse_org_emftext_language_java_expressions_InstanceOfExpression ) ) )* ; + public final org.emftext.language.java.expressions.EqualityExpression parse_org_emftext_language_java_expressions_EqualityExpression() throws RecognitionException { + org.emftext.language.java.expressions.EqualityExpression element = null; + + int parse_org_emftext_language_java_expressions_EqualityExpression_StartIndex = input.index(); + + org.emftext.language.java.expressions.InstanceOfExpression a0_0 =null; + + org.emftext.language.java.operators.EqualityOperator a1_0 =null; + + org.emftext.language.java.expressions.InstanceOfExpression a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 81) ) { return element; } + + // Java.g:15728:2: ( (a0_0= parse_org_emftext_language_java_expressions_InstanceOfExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_EqualityOperator ) (a2_0= parse_org_emftext_language_java_expressions_InstanceOfExpression ) ) )* ) + // Java.g:15729:2: (a0_0= parse_org_emftext_language_java_expressions_InstanceOfExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_EqualityOperator ) (a2_0= parse_org_emftext_language_java_expressions_InstanceOfExpression ) ) )* + { + // Java.g:15729:2: (a0_0= parse_org_emftext_language_java_expressions_InstanceOfExpression ) + // Java.g:15730:3: a0_0= parse_org_emftext_language_java_expressions_InstanceOfExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_InstanceOfExpression_in_parse_org_emftext_language_java_expressions_EqualityExpression18855); + a0_0=parse_org_emftext_language_java_expressions_InstanceOfExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createEqualityExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.EQUALITY_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_79_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(73661); + addExpectedElement(73670); + addExpectedElement(73682); + addExpectedElement(73715); + } + + // Java.g:15758:2: ( ( (a1_0= parse_org_emftext_language_java_operators_EqualityOperator ) (a2_0= parse_org_emftext_language_java_expressions_InstanceOfExpression ) ) )* + loop201: + do { + int alt201=2; + int LA201_0 = input.LA(1); + + if ( (LA201_0==22||LA201_0==45) ) { + alt201=1; + } + + + switch (alt201) { + case 1 : + // Java.g:15759:3: ( (a1_0= parse_org_emftext_language_java_operators_EqualityOperator ) (a2_0= parse_org_emftext_language_java_expressions_InstanceOfExpression ) ) + { + // Java.g:15759:3: ( (a1_0= parse_org_emftext_language_java_operators_EqualityOperator ) (a2_0= parse_org_emftext_language_java_expressions_InstanceOfExpression ) ) + // Java.g:15760:4: (a1_0= parse_org_emftext_language_java_operators_EqualityOperator ) (a2_0= parse_org_emftext_language_java_expressions_InstanceOfExpression ) + { + // Java.g:15760:4: (a1_0= parse_org_emftext_language_java_operators_EqualityOperator ) + // Java.g:15761:5: a1_0= parse_org_emftext_language_java_operators_EqualityOperator + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_EqualityOperator_in_parse_org_emftext_language_java_expressions_EqualityExpression18888); + a1_0=parse_org_emftext_language_java_operators_EqualityOperator(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createEqualityExpression(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.EQUALITY_EXPRESSION__EQUALITY_OPERATORS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_79_0_0_1_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(73799); + } + + // Java.g:15786:4: (a2_0= parse_org_emftext_language_java_expressions_InstanceOfExpression ) + // Java.g:15787:5: a2_0= parse_org_emftext_language_java_expressions_InstanceOfExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_InstanceOfExpression_in_parse_org_emftext_language_java_expressions_EqualityExpression18922); + a2_0=parse_org_emftext_language_java_expressions_InstanceOfExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createEqualityExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.EQUALITY_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_79_0_0_1_0_0_3, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(73801); + addExpectedElement(73810); + addExpectedElement(73822); + addExpectedElement(73855); + } + + } + + + } + break; + + default : + break loop201; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(73857); + addExpectedElement(73866); + addExpectedElement(73878); + addExpectedElement(73911); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 81, parse_org_emftext_language_java_expressions_EqualityExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_EqualityExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_InstanceOfExpression" + // Java.g:15833:1: parse_org_emftext_language_java_expressions_InstanceOfExpression returns [org.emftext.language.java.expressions.InstanceOfExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_RelationExpression ) ( (a1= 'instanceof' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) )? ; + public final org.emftext.language.java.expressions.InstanceOfExpression parse_org_emftext_language_java_expressions_InstanceOfExpression() throws RecognitionException { + org.emftext.language.java.expressions.InstanceOfExpression element = null; + + int parse_org_emftext_language_java_expressions_InstanceOfExpression_StartIndex = input.index(); + + Token a1=null; + org.emftext.language.java.expressions.RelationExpression a0_0 =null; + + org.emftext.language.java.types.TypeReference a2_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a3_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 82) ) { return element; } + + // Java.g:15836:2: ( (a0_0= parse_org_emftext_language_java_expressions_RelationExpression ) ( (a1= 'instanceof' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) )? ) + // Java.g:15837:2: (a0_0= parse_org_emftext_language_java_expressions_RelationExpression ) ( (a1= 'instanceof' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) )? + { + // Java.g:15837:2: (a0_0= parse_org_emftext_language_java_expressions_RelationExpression ) + // Java.g:15838:3: a0_0= parse_org_emftext_language_java_expressions_RelationExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_RelationExpression_in_parse_org_emftext_language_java_expressions_InstanceOfExpression18982); + a0_0=parse_org_emftext_language_java_expressions_RelationExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createInstanceOfExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.INSTANCE_OF_EXPRESSION__CHILD), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_80_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(73912); + addExpectedElement(73914); + addExpectedElement(73923); + addExpectedElement(73935); + addExpectedElement(73968); + } + + // Java.g:15867:2: ( (a1= 'instanceof' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) )? + int alt203=2; + int LA203_0 = input.LA(1); + + if ( (LA203_0==79) ) { + alt203=1; + } + switch (alt203) { + case 1 : + // Java.g:15868:3: (a1= 'instanceof' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) + { + // Java.g:15868:3: (a1= 'instanceof' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) + // Java.g:15869:4: a1= 'instanceof' (a2_0= parse_org_emftext_language_java_types_TypeReference ) ( (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + { + a1=(Token)match(input,79,FOLLOW_79_in_parse_org_emftext_language_java_expressions_InstanceOfExpression19009); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createInstanceOfExpression(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_80_0_0_1_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(73980); + } + + // Java.g:15883:4: (a2_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:15884:5: a2_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_expressions_InstanceOfExpression19035); + a2_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createInstanceOfExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.INSTANCE_OF_EXPRESSION__TYPE_REFERENCE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_80_0_0_1_0_0_1, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(73981); + addExpectedElement(73983); + addExpectedElement(73992); + addExpectedElement(74004); + addExpectedElement(74037); + } + + // Java.g:15913:4: ( (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop202: + do { + int alt202=2; + int LA202_0 = input.LA(1); + + if ( (LA202_0==49) ) { + alt202=1; + } + + + switch (alt202) { + case 1 : + // Java.g:15914:5: (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:15914:5: (a3_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:15915:6: a3_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_expressions_InstanceOfExpression19076); + a3_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createInstanceOfExpression(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.INSTANCE_OF_EXPRESSION__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_80_0_0_1_0_0_2, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + } + break; + + default : + break loop202; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(74038); + addExpectedElement(74040); + addExpectedElement(74049); + addExpectedElement(74061); + addExpectedElement(74094); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(74096); + addExpectedElement(74105); + addExpectedElement(74117); + addExpectedElement(74150); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 82, parse_org_emftext_language_java_expressions_InstanceOfExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_InstanceOfExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_RelationExpression" + // Java.g:15963:1: parse_org_emftext_language_java_expressions_RelationExpression returns [org.emftext.language.java.expressions.RelationExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_ShiftExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_RelationOperator ) (a2_0= parse_org_emftext_language_java_expressions_ShiftExpression ) ) )* ; + public final org.emftext.language.java.expressions.RelationExpression parse_org_emftext_language_java_expressions_RelationExpression() throws RecognitionException { + org.emftext.language.java.expressions.RelationExpression element = null; + + int parse_org_emftext_language_java_expressions_RelationExpression_StartIndex = input.index(); + + org.emftext.language.java.expressions.ShiftExpression a0_0 =null; + + org.emftext.language.java.operators.RelationOperator a1_0 =null; + + org.emftext.language.java.expressions.ShiftExpression a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 83) ) { return element; } + + // Java.g:15966:2: ( (a0_0= parse_org_emftext_language_java_expressions_ShiftExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_RelationOperator ) (a2_0= parse_org_emftext_language_java_expressions_ShiftExpression ) ) )* ) + // Java.g:15967:2: (a0_0= parse_org_emftext_language_java_expressions_ShiftExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_RelationOperator ) (a2_0= parse_org_emftext_language_java_expressions_ShiftExpression ) ) )* + { + // Java.g:15967:2: (a0_0= parse_org_emftext_language_java_expressions_ShiftExpression ) + // Java.g:15968:3: a0_0= parse_org_emftext_language_java_expressions_ShiftExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_ShiftExpression_in_parse_org_emftext_language_java_expressions_RelationExpression19148); + a0_0=parse_org_emftext_language_java_expressions_ShiftExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createRelationExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.RELATION_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_81_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(74154); + addExpectedElement(74155); + addExpectedElement(74157); + addExpectedElement(74166); + addExpectedElement(74178); + addExpectedElement(74211); + } + + // Java.g:15998:2: ( ( (a1_0= parse_org_emftext_language_java_operators_RelationOperator ) (a2_0= parse_org_emftext_language_java_expressions_ShiftExpression ) ) )* + loop204: + do { + int alt204=2; + int LA204_0 = input.LA(1); + + if ( (LA204_0==43) ) { + int LA204_2 = input.LA(2); + + if ( (LA204_2==43) ) { + int LA204_4 = input.LA(3); + + if ( (LA204_4==IDENTIFIER||LA204_4==47||LA204_4==58||LA204_4==60||LA204_4==63||LA204_4==68||LA204_4==74||LA204_4==80||LA204_4==82||LA204_4==91||LA204_4==102) ) { + alt204=1; + } + + + } + else if ( ((LA204_2 >= BOOLEAN_LITERAL && LA204_2 <= IDENTIFIER)||(LA204_2 >= OCTAL_INTEGER_LITERAL && LA204_2 <= OCTAL_LONG_LITERAL)||LA204_2==STRING_LITERAL||LA204_2==21||LA204_2==26||(LA204_2 >= 30 && LA204_2 <= 31)||(LA204_2 >= 34 && LA204_2 <= 35)||LA204_2==44||LA204_2==48||LA204_2==58||LA204_2==60||(LA204_2 >= 63 && LA204_2 <= 64)||LA204_2==68||LA204_2==74||LA204_2==80||LA204_2==82||(LA204_2 >= 84 && LA204_2 <= 85)||LA204_2==91||LA204_2==94||LA204_2==97||LA204_2==102||LA204_2==105||LA204_2==110) ) { + alt204=1; + } + + + } + else if ( (LA204_0==46) ) { + int LA204_3 = input.LA(2); + + if ( ((LA204_3 >= BOOLEAN_LITERAL && LA204_3 <= IDENTIFIER)||(LA204_3 >= OCTAL_INTEGER_LITERAL && LA204_3 <= OCTAL_LONG_LITERAL)||LA204_3==STRING_LITERAL||LA204_3==21||LA204_3==26||(LA204_3 >= 30 && LA204_3 <= 31)||(LA204_3 >= 34 && LA204_3 <= 35)||(LA204_3 >= 43 && LA204_3 <= 44)||LA204_3==48||LA204_3==58||LA204_3==60||(LA204_3 >= 63 && LA204_3 <= 64)||LA204_3==68||LA204_3==74||LA204_3==80||LA204_3==82||(LA204_3 >= 84 && LA204_3 <= 85)||LA204_3==91||LA204_3==94||LA204_3==97||LA204_3==102||LA204_3==105||LA204_3==110) ) { + alt204=1; + } + + + } + + + switch (alt204) { + case 1 : + // Java.g:15999:3: ( (a1_0= parse_org_emftext_language_java_operators_RelationOperator ) (a2_0= parse_org_emftext_language_java_expressions_ShiftExpression ) ) + { + // Java.g:15999:3: ( (a1_0= parse_org_emftext_language_java_operators_RelationOperator ) (a2_0= parse_org_emftext_language_java_expressions_ShiftExpression ) ) + // Java.g:16000:4: (a1_0= parse_org_emftext_language_java_operators_RelationOperator ) (a2_0= parse_org_emftext_language_java_expressions_ShiftExpression ) + { + // Java.g:16000:4: (a1_0= parse_org_emftext_language_java_operators_RelationOperator ) + // Java.g:16001:5: a1_0= parse_org_emftext_language_java_operators_RelationOperator + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_RelationOperator_in_parse_org_emftext_language_java_expressions_RelationExpression19181); + a1_0=parse_org_emftext_language_java_operators_RelationOperator(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createRelationExpression(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.RELATION_EXPRESSION__RELATION_OPERATORS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_81_0_0_1_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(74295); + } + + // Java.g:16026:4: (a2_0= parse_org_emftext_language_java_expressions_ShiftExpression ) + // Java.g:16027:5: a2_0= parse_org_emftext_language_java_expressions_ShiftExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_ShiftExpression_in_parse_org_emftext_language_java_expressions_RelationExpression19215); + a2_0=parse_org_emftext_language_java_expressions_ShiftExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createRelationExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.RELATION_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_81_0_0_1_0_0_3, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(74299); + addExpectedElement(74300); + addExpectedElement(74302); + addExpectedElement(74311); + addExpectedElement(74323); + addExpectedElement(74356); + } + + } + + + } + break; + + default : + break loop204; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(74360); + addExpectedElement(74361); + addExpectedElement(74363); + addExpectedElement(74372); + addExpectedElement(74384); + addExpectedElement(74417); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 83, parse_org_emftext_language_java_expressions_RelationExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_RelationExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_ShiftExpression" + // Java.g:16077:1: parse_org_emftext_language_java_expressions_ShiftExpression returns [org.emftext.language.java.expressions.ShiftExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_ShiftOperator ) (a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) ) )* ; + public final org.emftext.language.java.expressions.ShiftExpression parse_org_emftext_language_java_expressions_ShiftExpression() throws RecognitionException { + org.emftext.language.java.expressions.ShiftExpression element = null; + + int parse_org_emftext_language_java_expressions_ShiftExpression_StartIndex = input.index(); + + org.emftext.language.java.expressions.AdditiveExpression a0_0 =null; + + org.emftext.language.java.operators.ShiftOperator a1_0 =null; + + org.emftext.language.java.expressions.AdditiveExpression a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 84) ) { return element; } + + // Java.g:16080:2: ( (a0_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_ShiftOperator ) (a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) ) )* ) + // Java.g:16081:2: (a0_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_ShiftOperator ) (a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) ) )* + { + // Java.g:16081:2: (a0_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) + // Java.g:16082:3: a0_0= parse_org_emftext_language_java_expressions_AdditiveExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AdditiveExpression_in_parse_org_emftext_language_java_expressions_ShiftExpression19275); + a0_0=parse_org_emftext_language_java_expressions_AdditiveExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createShiftExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.SHIFT_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_82_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(74420); + addExpectedElement(74424); + addExpectedElement(74425); + addExpectedElement(74427); + addExpectedElement(74436); + addExpectedElement(74448); + addExpectedElement(74481); + } + + // Java.g:16113:2: ( ( (a1_0= parse_org_emftext_language_java_operators_ShiftOperator ) (a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) ) )* + loop205: + do { + int alt205=2; + int LA205_0 = input.LA(1); + + if ( (LA205_0==43) ) { + int LA205_1 = input.LA(2); + + if ( (synpred206_Java()) ) { + alt205=1; + } + + + } + else if ( (LA205_0==46) ) { + int LA205_2 = input.LA(2); + + if ( (synpred206_Java()) ) { + alt205=1; + } + + + } + + + switch (alt205) { + case 1 : + // Java.g:16114:3: ( (a1_0= parse_org_emftext_language_java_operators_ShiftOperator ) (a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) ) + { + // Java.g:16114:3: ( (a1_0= parse_org_emftext_language_java_operators_ShiftOperator ) (a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) ) + // Java.g:16115:4: (a1_0= parse_org_emftext_language_java_operators_ShiftOperator ) (a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) + { + // Java.g:16115:4: (a1_0= parse_org_emftext_language_java_operators_ShiftOperator ) + // Java.g:16116:5: a1_0= parse_org_emftext_language_java_operators_ShiftOperator + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_ShiftOperator_in_parse_org_emftext_language_java_expressions_ShiftExpression19308); + a1_0=parse_org_emftext_language_java_operators_ShiftOperator(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createShiftExpression(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.SHIFT_EXPRESSION__SHIFT_OPERATORS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_82_0_0_1_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(74565); + } + + // Java.g:16141:4: (a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) + // Java.g:16142:5: a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AdditiveExpression_in_parse_org_emftext_language_java_expressions_ShiftExpression19342); + a2_0=parse_org_emftext_language_java_expressions_AdditiveExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createShiftExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.SHIFT_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_82_0_0_1_0_0_3, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(74568); + addExpectedElement(74572); + addExpectedElement(74573); + addExpectedElement(74575); + addExpectedElement(74584); + addExpectedElement(74596); + addExpectedElement(74629); + } + + } + + + } + break; + + default : + break loop205; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(74632); + addExpectedElement(74636); + addExpectedElement(74637); + addExpectedElement(74639); + addExpectedElement(74648); + addExpectedElement(74660); + addExpectedElement(74693); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 84, parse_org_emftext_language_java_expressions_ShiftExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_ShiftExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_AdditiveExpression" + // Java.g:16194:1: parse_org_emftext_language_java_expressions_AdditiveExpression returns [org.emftext.language.java.expressions.AdditiveExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_AdditiveOperator ) (a2_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression ) ) )* ; + public final org.emftext.language.java.expressions.AdditiveExpression parse_org_emftext_language_java_expressions_AdditiveExpression() throws RecognitionException { + org.emftext.language.java.expressions.AdditiveExpression element = null; + + int parse_org_emftext_language_java_expressions_AdditiveExpression_StartIndex = input.index(); + + org.emftext.language.java.expressions.MultiplicativeExpression a0_0 =null; + + org.emftext.language.java.operators.AdditiveOperator a1_0 =null; + + org.emftext.language.java.expressions.MultiplicativeExpression a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 85) ) { return element; } + + // Java.g:16197:2: ( (a0_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_AdditiveOperator ) (a2_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression ) ) )* ) + // Java.g:16198:2: (a0_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_AdditiveOperator ) (a2_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression ) ) )* + { + // Java.g:16198:2: (a0_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression ) + // Java.g:16199:3: a0_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_MultiplicativeExpression_in_parse_org_emftext_language_java_expressions_AdditiveExpression19402); + a0_0=parse_org_emftext_language_java_expressions_MultiplicativeExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createAdditiveExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.ADDITIVE_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_83_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(74695); + addExpectedElement(74698); + addExpectedElement(74702); + addExpectedElement(74703); + addExpectedElement(74705); + addExpectedElement(74714); + addExpectedElement(74726); + addExpectedElement(74759); + } + + // Java.g:16231:2: ( ( (a1_0= parse_org_emftext_language_java_operators_AdditiveOperator ) (a2_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression ) ) )* + loop206: + do { + int alt206=2; + int LA206_0 = input.LA(1); + + if ( (LA206_0==30||LA206_0==34) ) { + alt206=1; + } + + + switch (alt206) { + case 1 : + // Java.g:16232:3: ( (a1_0= parse_org_emftext_language_java_operators_AdditiveOperator ) (a2_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression ) ) + { + // Java.g:16232:3: ( (a1_0= parse_org_emftext_language_java_operators_AdditiveOperator ) (a2_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression ) ) + // Java.g:16233:4: (a1_0= parse_org_emftext_language_java_operators_AdditiveOperator ) (a2_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression ) + { + // Java.g:16233:4: (a1_0= parse_org_emftext_language_java_operators_AdditiveOperator ) + // Java.g:16234:5: a1_0= parse_org_emftext_language_java_operators_AdditiveOperator + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_AdditiveOperator_in_parse_org_emftext_language_java_expressions_AdditiveExpression19435); + a1_0=parse_org_emftext_language_java_operators_AdditiveOperator(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createAdditiveExpression(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.ADDITIVE_EXPRESSION__ADDITIVE_OPERATORS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_83_0_0_1_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(74843); + } + + // Java.g:16259:4: (a2_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression ) + // Java.g:16260:5: a2_0= parse_org_emftext_language_java_expressions_MultiplicativeExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_MultiplicativeExpression_in_parse_org_emftext_language_java_expressions_AdditiveExpression19469); + a2_0=parse_org_emftext_language_java_expressions_MultiplicativeExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createAdditiveExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.ADDITIVE_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_83_0_0_1_0_0_3, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(74845); + addExpectedElement(74848); + addExpectedElement(74852); + addExpectedElement(74853); + addExpectedElement(74855); + addExpectedElement(74864); + addExpectedElement(74876); + addExpectedElement(74909); + } + + } + + + } + break; + + default : + break loop206; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(74911); + addExpectedElement(74914); + addExpectedElement(74918); + addExpectedElement(74919); + addExpectedElement(74921); + addExpectedElement(74930); + addExpectedElement(74942); + addExpectedElement(74975); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 85, parse_org_emftext_language_java_expressions_AdditiveExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_AdditiveExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_MultiplicativeExpression" + // Java.g:16314:1: parse_org_emftext_language_java_expressions_MultiplicativeExpression returns [org.emftext.language.java.expressions.MultiplicativeExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_UnaryExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_MultiplicativeOperator ) (a2_0= parse_org_emftext_language_java_expressions_UnaryExpression ) ) )* ; + public final org.emftext.language.java.expressions.MultiplicativeExpression parse_org_emftext_language_java_expressions_MultiplicativeExpression() throws RecognitionException { + org.emftext.language.java.expressions.MultiplicativeExpression element = null; + + int parse_org_emftext_language_java_expressions_MultiplicativeExpression_StartIndex = input.index(); + + org.emftext.language.java.expressions.UnaryExpression a0_0 =null; + + org.emftext.language.java.operators.MultiplicativeOperator a1_0 =null; + + org.emftext.language.java.expressions.UnaryExpression a2_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 86) ) { return element; } + + // Java.g:16317:2: ( (a0_0= parse_org_emftext_language_java_expressions_UnaryExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_MultiplicativeOperator ) (a2_0= parse_org_emftext_language_java_expressions_UnaryExpression ) ) )* ) + // Java.g:16318:2: (a0_0= parse_org_emftext_language_java_expressions_UnaryExpression ) ( ( (a1_0= parse_org_emftext_language_java_operators_MultiplicativeOperator ) (a2_0= parse_org_emftext_language_java_expressions_UnaryExpression ) ) )* + { + // Java.g:16318:2: (a0_0= parse_org_emftext_language_java_expressions_UnaryExpression ) + // Java.g:16319:3: a0_0= parse_org_emftext_language_java_expressions_UnaryExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_UnaryExpression_in_parse_org_emftext_language_java_expressions_MultiplicativeExpression19529); + a0_0=parse_org_emftext_language_java_expressions_UnaryExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createMultiplicativeExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.MULTIPLICATIVE_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_84_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(74978); + addExpectedElement(74980); + addExpectedElement(74983); + addExpectedElement(74987); + addExpectedElement(74988); + addExpectedElement(74990); + addExpectedElement(74999); + addExpectedElement(75011); + addExpectedElement(75044); + } + + // Java.g:16352:2: ( ( (a1_0= parse_org_emftext_language_java_operators_MultiplicativeOperator ) (a2_0= parse_org_emftext_language_java_expressions_UnaryExpression ) ) )* + loop207: + do { + int alt207=2; + int LA207_0 = input.LA(1); + + if ( (LA207_0==28||LA207_0==39||LA207_0==51) ) { + alt207=1; + } + + + switch (alt207) { + case 1 : + // Java.g:16353:3: ( (a1_0= parse_org_emftext_language_java_operators_MultiplicativeOperator ) (a2_0= parse_org_emftext_language_java_expressions_UnaryExpression ) ) + { + // Java.g:16353:3: ( (a1_0= parse_org_emftext_language_java_operators_MultiplicativeOperator ) (a2_0= parse_org_emftext_language_java_expressions_UnaryExpression ) ) + // Java.g:16354:4: (a1_0= parse_org_emftext_language_java_operators_MultiplicativeOperator ) (a2_0= parse_org_emftext_language_java_expressions_UnaryExpression ) + { + // Java.g:16354:4: (a1_0= parse_org_emftext_language_java_operators_MultiplicativeOperator ) + // Java.g:16355:5: a1_0= parse_org_emftext_language_java_operators_MultiplicativeOperator + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_MultiplicativeOperator_in_parse_org_emftext_language_java_expressions_MultiplicativeExpression19562); + a1_0=parse_org_emftext_language_java_operators_MultiplicativeOperator(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createMultiplicativeExpression(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.MULTIPLICATIVE_EXPRESSION__MULTIPLICATIVE_OPERATORS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_84_0_0_1_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(75128); + } + + // Java.g:16380:4: (a2_0= parse_org_emftext_language_java_expressions_UnaryExpression ) + // Java.g:16381:5: a2_0= parse_org_emftext_language_java_expressions_UnaryExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_UnaryExpression_in_parse_org_emftext_language_java_expressions_MultiplicativeExpression19596); + a2_0=parse_org_emftext_language_java_expressions_UnaryExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createMultiplicativeExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.MULTIPLICATIVE_EXPRESSION__CHILDREN, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_84_0_0_1_0_0_3, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(75131); + addExpectedElement(75133); + addExpectedElement(75136); + addExpectedElement(75140); + addExpectedElement(75141); + addExpectedElement(75143); + addExpectedElement(75152); + addExpectedElement(75164); + addExpectedElement(75197); + } + + } + + + } + break; + + default : + break loop207; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(75200); + addExpectedElement(75202); + addExpectedElement(75205); + addExpectedElement(75209); + addExpectedElement(75210); + addExpectedElement(75212); + addExpectedElement(75221); + addExpectedElement(75233); + addExpectedElement(75266); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 86, parse_org_emftext_language_java_expressions_MultiplicativeExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_MultiplicativeExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_UnaryExpression" + // Java.g:16437:1: parse_org_emftext_language_java_expressions_UnaryExpression returns [org.emftext.language.java.expressions.UnaryExpression element = null] : ( (a0_0= parse_org_emftext_language_java_operators_UnaryOperator ) )* (a1_0= parse_org_emftext_language_java_expressions_UnaryModificationExpression ) ; + public final org.emftext.language.java.expressions.UnaryExpression parse_org_emftext_language_java_expressions_UnaryExpression() throws RecognitionException { + org.emftext.language.java.expressions.UnaryExpression element = null; + + int parse_org_emftext_language_java_expressions_UnaryExpression_StartIndex = input.index(); + + org.emftext.language.java.operators.UnaryOperator a0_0 =null; + + org.emftext.language.java.expressions.UnaryModificationExpression a1_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 87) ) { return element; } + + // Java.g:16440:2: ( ( (a0_0= parse_org_emftext_language_java_operators_UnaryOperator ) )* (a1_0= parse_org_emftext_language_java_expressions_UnaryModificationExpression ) ) + // Java.g:16441:2: ( (a0_0= parse_org_emftext_language_java_operators_UnaryOperator ) )* (a1_0= parse_org_emftext_language_java_expressions_UnaryModificationExpression ) + { + // Java.g:16441:2: ( (a0_0= parse_org_emftext_language_java_operators_UnaryOperator ) )* + loop208: + do { + int alt208=2; + int LA208_0 = input.LA(1); + + if ( (LA208_0==21||LA208_0==30||LA208_0==34||LA208_0==110) ) { + alt208=1; + } + + + switch (alt208) { + case 1 : + // Java.g:16442:3: (a0_0= parse_org_emftext_language_java_operators_UnaryOperator ) + { + // Java.g:16442:3: (a0_0= parse_org_emftext_language_java_operators_UnaryOperator ) + // Java.g:16443:4: a0_0= parse_org_emftext_language_java_operators_UnaryOperator + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_UnaryOperator_in_parse_org_emftext_language_java_expressions_UnaryExpression19661); + a0_0=parse_org_emftext_language_java_operators_UnaryOperator(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createUnaryExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.UNARY_EXPRESSION__OPERATORS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_85_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + } + break; + + default : + break loop208; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(75350); + } + + // Java.g:16469:2: (a1_0= parse_org_emftext_language_java_expressions_UnaryModificationExpression ) + // Java.g:16470:3: a1_0= parse_org_emftext_language_java_expressions_UnaryModificationExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_UnaryModificationExpression_in_parse_org_emftext_language_java_expressions_UnaryExpression19691); + a1_0=parse_org_emftext_language_java_expressions_UnaryModificationExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createUnaryExpression(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.UNARY_EXPRESSION__CHILD), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_85_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(75353); + addExpectedElement(75355); + addExpectedElement(75358); + addExpectedElement(75362); + addExpectedElement(75363); + addExpectedElement(75365); + addExpectedElement(75374); + addExpectedElement(75386); + addExpectedElement(75419); + addExpectedElement(75421); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 87, parse_org_emftext_language_java_expressions_UnaryExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_UnaryExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression" + // Java.g:16509:1: parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression returns [org.emftext.language.java.expressions.SuffixUnaryModificationExpression element = null] : (a0_0= parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild ) ( ( (a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) )? ; + public final org.emftext.language.java.expressions.SuffixUnaryModificationExpression parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression() throws RecognitionException { + org.emftext.language.java.expressions.SuffixUnaryModificationExpression element = null; + + int parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression_StartIndex = input.index(); + + org.emftext.language.java.expressions.UnaryModificationExpressionChild a0_0 =null; + + org.emftext.language.java.operators.UnaryModificationOperator a1_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 88) ) { return element; } + + // Java.g:16512:2: ( (a0_0= parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild ) ( ( (a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) )? ) + // Java.g:16513:2: (a0_0= parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild ) ( ( (a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) )? + { + // Java.g:16513:2: (a0_0= parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild ) + // Java.g:16514:3: a0_0= parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild_in_parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression19728); + a0_0=parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createSuffixUnaryModificationExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.SUFFIX_UNARY_MODIFICATION_EXPRESSION__CHILD), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_86_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(75423); + addExpectedElement(75426); + addExpectedElement(75428); + addExpectedElement(75431); + addExpectedElement(75435); + addExpectedElement(75436); + addExpectedElement(75438); + addExpectedElement(75447); + addExpectedElement(75459); + addExpectedElement(75492); + } + + // Java.g:16548:2: ( ( (a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) )? + int alt209=2; + int LA209_0 = input.LA(1); + + if ( (LA209_0==31) ) { + int LA209_1 = input.LA(2); + + if ( (synpred210_Java()) ) { + alt209=1; + } + } + else if ( (LA209_0==35) ) { + int LA209_2 = input.LA(2); + + if ( (synpred210_Java()) ) { + alt209=1; + } + } + switch (alt209) { + case 1 : + // Java.g:16549:3: ( (a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) + { + // Java.g:16549:3: ( (a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) + // Java.g:16550:4: (a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) + { + // Java.g:16550:4: (a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) + // Java.g:16551:5: a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_UnaryModificationOperator_in_parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression19761); + a1_0=parse_org_emftext_language_java_operators_UnaryModificationOperator(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createSuffixUnaryModificationExpression(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.SUFFIX_UNARY_MODIFICATION_EXPRESSION__OPERATOR), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_86_0_0_1_0_0_0, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(75495); + addExpectedElement(75497); + addExpectedElement(75500); + addExpectedElement(75504); + addExpectedElement(75505); + addExpectedElement(75507); + addExpectedElement(75516); + addExpectedElement(75528); + addExpectedElement(75561); + addExpectedElement(75563); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(75566); + addExpectedElement(75568); + addExpectedElement(75571); + addExpectedElement(75575); + addExpectedElement(75576); + addExpectedElement(75578); + addExpectedElement(75587); + addExpectedElement(75599); + addExpectedElement(75632); + addExpectedElement(75634); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 88, parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression" + // Java.g:16609:1: parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression returns [org.emftext.language.java.expressions.PrefixUnaryModificationExpression element = null] : ( ( (a0_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) )? (a1_0= parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild ) ; + public final org.emftext.language.java.expressions.PrefixUnaryModificationExpression parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression() throws RecognitionException { + org.emftext.language.java.expressions.PrefixUnaryModificationExpression element = null; + + int parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression_StartIndex = input.index(); + + org.emftext.language.java.operators.UnaryModificationOperator a0_0 =null; + + org.emftext.language.java.expressions.UnaryModificationExpressionChild a1_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 89) ) { return element; } + + // Java.g:16612:2: ( ( ( (a0_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) )? (a1_0= parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild ) ) + // Java.g:16613:2: ( ( (a0_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) )? (a1_0= parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild ) + { + // Java.g:16613:2: ( ( (a0_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) )? + int alt210=2; + int LA210_0 = input.LA(1); + + if ( (LA210_0==31||LA210_0==35) ) { + alt210=1; + } + switch (alt210) { + case 1 : + // Java.g:16614:3: ( (a0_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) + { + // Java.g:16614:3: ( (a0_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) + // Java.g:16615:4: (a0_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) + { + // Java.g:16615:4: (a0_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) + // Java.g:16616:5: a0_0= parse_org_emftext_language_java_operators_UnaryModificationOperator + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_UnaryModificationOperator_in_parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression19832); + a0_0=parse_org_emftext_language_java_operators_UnaryModificationOperator(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createPrefixUnaryModificationExpression(); + startIncompleteElement(element); + } + if (a0_0 != null) { + if (a0_0 != null) { + Object value = a0_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.PREFIX_UNARY_MODIFICATION_EXPRESSION__OPERATOR), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_87_0_0_0_0_0_0, a0_0, true); + copyLocalizationInfos(a0_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(75673); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(75712); + } + + // Java.g:16648:2: (a1_0= parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild ) + // Java.g:16649:3: a1_0= parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild_in_parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression19877); + a1_0=parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createPrefixUnaryModificationExpression(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.PREFIX_UNARY_MODIFICATION_EXPRESSION__CHILD), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_87_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(75715); + addExpectedElement(75717); + addExpectedElement(75720); + addExpectedElement(75724); + addExpectedElement(75725); + addExpectedElement(75727); + addExpectedElement(75736); + addExpectedElement(75748); + addExpectedElement(75781); + addExpectedElement(75783); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 89, parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_CastExpression" + // Java.g:16688:1: parse_org_emftext_language_java_expressions_CastExpression returns [org.emftext.language.java.expressions.CastExpression element = null] : a0= '(' (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* a3= ')' (a4_0= parse_org_emftext_language_java_expressions_UnaryExpression ) ; + public final org.emftext.language.java.expressions.CastExpression parse_org_emftext_language_java_expressions_CastExpression() throws RecognitionException { + org.emftext.language.java.expressions.CastExpression element = null; + + int parse_org_emftext_language_java_expressions_CastExpression_StartIndex = input.index(); + + Token a0=null; + Token a3=null; + org.emftext.language.java.types.TypeReference a1_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a2_0 =null; + + org.emftext.language.java.expressions.UnaryExpression a4_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 90) ) { return element; } + + // Java.g:16691:2: (a0= '(' (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* a3= ')' (a4_0= parse_org_emftext_language_java_expressions_UnaryExpression ) ) + // Java.g:16692:2: a0= '(' (a1_0= parse_org_emftext_language_java_types_TypeReference ) ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* a3= ')' (a4_0= parse_org_emftext_language_java_expressions_UnaryExpression ) + { + a0=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_expressions_CastExpression19910); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createCastExpression(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_88_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(75795); + } + + // Java.g:16706:2: (a1_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:16707:3: a1_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_expressions_CastExpression19928); + a1_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createCastExpression(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.CAST_EXPRESSION__TYPE_REFERENCE), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_88_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(75796); + addExpectedElement(75797); + } + + // Java.g:16733:2: ( (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop211: + do { + int alt211=2; + int LA211_0 = input.LA(1); + + if ( (LA211_0==49) ) { + alt211=1; + } + + + switch (alt211) { + case 1 : + // Java.g:16734:3: (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:16734:3: (a2_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:16735:4: a2_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_expressions_CastExpression19955); + a2_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createCastExpression(); + startIncompleteElement(element); + } + if (a2_0 != null) { + if (a2_0 != null) { + Object value = a2_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.CAST_EXPRESSION__ARRAY_DIMENSIONS_BEFORE, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_88_0_0_2, a2_0, true); + copyLocalizationInfos(a2_0, element); + } + } + + } + + + } + break; + + default : + break loop211; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(75798); + addExpectedElement(75799); + } + + a3=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_expressions_CastExpression19981); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createCastExpression(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_88_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(75883); + } + + // Java.g:16776:2: (a4_0= parse_org_emftext_language_java_expressions_UnaryExpression ) + // Java.g:16777:3: a4_0= parse_org_emftext_language_java_expressions_UnaryExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_UnaryExpression_in_parse_org_emftext_language_java_expressions_CastExpression19999); + a4_0=parse_org_emftext_language_java_expressions_UnaryExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createCastExpression(); + startIncompleteElement(element); + } + if (a4_0 != null) { + if (a4_0 != null) { + Object value = a4_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.CAST_EXPRESSION__CHILD), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_88_0_0_5, a4_0, true); + copyLocalizationInfos(a4_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(75885); + addExpectedElement(75888); + addExpectedElement(75890); + addExpectedElement(75893); + addExpectedElement(75897); + addExpectedElement(75898); + addExpectedElement(75900); + addExpectedElement(75909); + addExpectedElement(75921); + addExpectedElement(75954); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 90, parse_org_emftext_language_java_expressions_CastExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_CastExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_NestedExpression" + // Java.g:16816:1: parse_org_emftext_language_java_expressions_NestedExpression returns [org.emftext.language.java.expressions.NestedExpression element = null] : a0= '(' (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a2= ')' ( (a3_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a4= '.' (a5_0= parse_org_emftext_language_java_references_Reference ) ) )? ; + public final org.emftext.language.java.expressions.NestedExpression parse_org_emftext_language_java_expressions_NestedExpression() throws RecognitionException { + org.emftext.language.java.expressions.NestedExpression element = null; + + int parse_org_emftext_language_java_expressions_NestedExpression_StartIndex = input.index(); + + Token a0=null; + Token a2=null; + Token a4=null; + org.emftext.language.java.expressions.AssignmentExpression a1_0 =null; + + org.emftext.language.java.arrays.ArraySelector a3_0 =null; + + org.emftext.language.java.references.Reference a5_0 =null; + + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 91) ) { return element; } + + // Java.g:16819:2: (a0= '(' (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a2= ')' ( (a3_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a4= '.' (a5_0= parse_org_emftext_language_java_references_Reference ) ) )? ) + // Java.g:16820:2: a0= '(' (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) a2= ')' ( (a3_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* ( (a4= '.' (a5_0= parse_org_emftext_language_java_references_Reference ) ) )? + { + a0=(Token)match(input,26,FOLLOW_26_in_parse_org_emftext_language_java_expressions_NestedExpression20032); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createNestedExpression(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_89_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(76038); + } + + // Java.g:16834:2: (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:16835:3: a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_expressions_NestedExpression20050); + a1_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createNestedExpression(); + startIncompleteElement(element); + } + if (a1_0 != null) { + if (a1_0 != null) { + Object value = a1_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.NESTED_EXPRESSION__EXPRESSION), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_89_0_0_1, a1_0, true); + copyLocalizationInfos(a1_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(76039); + } + + a2=(Token)match(input,27,FOLLOW_27_in_parse_org_emftext_language_java_expressions_NestedExpression20068); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createNestedExpression(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_89_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(76040); + addExpectedElement(76041); + addExpectedElement(76043); + addExpectedElement(76046); + addExpectedElement(76048); + addExpectedElement(76051); + addExpectedElement(76055); + addExpectedElement(76056); + addExpectedElement(76058); + addExpectedElement(76067); + addExpectedElement(76079); + addExpectedElement(76105); + } + + // Java.g:16885:2: ( (a3_0= parse_org_emftext_language_java_arrays_ArraySelector ) )* + loop212: + do { + int alt212=2; + int LA212_0 = input.LA(1); + + if ( (LA212_0==49) ) { + alt212=1; + } + + + switch (alt212) { + case 1 : + // Java.g:16886:3: (a3_0= parse_org_emftext_language_java_arrays_ArraySelector ) + { + // Java.g:16886:3: (a3_0= parse_org_emftext_language_java_arrays_ArraySelector ) + // Java.g:16887:4: a3_0= parse_org_emftext_language_java_arrays_ArraySelector + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArraySelector_in_parse_org_emftext_language_java_expressions_NestedExpression20091); + a3_0=parse_org_emftext_language_java_arrays_ArraySelector(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createNestedExpression(); + startIncompleteElement(element); + } + if (a3_0 != null) { + if (a3_0 != null) { + Object value = a3_0; + addObjectToList(element, org.emftext.language.java.expressions.ExpressionsPackage.NESTED_EXPRESSION__ARRAY_SELECTORS, value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_89_0_0_3, a3_0, true); + copyLocalizationInfos(a3_0, element); + } + } + + } + + + } + break; + + default : + break loop212; + } + } while (true); + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(76106); + addExpectedElement(76107); + addExpectedElement(76109); + addExpectedElement(76112); + addExpectedElement(76114); + addExpectedElement(76117); + addExpectedElement(76121); + addExpectedElement(76122); + addExpectedElement(76124); + addExpectedElement(76133); + addExpectedElement(76145); + addExpectedElement(76171); + } + + // Java.g:16924:2: ( (a4= '.' (a5_0= parse_org_emftext_language_java_references_Reference ) ) )? + int alt213=2; + int LA213_0 = input.LA(1); + + if ( (LA213_0==37) ) { + alt213=1; + } + switch (alt213) { + case 1 : + // Java.g:16925:3: (a4= '.' (a5_0= parse_org_emftext_language_java_references_Reference ) ) + { + // Java.g:16925:3: (a4= '.' (a5_0= parse_org_emftext_language_java_references_Reference ) ) + // Java.g:16926:4: a4= '.' (a5_0= parse_org_emftext_language_java_references_Reference ) + { + a4=(Token)match(input,37,FOLLOW_37_in_parse_org_emftext_language_java_expressions_NestedExpression20126); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createNestedExpression(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_89_0_0_4_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a4, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(76196); + } + + // Java.g:16940:4: (a5_0= parse_org_emftext_language_java_references_Reference ) + // Java.g:16941:5: a5_0= parse_org_emftext_language_java_references_Reference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_expressions_NestedExpression20152); + a5_0=parse_org_emftext_language_java_references_Reference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.expressions.ExpressionsFactory.eINSTANCE.createNestedExpression(); + startIncompleteElement(element); + } + if (a5_0 != null) { + if (a5_0 != null) { + Object value = a5_0; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.expressions.ExpressionsPackage.NESTED_EXPRESSION__NEXT), value); + completedElement(value, true); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_89_0_0_4_0_0_1, a5_0, true); + copyLocalizationInfos(a5_0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(76198); + addExpectedElement(76201); + addExpectedElement(76203); + addExpectedElement(76206); + addExpectedElement(76210); + addExpectedElement(76211); + addExpectedElement(76213); + addExpectedElement(76222); + addExpectedElement(76234); + addExpectedElement(76260); + } + + } + + + } + break; + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(76262); + addExpectedElement(76265); + addExpectedElement(76267); + addExpectedElement(76270); + addExpectedElement(76274); + addExpectedElement(76275); + addExpectedElement(76277); + addExpectedElement(76286); + addExpectedElement(76298); + addExpectedElement(76324); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 91, parse_org_emftext_language_java_expressions_NestedExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_NestedExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_Assignment" + // Java.g:16999:1: parse_org_emftext_language_java_operators_Assignment returns [org.emftext.language.java.operators.Assignment element = null] : a0= '=' ; + public final org.emftext.language.java.operators.Assignment parse_org_emftext_language_java_operators_Assignment() throws RecognitionException { + org.emftext.language.java.operators.Assignment element = null; + + int parse_org_emftext_language_java_operators_Assignment_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 92) ) { return element; } + + // Java.g:17002:2: (a0= '=' ) + // Java.g:17003:2: a0= '=' + { + a0=(Token)match(input,44,FOLLOW_44_in_parse_org_emftext_language_java_operators_Assignment20208); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignment(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_90_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(76408); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 92, parse_org_emftext_language_java_operators_Assignment_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_Assignment" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_AssignmentPlus" + // Java.g:17022:1: parse_org_emftext_language_java_operators_AssignmentPlus returns [org.emftext.language.java.operators.AssignmentPlus element = null] : a0= '+=' ; + public final org.emftext.language.java.operators.AssignmentPlus parse_org_emftext_language_java_operators_AssignmentPlus() throws RecognitionException { + org.emftext.language.java.operators.AssignmentPlus element = null; + + int parse_org_emftext_language_java_operators_AssignmentPlus_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 93) ) { return element; } + + // Java.g:17025:2: (a0= '+=' ) + // Java.g:17026:2: a0= '+=' + { + a0=(Token)match(input,32,FOLLOW_32_in_parse_org_emftext_language_java_operators_AssignmentPlus20237); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentPlus(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_91_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(76492); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 93, parse_org_emftext_language_java_operators_AssignmentPlus_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_AssignmentPlus" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_AssignmentMinus" + // Java.g:17045:1: parse_org_emftext_language_java_operators_AssignmentMinus returns [org.emftext.language.java.operators.AssignmentMinus element = null] : a0= '-=' ; + public final org.emftext.language.java.operators.AssignmentMinus parse_org_emftext_language_java_operators_AssignmentMinus() throws RecognitionException { + org.emftext.language.java.operators.AssignmentMinus element = null; + + int parse_org_emftext_language_java_operators_AssignmentMinus_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 94) ) { return element; } + + // Java.g:17048:2: (a0= '-=' ) + // Java.g:17049:2: a0= '-=' + { + a0=(Token)match(input,36,FOLLOW_36_in_parse_org_emftext_language_java_operators_AssignmentMinus20266); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentMinus(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_92_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(76576); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 94, parse_org_emftext_language_java_operators_AssignmentMinus_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_AssignmentMinus" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_AssignmentMultiplication" + // Java.g:17068:1: parse_org_emftext_language_java_operators_AssignmentMultiplication returns [org.emftext.language.java.operators.AssignmentMultiplication element = null] : a0= '*=' ; + public final org.emftext.language.java.operators.AssignmentMultiplication parse_org_emftext_language_java_operators_AssignmentMultiplication() throws RecognitionException { + org.emftext.language.java.operators.AssignmentMultiplication element = null; + + int parse_org_emftext_language_java_operators_AssignmentMultiplication_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 95) ) { return element; } + + // Java.g:17071:2: (a0= '*=' ) + // Java.g:17072:2: a0= '*=' + { + a0=(Token)match(input,29,FOLLOW_29_in_parse_org_emftext_language_java_operators_AssignmentMultiplication20295); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentMultiplication(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_93_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(76660); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 95, parse_org_emftext_language_java_operators_AssignmentMultiplication_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_AssignmentMultiplication" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_AssignmentDivision" + // Java.g:17091:1: parse_org_emftext_language_java_operators_AssignmentDivision returns [org.emftext.language.java.operators.AssignmentDivision element = null] : a0= '/=' ; + public final org.emftext.language.java.operators.AssignmentDivision parse_org_emftext_language_java_operators_AssignmentDivision() throws RecognitionException { + org.emftext.language.java.operators.AssignmentDivision element = null; + + int parse_org_emftext_language_java_operators_AssignmentDivision_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 96) ) { return element; } + + // Java.g:17094:2: (a0= '/=' ) + // Java.g:17095:2: a0= '/=' + { + a0=(Token)match(input,40,FOLLOW_40_in_parse_org_emftext_language_java_operators_AssignmentDivision20324); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentDivision(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_94_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(76744); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 96, parse_org_emftext_language_java_operators_AssignmentDivision_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_AssignmentDivision" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_AssignmentAnd" + // Java.g:17114:1: parse_org_emftext_language_java_operators_AssignmentAnd returns [org.emftext.language.java.operators.AssignmentAnd element = null] : a0= '&=' ; + public final org.emftext.language.java.operators.AssignmentAnd parse_org_emftext_language_java_operators_AssignmentAnd() throws RecognitionException { + org.emftext.language.java.operators.AssignmentAnd element = null; + + int parse_org_emftext_language_java_operators_AssignmentAnd_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 97) ) { return element; } + + // Java.g:17117:2: (a0= '&=' ) + // Java.g:17118:2: a0= '&=' + { + a0=(Token)match(input,25,FOLLOW_25_in_parse_org_emftext_language_java_operators_AssignmentAnd20353); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentAnd(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_95_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(76828); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 97, parse_org_emftext_language_java_operators_AssignmentAnd_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_AssignmentAnd" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_AssignmentOr" + // Java.g:17137:1: parse_org_emftext_language_java_operators_AssignmentOr returns [org.emftext.language.java.operators.AssignmentOr element = null] : a0= '|=' ; + public final org.emftext.language.java.operators.AssignmentOr parse_org_emftext_language_java_operators_AssignmentOr() throws RecognitionException { + org.emftext.language.java.operators.AssignmentOr element = null; + + int parse_org_emftext_language_java_operators_AssignmentOr_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 98) ) { return element; } + + // Java.g:17140:2: (a0= '|=' ) + // Java.g:17141:2: a0= '|=' + { + a0=(Token)match(input,107,FOLLOW_107_in_parse_org_emftext_language_java_operators_AssignmentOr20382); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentOr(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_96_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(76912); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 98, parse_org_emftext_language_java_operators_AssignmentOr_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_AssignmentOr" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_AssignmentExclusiveOr" + // Java.g:17160:1: parse_org_emftext_language_java_operators_AssignmentExclusiveOr returns [org.emftext.language.java.operators.AssignmentExclusiveOr element = null] : a0= '^=' ; + public final org.emftext.language.java.operators.AssignmentExclusiveOr parse_org_emftext_language_java_operators_AssignmentExclusiveOr() throws RecognitionException { + org.emftext.language.java.operators.AssignmentExclusiveOr element = null; + + int parse_org_emftext_language_java_operators_AssignmentExclusiveOr_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 99) ) { return element; } + + // Java.g:17163:2: (a0= '^=' ) + // Java.g:17164:2: a0= '^=' + { + a0=(Token)match(input,55,FOLLOW_55_in_parse_org_emftext_language_java_operators_AssignmentExclusiveOr20411); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentExclusiveOr(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_97_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(76996); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 99, parse_org_emftext_language_java_operators_AssignmentExclusiveOr_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_AssignmentExclusiveOr" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_AssignmentModulo" + // Java.g:17183:1: parse_org_emftext_language_java_operators_AssignmentModulo returns [org.emftext.language.java.operators.AssignmentModulo element = null] : a0= '\\u0025=' ; + public final org.emftext.language.java.operators.AssignmentModulo parse_org_emftext_language_java_operators_AssignmentModulo() throws RecognitionException { + org.emftext.language.java.operators.AssignmentModulo element = null; + + int parse_org_emftext_language_java_operators_AssignmentModulo_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 100) ) { return element; } + + // Java.g:17186:2: (a0= '\\u0025=' ) + // Java.g:17187:2: a0= '\\u0025=' + { + a0=(Token)match(input,52,FOLLOW_52_in_parse_org_emftext_language_java_operators_AssignmentModulo20440); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentModulo(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_98_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(77080); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 100, parse_org_emftext_language_java_operators_AssignmentModulo_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_AssignmentModulo" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_AssignmentLeftShift" + // Java.g:17206:1: parse_org_emftext_language_java_operators_AssignmentLeftShift returns [org.emftext.language.java.operators.AssignmentLeftShift element = null] : a0= '<' a1= '<' a2= '=' ; + public final org.emftext.language.java.operators.AssignmentLeftShift parse_org_emftext_language_java_operators_AssignmentLeftShift() throws RecognitionException { + org.emftext.language.java.operators.AssignmentLeftShift element = null; + + int parse_org_emftext_language_java_operators_AssignmentLeftShift_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a2=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 101) ) { return element; } + + // Java.g:17209:2: (a0= '<' a1= '<' a2= '=' ) + // Java.g:17210:2: a0= '<' a1= '<' a2= '=' + { + a0=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_operators_AssignmentLeftShift20469); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentLeftShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_99_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(77081); + } + + a1=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_operators_AssignmentLeftShift20483); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentLeftShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_99_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(77082); + } + + a2=(Token)match(input,44,FOLLOW_44_in_parse_org_emftext_language_java_operators_AssignmentLeftShift20497); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentLeftShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_99_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(77166); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 101, parse_org_emftext_language_java_operators_AssignmentLeftShift_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_AssignmentLeftShift" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_AssignmentRightShift" + // Java.g:17257:1: parse_org_emftext_language_java_operators_AssignmentRightShift returns [org.emftext.language.java.operators.AssignmentRightShift element = null] : a0= '>' a1= '>' a2= '=' ; + public final org.emftext.language.java.operators.AssignmentRightShift parse_org_emftext_language_java_operators_AssignmentRightShift() throws RecognitionException { + org.emftext.language.java.operators.AssignmentRightShift element = null; + + int parse_org_emftext_language_java_operators_AssignmentRightShift_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a2=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 102) ) { return element; } + + // Java.g:17260:2: (a0= '>' a1= '>' a2= '=' ) + // Java.g:17261:2: a0= '>' a1= '>' a2= '=' + { + a0=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_operators_AssignmentRightShift20526); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentRightShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_100_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(77167); + } + + a1=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_operators_AssignmentRightShift20540); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentRightShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_100_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(77168); + } + + a2=(Token)match(input,44,FOLLOW_44_in_parse_org_emftext_language_java_operators_AssignmentRightShift20554); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentRightShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_100_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(77252); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 102, parse_org_emftext_language_java_operators_AssignmentRightShift_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_AssignmentRightShift" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift" + // Java.g:17308:1: parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift returns [org.emftext.language.java.operators.AssignmentUnsignedRightShift element = null] : a0= '>' a1= '>' a2= '>' a3= '=' ; + public final org.emftext.language.java.operators.AssignmentUnsignedRightShift parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift() throws RecognitionException { + org.emftext.language.java.operators.AssignmentUnsignedRightShift element = null; + + int parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a2=null; + Token a3=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 103) ) { return element; } + + // Java.g:17311:2: (a0= '>' a1= '>' a2= '>' a3= '=' ) + // Java.g:17312:2: a0= '>' a1= '>' a2= '>' a3= '=' + { + a0=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift20583); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentUnsignedRightShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_101_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(77253); + } + + a1=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift20597); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentUnsignedRightShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_101_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(77254); + } + + a2=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift20611); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentUnsignedRightShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_101_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(77255); + } + + a3=(Token)match(input,44,FOLLOW_44_in_parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift20625); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAssignmentUnsignedRightShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_101_0_0_3, null, true); + copyLocalizationInfos((CommonToken)a3, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(77339); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 103, parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_Addition" + // Java.g:17373:1: parse_org_emftext_language_java_operators_Addition returns [org.emftext.language.java.operators.Addition element = null] : a0= '+' ; + public final org.emftext.language.java.operators.Addition parse_org_emftext_language_java_operators_Addition() throws RecognitionException { + org.emftext.language.java.operators.Addition element = null; + + int parse_org_emftext_language_java_operators_Addition_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 104) ) { return element; } + + // Java.g:17376:2: (a0= '+' ) + // Java.g:17377:2: a0= '+' + { + a0=(Token)match(input,30,FOLLOW_30_in_parse_org_emftext_language_java_operators_Addition20654); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createAddition(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_102_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(77423); + addExpectedElement(77507); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 104, parse_org_emftext_language_java_operators_Addition_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_Addition" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_Subtraction" + // Java.g:17397:1: parse_org_emftext_language_java_operators_Subtraction returns [org.emftext.language.java.operators.Subtraction element = null] : a0= '-' ; + public final org.emftext.language.java.operators.Subtraction parse_org_emftext_language_java_operators_Subtraction() throws RecognitionException { + org.emftext.language.java.operators.Subtraction element = null; + + int parse_org_emftext_language_java_operators_Subtraction_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 105) ) { return element; } + + // Java.g:17400:2: (a0= '-' ) + // Java.g:17401:2: a0= '-' + { + a0=(Token)match(input,34,FOLLOW_34_in_parse_org_emftext_language_java_operators_Subtraction20683); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createSubtraction(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_103_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(77591); + addExpectedElement(77675); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 105, parse_org_emftext_language_java_operators_Subtraction_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_Subtraction" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_Multiplication" + // Java.g:17421:1: parse_org_emftext_language_java_operators_Multiplication returns [org.emftext.language.java.operators.Multiplication element = null] : a0= '*' ; + public final org.emftext.language.java.operators.Multiplication parse_org_emftext_language_java_operators_Multiplication() throws RecognitionException { + org.emftext.language.java.operators.Multiplication element = null; + + int parse_org_emftext_language_java_operators_Multiplication_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 106) ) { return element; } + + // Java.g:17424:2: (a0= '*' ) + // Java.g:17425:2: a0= '*' + { + a0=(Token)match(input,28,FOLLOW_28_in_parse_org_emftext_language_java_operators_Multiplication20712); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createMultiplication(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_104_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(77759); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 106, parse_org_emftext_language_java_operators_Multiplication_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_Multiplication" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_Division" + // Java.g:17444:1: parse_org_emftext_language_java_operators_Division returns [org.emftext.language.java.operators.Division element = null] : a0= '/' ; + public final org.emftext.language.java.operators.Division parse_org_emftext_language_java_operators_Division() throws RecognitionException { + org.emftext.language.java.operators.Division element = null; + + int parse_org_emftext_language_java_operators_Division_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 107) ) { return element; } + + // Java.g:17447:2: (a0= '/' ) + // Java.g:17448:2: a0= '/' + { + a0=(Token)match(input,39,FOLLOW_39_in_parse_org_emftext_language_java_operators_Division20741); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createDivision(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_105_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(77843); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 107, parse_org_emftext_language_java_operators_Division_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_Division" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_Remainder" + // Java.g:17467:1: parse_org_emftext_language_java_operators_Remainder returns [org.emftext.language.java.operators.Remainder element = null] : a0= '\\u0025' ; + public final org.emftext.language.java.operators.Remainder parse_org_emftext_language_java_operators_Remainder() throws RecognitionException { + org.emftext.language.java.operators.Remainder element = null; + + int parse_org_emftext_language_java_operators_Remainder_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 108) ) { return element; } + + // Java.g:17470:2: (a0= '\\u0025' ) + // Java.g:17471:2: a0= '\\u0025' + { + a0=(Token)match(input,51,FOLLOW_51_in_parse_org_emftext_language_java_operators_Remainder20770); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createRemainder(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_106_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(77927); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 108, parse_org_emftext_language_java_operators_Remainder_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_Remainder" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_LessThan" + // Java.g:17490:1: parse_org_emftext_language_java_operators_LessThan returns [org.emftext.language.java.operators.LessThan element = null] : a0= '<' ; + public final org.emftext.language.java.operators.LessThan parse_org_emftext_language_java_operators_LessThan() throws RecognitionException { + org.emftext.language.java.operators.LessThan element = null; + + int parse_org_emftext_language_java_operators_LessThan_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 109) ) { return element; } + + // Java.g:17493:2: (a0= '<' ) + // Java.g:17494:2: a0= '<' + { + a0=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_operators_LessThan20799); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createLessThan(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_107_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78011); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 109, parse_org_emftext_language_java_operators_LessThan_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_LessThan" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_LessThanOrEqual" + // Java.g:17513:1: parse_org_emftext_language_java_operators_LessThanOrEqual returns [org.emftext.language.java.operators.LessThanOrEqual element = null] : a0= '<' a1= '=' ; + public final org.emftext.language.java.operators.LessThanOrEqual parse_org_emftext_language_java_operators_LessThanOrEqual() throws RecognitionException { + org.emftext.language.java.operators.LessThanOrEqual element = null; + + int parse_org_emftext_language_java_operators_LessThanOrEqual_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 110) ) { return element; } + + // Java.g:17516:2: (a0= '<' a1= '=' ) + // Java.g:17517:2: a0= '<' a1= '=' + { + a0=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_operators_LessThanOrEqual20828); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createLessThanOrEqual(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_108_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(78012); + } + + a1=(Token)match(input,44,FOLLOW_44_in_parse_org_emftext_language_java_operators_LessThanOrEqual20842); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createLessThanOrEqual(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_108_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78096); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 110, parse_org_emftext_language_java_operators_LessThanOrEqual_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_LessThanOrEqual" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_GreaterThan" + // Java.g:17550:1: parse_org_emftext_language_java_operators_GreaterThan returns [org.emftext.language.java.operators.GreaterThan element = null] : a0= '>' ; + public final org.emftext.language.java.operators.GreaterThan parse_org_emftext_language_java_operators_GreaterThan() throws RecognitionException { + org.emftext.language.java.operators.GreaterThan element = null; + + int parse_org_emftext_language_java_operators_GreaterThan_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 111) ) { return element; } + + // Java.g:17553:2: (a0= '>' ) + // Java.g:17554:2: a0= '>' + { + a0=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_operators_GreaterThan20871); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createGreaterThan(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_109_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78180); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 111, parse_org_emftext_language_java_operators_GreaterThan_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_GreaterThan" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_GreaterThanOrEqual" + // Java.g:17573:1: parse_org_emftext_language_java_operators_GreaterThanOrEqual returns [org.emftext.language.java.operators.GreaterThanOrEqual element = null] : a0= '>' a1= '=' ; + public final org.emftext.language.java.operators.GreaterThanOrEqual parse_org_emftext_language_java_operators_GreaterThanOrEqual() throws RecognitionException { + org.emftext.language.java.operators.GreaterThanOrEqual element = null; + + int parse_org_emftext_language_java_operators_GreaterThanOrEqual_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 112) ) { return element; } + + // Java.g:17576:2: (a0= '>' a1= '=' ) + // Java.g:17577:2: a0= '>' a1= '=' + { + a0=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_operators_GreaterThanOrEqual20900); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createGreaterThanOrEqual(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_110_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(78181); + } + + a1=(Token)match(input,44,FOLLOW_44_in_parse_org_emftext_language_java_operators_GreaterThanOrEqual20914); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createGreaterThanOrEqual(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_110_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78265); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 112, parse_org_emftext_language_java_operators_GreaterThanOrEqual_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_GreaterThanOrEqual" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_LeftShift" + // Java.g:17610:1: parse_org_emftext_language_java_operators_LeftShift returns [org.emftext.language.java.operators.LeftShift element = null] : a0= '<' a1= '<' ; + public final org.emftext.language.java.operators.LeftShift parse_org_emftext_language_java_operators_LeftShift() throws RecognitionException { + org.emftext.language.java.operators.LeftShift element = null; + + int parse_org_emftext_language_java_operators_LeftShift_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 113) ) { return element; } + + // Java.g:17613:2: (a0= '<' a1= '<' ) + // Java.g:17614:2: a0= '<' a1= '<' + { + a0=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_operators_LeftShift20943); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createLeftShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_111_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(78266); + } + + a1=(Token)match(input,43,FOLLOW_43_in_parse_org_emftext_language_java_operators_LeftShift20957); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createLeftShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_111_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78350); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 113, parse_org_emftext_language_java_operators_LeftShift_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_LeftShift" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_RightShift" + // Java.g:17647:1: parse_org_emftext_language_java_operators_RightShift returns [org.emftext.language.java.operators.RightShift element = null] : a0= '>' a1= '>' ; + public final org.emftext.language.java.operators.RightShift parse_org_emftext_language_java_operators_RightShift() throws RecognitionException { + org.emftext.language.java.operators.RightShift element = null; + + int parse_org_emftext_language_java_operators_RightShift_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 114) ) { return element; } + + // Java.g:17650:2: (a0= '>' a1= '>' ) + // Java.g:17651:2: a0= '>' a1= '>' + { + a0=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_operators_RightShift20986); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createRightShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_112_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(78351); + } + + a1=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_operators_RightShift21000); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createRightShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_112_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78435); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 114, parse_org_emftext_language_java_operators_RightShift_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_RightShift" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_UnsignedRightShift" + // Java.g:17684:1: parse_org_emftext_language_java_operators_UnsignedRightShift returns [org.emftext.language.java.operators.UnsignedRightShift element = null] : a0= '>' a1= '>' a2= '>' ; + public final org.emftext.language.java.operators.UnsignedRightShift parse_org_emftext_language_java_operators_UnsignedRightShift() throws RecognitionException { + org.emftext.language.java.operators.UnsignedRightShift element = null; + + int parse_org_emftext_language_java_operators_UnsignedRightShift_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + Token a2=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 115) ) { return element; } + + // Java.g:17687:2: (a0= '>' a1= '>' a2= '>' ) + // Java.g:17688:2: a0= '>' a1= '>' a2= '>' + { + a0=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_operators_UnsignedRightShift21029); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createUnsignedRightShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_113_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(78436); + } + + a1=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_operators_UnsignedRightShift21043); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createUnsignedRightShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_113_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(78437); + } + + a2=(Token)match(input,46,FOLLOW_46_in_parse_org_emftext_language_java_operators_UnsignedRightShift21057); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createUnsignedRightShift(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_113_0_0_2, null, true); + copyLocalizationInfos((CommonToken)a2, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78521); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 115, parse_org_emftext_language_java_operators_UnsignedRightShift_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_UnsignedRightShift" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_Equal" + // Java.g:17735:1: parse_org_emftext_language_java_operators_Equal returns [org.emftext.language.java.operators.Equal element = null] : a0= '==' ; + public final org.emftext.language.java.operators.Equal parse_org_emftext_language_java_operators_Equal() throws RecognitionException { + org.emftext.language.java.operators.Equal element = null; + + int parse_org_emftext_language_java_operators_Equal_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 116) ) { return element; } + + // Java.g:17738:2: (a0= '==' ) + // Java.g:17739:2: a0= '==' + { + a0=(Token)match(input,45,FOLLOW_45_in_parse_org_emftext_language_java_operators_Equal21086); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createEqual(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_114_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78605); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 116, parse_org_emftext_language_java_operators_Equal_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_Equal" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_NotEqual" + // Java.g:17758:1: parse_org_emftext_language_java_operators_NotEqual returns [org.emftext.language.java.operators.NotEqual element = null] : a0= '!=' ; + public final org.emftext.language.java.operators.NotEqual parse_org_emftext_language_java_operators_NotEqual() throws RecognitionException { + org.emftext.language.java.operators.NotEqual element = null; + + int parse_org_emftext_language_java_operators_NotEqual_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 117) ) { return element; } + + // Java.g:17761:2: (a0= '!=' ) + // Java.g:17762:2: a0= '!=' + { + a0=(Token)match(input,22,FOLLOW_22_in_parse_org_emftext_language_java_operators_NotEqual21115); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createNotEqual(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_115_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78689); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 117, parse_org_emftext_language_java_operators_NotEqual_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_NotEqual" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_PlusPlus" + // Java.g:17781:1: parse_org_emftext_language_java_operators_PlusPlus returns [org.emftext.language.java.operators.PlusPlus element = null] : a0= '++' ; + public final org.emftext.language.java.operators.PlusPlus parse_org_emftext_language_java_operators_PlusPlus() throws RecognitionException { + org.emftext.language.java.operators.PlusPlus element = null; + + int parse_org_emftext_language_java_operators_PlusPlus_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 118) ) { return element; } + + // Java.g:17784:2: (a0= '++' ) + // Java.g:17785:2: a0= '++' + { + a0=(Token)match(input,31,FOLLOW_31_in_parse_org_emftext_language_java_operators_PlusPlus21144); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createPlusPlus(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_116_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78692); + addExpectedElement(78694); + addExpectedElement(78697); + addExpectedElement(78701); + addExpectedElement(78702); + addExpectedElement(78704); + addExpectedElement(78713); + addExpectedElement(78725); + addExpectedElement(78758); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 118, parse_org_emftext_language_java_operators_PlusPlus_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_PlusPlus" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_MinusMinus" + // Java.g:17812:1: parse_org_emftext_language_java_operators_MinusMinus returns [org.emftext.language.java.operators.MinusMinus element = null] : a0= '--' ; + public final org.emftext.language.java.operators.MinusMinus parse_org_emftext_language_java_operators_MinusMinus() throws RecognitionException { + org.emftext.language.java.operators.MinusMinus element = null; + + int parse_org_emftext_language_java_operators_MinusMinus_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 119) ) { return element; } + + // Java.g:17815:2: (a0= '--' ) + // Java.g:17816:2: a0= '--' + { + a0=(Token)match(input,35,FOLLOW_35_in_parse_org_emftext_language_java_operators_MinusMinus21173); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createMinusMinus(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_117_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78761); + addExpectedElement(78763); + addExpectedElement(78766); + addExpectedElement(78770); + addExpectedElement(78771); + addExpectedElement(78773); + addExpectedElement(78782); + addExpectedElement(78794); + addExpectedElement(78827); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 119, parse_org_emftext_language_java_operators_MinusMinus_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_MinusMinus" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_Complement" + // Java.g:17843:1: parse_org_emftext_language_java_operators_Complement returns [org.emftext.language.java.operators.Complement element = null] : a0= '~' ; + public final org.emftext.language.java.operators.Complement parse_org_emftext_language_java_operators_Complement() throws RecognitionException { + org.emftext.language.java.operators.Complement element = null; + + int parse_org_emftext_language_java_operators_Complement_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 120) ) { return element; } + + // Java.g:17846:2: (a0= '~' ) + // Java.g:17847:2: a0= '~' + { + a0=(Token)match(input,110,FOLLOW_110_in_parse_org_emftext_language_java_operators_Complement21202); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createComplement(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_118_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78911); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 120, parse_org_emftext_language_java_operators_Complement_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_Complement" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_Negate" + // Java.g:17866:1: parse_org_emftext_language_java_operators_Negate returns [org.emftext.language.java.operators.Negate element = null] : a0= '!' ; + public final org.emftext.language.java.operators.Negate parse_org_emftext_language_java_operators_Negate() throws RecognitionException { + org.emftext.language.java.operators.Negate element = null; + + int parse_org_emftext_language_java_operators_Negate_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 121) ) { return element; } + + // Java.g:17869:2: (a0= '!' ) + // Java.g:17870:2: a0= '!' + { + a0=(Token)match(input,21,FOLLOW_21_in_parse_org_emftext_language_java_operators_Negate21231); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.operators.OperatorsFactory.eINSTANCE.createNegate(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_119_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78995); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 121, parse_org_emftext_language_java_operators_Negate_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_Negate" + + + + // $ANTLR start "parse_org_emftext_language_java_arrays_ArrayDimension" + // Java.g:17889:1: parse_org_emftext_language_java_arrays_ArrayDimension returns [org.emftext.language.java.arrays.ArrayDimension element = null] : (a0= '[' a1= ']' ) ; + public final org.emftext.language.java.arrays.ArrayDimension parse_org_emftext_language_java_arrays_ArrayDimension() throws RecognitionException { + org.emftext.language.java.arrays.ArrayDimension element = null; + + int parse_org_emftext_language_java_arrays_ArrayDimension_StartIndex = input.index(); + + Token a0=null; + Token a1=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 122) ) { return element; } + + // Java.g:17892:2: ( (a0= '[' a1= ']' ) ) + // Java.g:17893:2: (a0= '[' a1= ']' ) + { + // Java.g:17893:2: (a0= '[' a1= ']' ) + // Java.g:17894:3: a0= '[' a1= ']' + { + a0=(Token)match(input,49,FOLLOW_49_in_parse_org_emftext_language_java_arrays_ArrayDimension21264); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayDimension(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_120_0_0_0_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + addExpectedElement(78996); + } + + a1=(Token)match(input,53,FOLLOW_53_in_parse_org_emftext_language_java_arrays_ArrayDimension21281); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.arrays.ArraysFactory.eINSTANCE.createArrayDimension(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_120_0_0_0_0_0_1, null, true); + copyLocalizationInfos((CommonToken)a1, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(78997); + addExpectedElement(78998); + addExpectedElement(78999); + addExpectedElement(79000); + addExpectedElement(79001); + addExpectedElement(79002); + addExpectedElement(79003); + addExpectedElement(79005); + addExpectedElement(79006); + addExpectedElement(79008); + addExpectedElement(79009); + addExpectedElement(79011); + addExpectedElement(79012); + addExpectedElement(79013); + addExpectedElement(79014); + addExpectedElement(79016); + addExpectedElement(79017); + addExpectedElement(79018); + addExpectedElement(79020); + addExpectedElement(79021); + addExpectedElement(79022); + addExpectedElement(79024); + addExpectedElement(79027); + addExpectedElement(79029); + addExpectedElement(79032); + addExpectedElement(79036); + addExpectedElement(79037); + addExpectedElement(79039); + addExpectedElement(79048); + addExpectedElement(79060); + addExpectedElement(79081); + addExpectedElement(79082); + addExpectedElement(79084); + addExpectedElement(79085); + addExpectedElement(79086); + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(79087); + addExpectedElement(79088); + addExpectedElement(79089); + addExpectedElement(79090); + addExpectedElement(79091); + addExpectedElement(79092); + addExpectedElement(79093); + addExpectedElement(79095); + addExpectedElement(79096); + addExpectedElement(79098); + addExpectedElement(79099); + addExpectedElement(79101); + addExpectedElement(79102); + addExpectedElement(79103); + addExpectedElement(79104); + addExpectedElement(79106); + addExpectedElement(79107); + addExpectedElement(79108); + addExpectedElement(79110); + addExpectedElement(79111); + addExpectedElement(79112); + addExpectedElement(79114); + addExpectedElement(79117); + addExpectedElement(79119); + addExpectedElement(79122); + addExpectedElement(79126); + addExpectedElement(79127); + addExpectedElement(79129); + addExpectedElement(79138); + addExpectedElement(79150); + addExpectedElement(79171); + addExpectedElement(79172); + addExpectedElement(79174); + addExpectedElement(79175); + addExpectedElement(79176); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 122, parse_org_emftext_language_java_arrays_ArrayDimension_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_arrays_ArrayDimension" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_NullLiteral" + // Java.g:18004:1: parse_org_emftext_language_java_literals_NullLiteral returns [org.emftext.language.java.literals.NullLiteral element = null] : a0= 'null' ; + public final org.emftext.language.java.literals.NullLiteral parse_org_emftext_language_java_literals_NullLiteral() throws RecognitionException { + org.emftext.language.java.literals.NullLiteral element = null; + + int parse_org_emftext_language_java_literals_NullLiteral_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 123) ) { return element; } + + // Java.g:18007:2: (a0= 'null' ) + // Java.g:18008:2: a0= 'null' + { + a0=(Token)match(input,85,FOLLOW_85_in_parse_org_emftext_language_java_literals_NullLiteral21320); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createNullLiteral(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_121_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(79178); + addExpectedElement(79181); + addExpectedElement(79183); + addExpectedElement(79186); + addExpectedElement(79190); + addExpectedElement(79191); + addExpectedElement(79193); + addExpectedElement(79202); + addExpectedElement(79214); + addExpectedElement(79247); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 123, parse_org_emftext_language_java_literals_NullLiteral_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_NullLiteral" + + + + // $ANTLR start "parse_org_emftext_language_java_modifiers_Public" + // Java.g:18036:1: parse_org_emftext_language_java_modifiers_Public returns [org.emftext.language.java.modifiers.Public element = null] : a0= 'public' ; + public final org.emftext.language.java.modifiers.Public parse_org_emftext_language_java_modifiers_Public() throws RecognitionException { + org.emftext.language.java.modifiers.Public element = null; + + int parse_org_emftext_language_java_modifiers_Public_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 124) ) { return element; } + + // Java.g:18039:2: (a0= 'public' ) + // Java.g:18040:2: a0= 'public' + { + a0=(Token)match(input,89,FOLLOW_89_in_parse_org_emftext_language_java_modifiers_Public21349); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createPublic(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_122_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(79259); + addExpectedElement(79260); + addExpectedElement(79272); + addExpectedElement(79273); + addExpectedElement(79285); + addExpectedElement(79286); + addExpectedElement(79298); + addExpectedElement(79299); + addExpectedElement(79310); + addExpectedElement(79311); + addExpectedElement(79323); + addExpectedElement(79325); + addExpectedElement(79337); + addExpectedElement(79338); + addExpectedElement(79350); + addExpectedElement(79362); + addExpectedElement(79363); + addExpectedElement(79375); + addExpectedElement(79387); + addExpectedElement(79388); + addExpectedElement(79400); + addExpectedElement(79424); + addExpectedElement(79448); + addExpectedElement(79472); + addExpectedElement(79496); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 124, parse_org_emftext_language_java_modifiers_Public_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_modifiers_Public" + + + + // $ANTLR start "parse_org_emftext_language_java_modifiers_Abstract" + // Java.g:18083:1: parse_org_emftext_language_java_modifiers_Abstract returns [org.emftext.language.java.modifiers.Abstract element = null] : a0= 'abstract' ; + public final org.emftext.language.java.modifiers.Abstract parse_org_emftext_language_java_modifiers_Abstract() throws RecognitionException { + org.emftext.language.java.modifiers.Abstract element = null; + + int parse_org_emftext_language_java_modifiers_Abstract_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 125) ) { return element; } + + // Java.g:18086:2: (a0= 'abstract' ) + // Java.g:18087:2: a0= 'abstract' + { + a0=(Token)match(input,56,FOLLOW_56_in_parse_org_emftext_language_java_modifiers_Abstract21378); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createAbstract(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_123_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(79508); + addExpectedElement(79509); + addExpectedElement(79521); + addExpectedElement(79522); + addExpectedElement(79534); + addExpectedElement(79535); + addExpectedElement(79547); + addExpectedElement(79548); + addExpectedElement(79559); + addExpectedElement(79560); + addExpectedElement(79572); + addExpectedElement(79574); + addExpectedElement(79586); + addExpectedElement(79587); + addExpectedElement(79599); + addExpectedElement(79611); + addExpectedElement(79612); + addExpectedElement(79624); + addExpectedElement(79636); + addExpectedElement(79637); + addExpectedElement(79649); + addExpectedElement(79673); + addExpectedElement(79697); + addExpectedElement(79721); + addExpectedElement(79745); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 125, parse_org_emftext_language_java_modifiers_Abstract_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_modifiers_Abstract" + + + + // $ANTLR start "parse_org_emftext_language_java_modifiers_Protected" + // Java.g:18130:1: parse_org_emftext_language_java_modifiers_Protected returns [org.emftext.language.java.modifiers.Protected element = null] : a0= 'protected' ; + public final org.emftext.language.java.modifiers.Protected parse_org_emftext_language_java_modifiers_Protected() throws RecognitionException { + org.emftext.language.java.modifiers.Protected element = null; + + int parse_org_emftext_language_java_modifiers_Protected_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 126) ) { return element; } + + // Java.g:18133:2: (a0= 'protected' ) + // Java.g:18134:2: a0= 'protected' + { + a0=(Token)match(input,88,FOLLOW_88_in_parse_org_emftext_language_java_modifiers_Protected21407); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createProtected(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_124_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(79757); + addExpectedElement(79758); + addExpectedElement(79770); + addExpectedElement(79771); + addExpectedElement(79783); + addExpectedElement(79784); + addExpectedElement(79796); + addExpectedElement(79797); + addExpectedElement(79808); + addExpectedElement(79809); + addExpectedElement(79821); + addExpectedElement(79823); + addExpectedElement(79835); + addExpectedElement(79836); + addExpectedElement(79848); + addExpectedElement(79860); + addExpectedElement(79861); + addExpectedElement(79873); + addExpectedElement(79885); + addExpectedElement(79886); + addExpectedElement(79898); + addExpectedElement(79922); + addExpectedElement(79946); + addExpectedElement(79970); + addExpectedElement(79994); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 126, parse_org_emftext_language_java_modifiers_Protected_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_modifiers_Protected" + + + + // $ANTLR start "parse_org_emftext_language_java_modifiers_Private" + // Java.g:18177:1: parse_org_emftext_language_java_modifiers_Private returns [org.emftext.language.java.modifiers.Private element = null] : a0= 'private' ; + public final org.emftext.language.java.modifiers.Private parse_org_emftext_language_java_modifiers_Private() throws RecognitionException { + org.emftext.language.java.modifiers.Private element = null; + + int parse_org_emftext_language_java_modifiers_Private_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 127) ) { return element; } + + // Java.g:18180:2: (a0= 'private' ) + // Java.g:18181:2: a0= 'private' + { + a0=(Token)match(input,87,FOLLOW_87_in_parse_org_emftext_language_java_modifiers_Private21436); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createPrivate(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_125_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(80006); + addExpectedElement(80007); + addExpectedElement(80019); + addExpectedElement(80020); + addExpectedElement(80032); + addExpectedElement(80033); + addExpectedElement(80045); + addExpectedElement(80046); + addExpectedElement(80057); + addExpectedElement(80058); + addExpectedElement(80070); + addExpectedElement(80072); + addExpectedElement(80084); + addExpectedElement(80085); + addExpectedElement(80097); + addExpectedElement(80109); + addExpectedElement(80110); + addExpectedElement(80122); + addExpectedElement(80134); + addExpectedElement(80135); + addExpectedElement(80147); + addExpectedElement(80171); + addExpectedElement(80195); + addExpectedElement(80219); + addExpectedElement(80243); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 127, parse_org_emftext_language_java_modifiers_Private_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_modifiers_Private" + + + + // $ANTLR start "parse_org_emftext_language_java_modifiers_Final" + // Java.g:18224:1: parse_org_emftext_language_java_modifiers_Final returns [org.emftext.language.java.modifiers.Final element = null] : a0= 'final' ; + public final org.emftext.language.java.modifiers.Final parse_org_emftext_language_java_modifiers_Final() throws RecognitionException { + org.emftext.language.java.modifiers.Final element = null; + + int parse_org_emftext_language_java_modifiers_Final_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 128) ) { return element; } + + // Java.g:18227:2: (a0= 'final' ) + // Java.g:18228:2: a0= 'final' + { + a0=(Token)match(input,72,FOLLOW_72_in_parse_org_emftext_language_java_modifiers_Final21465); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createFinal(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_126_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(80255); + addExpectedElement(80256); + addExpectedElement(80268); + addExpectedElement(80269); + addExpectedElement(80281); + addExpectedElement(80282); + addExpectedElement(80294); + addExpectedElement(80295); + addExpectedElement(80306); + addExpectedElement(80307); + addExpectedElement(80319); + addExpectedElement(80321); + addExpectedElement(80333); + addExpectedElement(80334); + addExpectedElement(80346); + addExpectedElement(80358); + addExpectedElement(80359); + addExpectedElement(80371); + addExpectedElement(80383); + addExpectedElement(80384); + addExpectedElement(80396); + addExpectedElement(80420); + addExpectedElement(80444); + addExpectedElement(80468); + addExpectedElement(80492); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 128, parse_org_emftext_language_java_modifiers_Final_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_modifiers_Final" + + + + // $ANTLR start "parse_org_emftext_language_java_modifiers_Static" + // Java.g:18271:1: parse_org_emftext_language_java_modifiers_Static returns [org.emftext.language.java.modifiers.Static element = null] : a0= 'static' ; + public final org.emftext.language.java.modifiers.Static parse_org_emftext_language_java_modifiers_Static() throws RecognitionException { + org.emftext.language.java.modifiers.Static element = null; + + int parse_org_emftext_language_java_modifiers_Static_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 129) ) { return element; } + + // Java.g:18274:2: (a0= 'static' ) + // Java.g:18275:2: a0= 'static' + { + a0=(Token)match(input,92,FOLLOW_92_in_parse_org_emftext_language_java_modifiers_Static21494); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createStatic(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_127_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(80495); + addExpectedElement(80507); + addExpectedElement(80508); + addExpectedElement(80520); + addExpectedElement(80521); + addExpectedElement(80533); + addExpectedElement(80534); + addExpectedElement(80546); + addExpectedElement(80547); + addExpectedElement(80558); + addExpectedElement(80559); + addExpectedElement(80571); + addExpectedElement(80573); + addExpectedElement(80585); + addExpectedElement(80586); + addExpectedElement(80598); + addExpectedElement(80610); + addExpectedElement(80611); + addExpectedElement(80623); + addExpectedElement(80635); + addExpectedElement(80636); + addExpectedElement(80648); + addExpectedElement(80672); + addExpectedElement(80696); + addExpectedElement(80720); + addExpectedElement(80744); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 129, parse_org_emftext_language_java_modifiers_Static_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_modifiers_Static" + + + + // $ANTLR start "parse_org_emftext_language_java_modifiers_Native" + // Java.g:18319:1: parse_org_emftext_language_java_modifiers_Native returns [org.emftext.language.java.modifiers.Native element = null] : a0= 'native' ; + public final org.emftext.language.java.modifiers.Native parse_org_emftext_language_java_modifiers_Native() throws RecognitionException { + org.emftext.language.java.modifiers.Native element = null; + + int parse_org_emftext_language_java_modifiers_Native_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 130) ) { return element; } + + // Java.g:18322:2: (a0= 'native' ) + // Java.g:18323:2: a0= 'native' + { + a0=(Token)match(input,83,FOLLOW_83_in_parse_org_emftext_language_java_modifiers_Native21523); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createNative(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_128_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(80756); + addExpectedElement(80757); + addExpectedElement(80769); + addExpectedElement(80770); + addExpectedElement(80782); + addExpectedElement(80783); + addExpectedElement(80795); + addExpectedElement(80796); + addExpectedElement(80807); + addExpectedElement(80808); + addExpectedElement(80820); + addExpectedElement(80822); + addExpectedElement(80834); + addExpectedElement(80835); + addExpectedElement(80847); + addExpectedElement(80859); + addExpectedElement(80860); + addExpectedElement(80872); + addExpectedElement(80884); + addExpectedElement(80885); + addExpectedElement(80897); + addExpectedElement(80921); + addExpectedElement(80945); + addExpectedElement(80969); + addExpectedElement(80993); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 130, parse_org_emftext_language_java_modifiers_Native_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_modifiers_Native" + + + + // $ANTLR start "parse_org_emftext_language_java_modifiers_Synchronized" + // Java.g:18366:1: parse_org_emftext_language_java_modifiers_Synchronized returns [org.emftext.language.java.modifiers.Synchronized element = null] : a0= 'synchronized' ; + public final org.emftext.language.java.modifiers.Synchronized parse_org_emftext_language_java_modifiers_Synchronized() throws RecognitionException { + org.emftext.language.java.modifiers.Synchronized element = null; + + int parse_org_emftext_language_java_modifiers_Synchronized_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 131) ) { return element; } + + // Java.g:18369:2: (a0= 'synchronized' ) + // Java.g:18370:2: a0= 'synchronized' + { + a0=(Token)match(input,96,FOLLOW_96_in_parse_org_emftext_language_java_modifiers_Synchronized21552); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createSynchronized(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_129_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(81005); + addExpectedElement(81006); + addExpectedElement(81018); + addExpectedElement(81019); + addExpectedElement(81031); + addExpectedElement(81032); + addExpectedElement(81044); + addExpectedElement(81045); + addExpectedElement(81056); + addExpectedElement(81057); + addExpectedElement(81069); + addExpectedElement(81071); + addExpectedElement(81083); + addExpectedElement(81084); + addExpectedElement(81096); + addExpectedElement(81108); + addExpectedElement(81109); + addExpectedElement(81121); + addExpectedElement(81133); + addExpectedElement(81134); + addExpectedElement(81146); + addExpectedElement(81170); + addExpectedElement(81194); + addExpectedElement(81218); + addExpectedElement(81242); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 131, parse_org_emftext_language_java_modifiers_Synchronized_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_modifiers_Synchronized" + + + + // $ANTLR start "parse_org_emftext_language_java_modifiers_Transient" + // Java.g:18413:1: parse_org_emftext_language_java_modifiers_Transient returns [org.emftext.language.java.modifiers.Transient element = null] : a0= 'transient' ; + public final org.emftext.language.java.modifiers.Transient parse_org_emftext_language_java_modifiers_Transient() throws RecognitionException { + org.emftext.language.java.modifiers.Transient element = null; + + int parse_org_emftext_language_java_modifiers_Transient_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 132) ) { return element; } + + // Java.g:18416:2: (a0= 'transient' ) + // Java.g:18417:2: a0= 'transient' + { + a0=(Token)match(input,100,FOLLOW_100_in_parse_org_emftext_language_java_modifiers_Transient21581); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createTransient(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_130_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(81254); + addExpectedElement(81255); + addExpectedElement(81267); + addExpectedElement(81268); + addExpectedElement(81280); + addExpectedElement(81281); + addExpectedElement(81293); + addExpectedElement(81294); + addExpectedElement(81305); + addExpectedElement(81306); + addExpectedElement(81318); + addExpectedElement(81320); + addExpectedElement(81332); + addExpectedElement(81333); + addExpectedElement(81345); + addExpectedElement(81357); + addExpectedElement(81358); + addExpectedElement(81370); + addExpectedElement(81382); + addExpectedElement(81383); + addExpectedElement(81395); + addExpectedElement(81419); + addExpectedElement(81443); + addExpectedElement(81467); + addExpectedElement(81491); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 132, parse_org_emftext_language_java_modifiers_Transient_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_modifiers_Transient" + + + + // $ANTLR start "parse_org_emftext_language_java_modifiers_Volatile" + // Java.g:18460:1: parse_org_emftext_language_java_modifiers_Volatile returns [org.emftext.language.java.modifiers.Volatile element = null] : a0= 'volatile' ; + public final org.emftext.language.java.modifiers.Volatile parse_org_emftext_language_java_modifiers_Volatile() throws RecognitionException { + org.emftext.language.java.modifiers.Volatile element = null; + + int parse_org_emftext_language_java_modifiers_Volatile_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 133) ) { return element; } + + // Java.g:18463:2: (a0= 'volatile' ) + // Java.g:18464:2: a0= 'volatile' + { + a0=(Token)match(input,103,FOLLOW_103_in_parse_org_emftext_language_java_modifiers_Volatile21610); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createVolatile(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_131_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(81503); + addExpectedElement(81504); + addExpectedElement(81516); + addExpectedElement(81517); + addExpectedElement(81529); + addExpectedElement(81530); + addExpectedElement(81542); + addExpectedElement(81543); + addExpectedElement(81554); + addExpectedElement(81555); + addExpectedElement(81567); + addExpectedElement(81569); + addExpectedElement(81581); + addExpectedElement(81582); + addExpectedElement(81594); + addExpectedElement(81606); + addExpectedElement(81607); + addExpectedElement(81619); + addExpectedElement(81631); + addExpectedElement(81632); + addExpectedElement(81644); + addExpectedElement(81668); + addExpectedElement(81692); + addExpectedElement(81716); + addExpectedElement(81740); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 133, parse_org_emftext_language_java_modifiers_Volatile_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_modifiers_Volatile" + + + + // $ANTLR start "parse_org_emftext_language_java_modifiers_Strictfp" + // Java.g:18507:1: parse_org_emftext_language_java_modifiers_Strictfp returns [org.emftext.language.java.modifiers.Strictfp element = null] : a0= 'strictfp' ; + public final org.emftext.language.java.modifiers.Strictfp parse_org_emftext_language_java_modifiers_Strictfp() throws RecognitionException { + org.emftext.language.java.modifiers.Strictfp element = null; + + int parse_org_emftext_language_java_modifiers_Strictfp_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 134) ) { return element; } + + // Java.g:18510:2: (a0= 'strictfp' ) + // Java.g:18511:2: a0= 'strictfp' + { + a0=(Token)match(input,93,FOLLOW_93_in_parse_org_emftext_language_java_modifiers_Strictfp21639); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createStrictfp(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_132_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(81752); + addExpectedElement(81753); + addExpectedElement(81765); + addExpectedElement(81766); + addExpectedElement(81778); + addExpectedElement(81779); + addExpectedElement(81791); + addExpectedElement(81792); + addExpectedElement(81803); + addExpectedElement(81804); + addExpectedElement(81816); + addExpectedElement(81818); + addExpectedElement(81830); + addExpectedElement(81831); + addExpectedElement(81843); + addExpectedElement(81855); + addExpectedElement(81856); + addExpectedElement(81868); + addExpectedElement(81880); + addExpectedElement(81881); + addExpectedElement(81893); + addExpectedElement(81917); + addExpectedElement(81941); + addExpectedElement(81965); + addExpectedElement(81989); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 134, parse_org_emftext_language_java_modifiers_Strictfp_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_modifiers_Strictfp" + + + + // $ANTLR start "parse_org_emftext_language_java_types_Void" + // Java.g:18554:1: parse_org_emftext_language_java_types_Void returns [org.emftext.language.java.types.Void element = null] : a0= 'void' ; + public final org.emftext.language.java.types.Void parse_org_emftext_language_java_types_Void() throws RecognitionException { + org.emftext.language.java.types.Void element = null; + + int parse_org_emftext_language_java_types_Void_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 135) ) { return element; } + + // Java.g:18557:2: (a0= 'void' ) + // Java.g:18558:2: a0= 'void' + { + a0=(Token)match(input,102,FOLLOW_102_in_parse_org_emftext_language_java_types_Void21668); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createVoid(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_133_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(82004); + addExpectedElement(82005); + addExpectedElement(82007); + addExpectedElement(82008); + addExpectedElement(82010); + addExpectedElement(82011); + addExpectedElement(82013); + addExpectedElement(82014); + addExpectedElement(82018); + addExpectedElement(82019); + addExpectedElement(82020); + addExpectedElement(82021); + addExpectedElement(82022); + addExpectedElement(82024); + addExpectedElement(82027); + addExpectedElement(82029); + addExpectedElement(82032); + addExpectedElement(82036); + addExpectedElement(82037); + addExpectedElement(82039); + addExpectedElement(82048); + addExpectedElement(82060); + addExpectedElement(82081); + addExpectedElement(82082); + addExpectedElement(82085); + addExpectedElement(82086); + addExpectedElement(82087); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 135, parse_org_emftext_language_java_types_Void_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_types_Void" + + + + // $ANTLR start "parse_org_emftext_language_java_types_Boolean" + // Java.g:18603:1: parse_org_emftext_language_java_types_Boolean returns [org.emftext.language.java.types.Boolean element = null] : a0= 'boolean' ; + public final org.emftext.language.java.types.Boolean parse_org_emftext_language_java_types_Boolean() throws RecognitionException { + org.emftext.language.java.types.Boolean element = null; + + int parse_org_emftext_language_java_types_Boolean_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 136) ) { return element; } + + // Java.g:18606:2: (a0= 'boolean' ) + // Java.g:18607:2: a0= 'boolean' + { + a0=(Token)match(input,58,FOLLOW_58_in_parse_org_emftext_language_java_types_Boolean21697); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createBoolean(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_134_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(82102); + addExpectedElement(82103); + addExpectedElement(82105); + addExpectedElement(82106); + addExpectedElement(82108); + addExpectedElement(82109); + addExpectedElement(82111); + addExpectedElement(82112); + addExpectedElement(82116); + addExpectedElement(82117); + addExpectedElement(82118); + addExpectedElement(82119); + addExpectedElement(82120); + addExpectedElement(82122); + addExpectedElement(82125); + addExpectedElement(82127); + addExpectedElement(82130); + addExpectedElement(82134); + addExpectedElement(82135); + addExpectedElement(82137); + addExpectedElement(82146); + addExpectedElement(82158); + addExpectedElement(82179); + addExpectedElement(82180); + addExpectedElement(82183); + addExpectedElement(82184); + addExpectedElement(82185); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 136, parse_org_emftext_language_java_types_Boolean_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_types_Boolean" + + + + // $ANTLR start "parse_org_emftext_language_java_types_Char" + // Java.g:18652:1: parse_org_emftext_language_java_types_Char returns [org.emftext.language.java.types.Char element = null] : a0= 'char' ; + public final org.emftext.language.java.types.Char parse_org_emftext_language_java_types_Char() throws RecognitionException { + org.emftext.language.java.types.Char element = null; + + int parse_org_emftext_language_java_types_Char_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 137) ) { return element; } + + // Java.g:18655:2: (a0= 'char' ) + // Java.g:18656:2: a0= 'char' + { + a0=(Token)match(input,63,FOLLOW_63_in_parse_org_emftext_language_java_types_Char21726); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createChar(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_135_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(82200); + addExpectedElement(82201); + addExpectedElement(82203); + addExpectedElement(82204); + addExpectedElement(82206); + addExpectedElement(82207); + addExpectedElement(82209); + addExpectedElement(82210); + addExpectedElement(82214); + addExpectedElement(82215); + addExpectedElement(82216); + addExpectedElement(82217); + addExpectedElement(82218); + addExpectedElement(82220); + addExpectedElement(82223); + addExpectedElement(82225); + addExpectedElement(82228); + addExpectedElement(82232); + addExpectedElement(82233); + addExpectedElement(82235); + addExpectedElement(82244); + addExpectedElement(82256); + addExpectedElement(82277); + addExpectedElement(82278); + addExpectedElement(82281); + addExpectedElement(82282); + addExpectedElement(82283); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 137, parse_org_emftext_language_java_types_Char_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_types_Char" + + + + // $ANTLR start "parse_org_emftext_language_java_types_Byte" + // Java.g:18701:1: parse_org_emftext_language_java_types_Byte returns [org.emftext.language.java.types.Byte element = null] : a0= 'byte' ; + public final org.emftext.language.java.types.Byte parse_org_emftext_language_java_types_Byte() throws RecognitionException { + org.emftext.language.java.types.Byte element = null; + + int parse_org_emftext_language_java_types_Byte_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 138) ) { return element; } + + // Java.g:18704:2: (a0= 'byte' ) + // Java.g:18705:2: a0= 'byte' + { + a0=(Token)match(input,60,FOLLOW_60_in_parse_org_emftext_language_java_types_Byte21755); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createByte(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_136_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(82298); + addExpectedElement(82299); + addExpectedElement(82301); + addExpectedElement(82302); + addExpectedElement(82304); + addExpectedElement(82305); + addExpectedElement(82307); + addExpectedElement(82308); + addExpectedElement(82312); + addExpectedElement(82313); + addExpectedElement(82314); + addExpectedElement(82315); + addExpectedElement(82316); + addExpectedElement(82318); + addExpectedElement(82321); + addExpectedElement(82323); + addExpectedElement(82326); + addExpectedElement(82330); + addExpectedElement(82331); + addExpectedElement(82333); + addExpectedElement(82342); + addExpectedElement(82354); + addExpectedElement(82375); + addExpectedElement(82376); + addExpectedElement(82379); + addExpectedElement(82380); + addExpectedElement(82381); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 138, parse_org_emftext_language_java_types_Byte_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_types_Byte" + + + + // $ANTLR start "parse_org_emftext_language_java_types_Short" + // Java.g:18750:1: parse_org_emftext_language_java_types_Short returns [org.emftext.language.java.types.Short element = null] : a0= 'short' ; + public final org.emftext.language.java.types.Short parse_org_emftext_language_java_types_Short() throws RecognitionException { + org.emftext.language.java.types.Short element = null; + + int parse_org_emftext_language_java_types_Short_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 139) ) { return element; } + + // Java.g:18753:2: (a0= 'short' ) + // Java.g:18754:2: a0= 'short' + { + a0=(Token)match(input,91,FOLLOW_91_in_parse_org_emftext_language_java_types_Short21784); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createShort(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_137_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(82396); + addExpectedElement(82397); + addExpectedElement(82399); + addExpectedElement(82400); + addExpectedElement(82402); + addExpectedElement(82403); + addExpectedElement(82405); + addExpectedElement(82406); + addExpectedElement(82410); + addExpectedElement(82411); + addExpectedElement(82412); + addExpectedElement(82413); + addExpectedElement(82414); + addExpectedElement(82416); + addExpectedElement(82419); + addExpectedElement(82421); + addExpectedElement(82424); + addExpectedElement(82428); + addExpectedElement(82429); + addExpectedElement(82431); + addExpectedElement(82440); + addExpectedElement(82452); + addExpectedElement(82473); + addExpectedElement(82474); + addExpectedElement(82477); + addExpectedElement(82478); + addExpectedElement(82479); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 139, parse_org_emftext_language_java_types_Short_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_types_Short" + + + + // $ANTLR start "parse_org_emftext_language_java_types_Int" + // Java.g:18799:1: parse_org_emftext_language_java_types_Int returns [org.emftext.language.java.types.Int element = null] : a0= 'int' ; + public final org.emftext.language.java.types.Int parse_org_emftext_language_java_types_Int() throws RecognitionException { + org.emftext.language.java.types.Int element = null; + + int parse_org_emftext_language_java_types_Int_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 140) ) { return element; } + + // Java.g:18802:2: (a0= 'int' ) + // Java.g:18803:2: a0= 'int' + { + a0=(Token)match(input,80,FOLLOW_80_in_parse_org_emftext_language_java_types_Int21813); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createInt(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_138_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(82494); + addExpectedElement(82495); + addExpectedElement(82497); + addExpectedElement(82498); + addExpectedElement(82500); + addExpectedElement(82501); + addExpectedElement(82503); + addExpectedElement(82504); + addExpectedElement(82508); + addExpectedElement(82509); + addExpectedElement(82510); + addExpectedElement(82511); + addExpectedElement(82512); + addExpectedElement(82514); + addExpectedElement(82517); + addExpectedElement(82519); + addExpectedElement(82522); + addExpectedElement(82526); + addExpectedElement(82527); + addExpectedElement(82529); + addExpectedElement(82538); + addExpectedElement(82550); + addExpectedElement(82571); + addExpectedElement(82572); + addExpectedElement(82575); + addExpectedElement(82576); + addExpectedElement(82577); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 140, parse_org_emftext_language_java_types_Int_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_types_Int" + + + + // $ANTLR start "parse_org_emftext_language_java_types_Long" + // Java.g:18848:1: parse_org_emftext_language_java_types_Long returns [org.emftext.language.java.types.Long element = null] : a0= 'long' ; + public final org.emftext.language.java.types.Long parse_org_emftext_language_java_types_Long() throws RecognitionException { + org.emftext.language.java.types.Long element = null; + + int parse_org_emftext_language_java_types_Long_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 141) ) { return element; } + + // Java.g:18851:2: (a0= 'long' ) + // Java.g:18852:2: a0= 'long' + { + a0=(Token)match(input,82,FOLLOW_82_in_parse_org_emftext_language_java_types_Long21842); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createLong(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_139_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(82592); + addExpectedElement(82593); + addExpectedElement(82595); + addExpectedElement(82596); + addExpectedElement(82598); + addExpectedElement(82599); + addExpectedElement(82601); + addExpectedElement(82602); + addExpectedElement(82606); + addExpectedElement(82607); + addExpectedElement(82608); + addExpectedElement(82609); + addExpectedElement(82610); + addExpectedElement(82612); + addExpectedElement(82615); + addExpectedElement(82617); + addExpectedElement(82620); + addExpectedElement(82624); + addExpectedElement(82625); + addExpectedElement(82627); + addExpectedElement(82636); + addExpectedElement(82648); + addExpectedElement(82669); + addExpectedElement(82670); + addExpectedElement(82673); + addExpectedElement(82674); + addExpectedElement(82675); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 141, parse_org_emftext_language_java_types_Long_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_types_Long" + + + + // $ANTLR start "parse_org_emftext_language_java_types_Float" + // Java.g:18897:1: parse_org_emftext_language_java_types_Float returns [org.emftext.language.java.types.Float element = null] : a0= 'float' ; + public final org.emftext.language.java.types.Float parse_org_emftext_language_java_types_Float() throws RecognitionException { + org.emftext.language.java.types.Float element = null; + + int parse_org_emftext_language_java_types_Float_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 142) ) { return element; } + + // Java.g:18900:2: (a0= 'float' ) + // Java.g:18901:2: a0= 'float' + { + a0=(Token)match(input,74,FOLLOW_74_in_parse_org_emftext_language_java_types_Float21871); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createFloat(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_140_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(82690); + addExpectedElement(82691); + addExpectedElement(82693); + addExpectedElement(82694); + addExpectedElement(82696); + addExpectedElement(82697); + addExpectedElement(82699); + addExpectedElement(82700); + addExpectedElement(82704); + addExpectedElement(82705); + addExpectedElement(82706); + addExpectedElement(82707); + addExpectedElement(82708); + addExpectedElement(82710); + addExpectedElement(82713); + addExpectedElement(82715); + addExpectedElement(82718); + addExpectedElement(82722); + addExpectedElement(82723); + addExpectedElement(82725); + addExpectedElement(82734); + addExpectedElement(82746); + addExpectedElement(82767); + addExpectedElement(82768); + addExpectedElement(82771); + addExpectedElement(82772); + addExpectedElement(82773); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 142, parse_org_emftext_language_java_types_Float_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_types_Float" + + + + // $ANTLR start "parse_org_emftext_language_java_types_Double" + // Java.g:18946:1: parse_org_emftext_language_java_types_Double returns [org.emftext.language.java.types.Double element = null] : a0= 'double' ; + public final org.emftext.language.java.types.Double parse_org_emftext_language_java_types_Double() throws RecognitionException { + org.emftext.language.java.types.Double element = null; + + int parse_org_emftext_language_java_types_Double_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 143) ) { return element; } + + // Java.g:18949:2: (a0= 'double' ) + // Java.g:18950:2: a0= 'double' + { + a0=(Token)match(input,68,FOLLOW_68_in_parse_org_emftext_language_java_types_Double21900); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (element == null) { + element = org.emftext.language.java.types.TypesFactory.eINSTANCE.createDouble(); + startIncompleteElement(element); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_141_0_0_0, null, true); + copyLocalizationInfos((CommonToken)a0, element); + } + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(82788); + addExpectedElement(82789); + addExpectedElement(82791); + addExpectedElement(82792); + addExpectedElement(82794); + addExpectedElement(82795); + addExpectedElement(82797); + addExpectedElement(82798); + addExpectedElement(82802); + addExpectedElement(82803); + addExpectedElement(82804); + addExpectedElement(82805); + addExpectedElement(82806); + addExpectedElement(82808); + addExpectedElement(82811); + addExpectedElement(82813); + addExpectedElement(82816); + addExpectedElement(82820); + addExpectedElement(82821); + addExpectedElement(82823); + addExpectedElement(82832); + addExpectedElement(82844); + addExpectedElement(82865); + addExpectedElement(82866); + addExpectedElement(82869); + addExpectedElement(82870); + addExpectedElement(82871); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 143, parse_org_emftext_language_java_types_Double_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_types_Double" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_DecimalLongLiteral" + // Java.g:18995:1: parse_org_emftext_language_java_literals_DecimalLongLiteral returns [org.emftext.language.java.literals.DecimalLongLiteral element = null] : (a0= DECIMAL_LONG_LITERAL ) ; + public final org.emftext.language.java.literals.DecimalLongLiteral parse_org_emftext_language_java_literals_DecimalLongLiteral() throws RecognitionException { + org.emftext.language.java.literals.DecimalLongLiteral element = null; + + int parse_org_emftext_language_java_literals_DecimalLongLiteral_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 144) ) { return element; } + + // Java.g:18998:2: ( (a0= DECIMAL_LONG_LITERAL ) ) + // Java.g:18999:2: (a0= DECIMAL_LONG_LITERAL ) + { + // Java.g:18999:2: (a0= DECIMAL_LONG_LITERAL ) + // Java.g:19000:3: a0= DECIMAL_LONG_LITERAL + { + a0=(Token)match(input,DECIMAL_LONG_LITERAL,FOLLOW_DECIMAL_LONG_LITERAL_in_parse_org_emftext_language_java_literals_DecimalLongLiteral21933); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createDecimalLongLiteral(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("DECIMAL_LONG_LITERAL"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.DECIMAL_LONG_LITERAL__DECIMAL_VALUE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.math.BigInteger resolved = (java.math.BigInteger) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.DECIMAL_LONG_LITERAL__DECIMAL_VALUE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_142_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(82873); + addExpectedElement(82876); + addExpectedElement(82878); + addExpectedElement(82881); + addExpectedElement(82885); + addExpectedElement(82886); + addExpectedElement(82888); + addExpectedElement(82897); + addExpectedElement(82909); + addExpectedElement(82942); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 144, parse_org_emftext_language_java_literals_DecimalLongLiteral_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_DecimalLongLiteral" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_DecimalFloatLiteral" + // Java.g:19049:1: parse_org_emftext_language_java_literals_DecimalFloatLiteral returns [org.emftext.language.java.literals.DecimalFloatLiteral element = null] : (a0= DECIMAL_FLOAT_LITERAL ) ; + public final org.emftext.language.java.literals.DecimalFloatLiteral parse_org_emftext_language_java_literals_DecimalFloatLiteral() throws RecognitionException { + org.emftext.language.java.literals.DecimalFloatLiteral element = null; + + int parse_org_emftext_language_java_literals_DecimalFloatLiteral_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 145) ) { return element; } + + // Java.g:19052:2: ( (a0= DECIMAL_FLOAT_LITERAL ) ) + // Java.g:19053:2: (a0= DECIMAL_FLOAT_LITERAL ) + { + // Java.g:19053:2: (a0= DECIMAL_FLOAT_LITERAL ) + // Java.g:19054:3: a0= DECIMAL_FLOAT_LITERAL + { + a0=(Token)match(input,DECIMAL_FLOAT_LITERAL,FOLLOW_DECIMAL_FLOAT_LITERAL_in_parse_org_emftext_language_java_literals_DecimalFloatLiteral21973); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createDecimalFloatLiteral(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("DECIMAL_FLOAT_LITERAL"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.DECIMAL_FLOAT_LITERAL__DECIMAL_VALUE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.lang.Float resolved = (java.lang.Float) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.DECIMAL_FLOAT_LITERAL__DECIMAL_VALUE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_143_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(82944); + addExpectedElement(82947); + addExpectedElement(82949); + addExpectedElement(82952); + addExpectedElement(82956); + addExpectedElement(82957); + addExpectedElement(82959); + addExpectedElement(82968); + addExpectedElement(82980); + addExpectedElement(83013); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 145, parse_org_emftext_language_java_literals_DecimalFloatLiteral_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_DecimalFloatLiteral" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_DecimalIntegerLiteral" + // Java.g:19103:1: parse_org_emftext_language_java_literals_DecimalIntegerLiteral returns [org.emftext.language.java.literals.DecimalIntegerLiteral element = null] : (a0= DECIMAL_INTEGER_LITERAL ) ; + public final org.emftext.language.java.literals.DecimalIntegerLiteral parse_org_emftext_language_java_literals_DecimalIntegerLiteral() throws RecognitionException { + org.emftext.language.java.literals.DecimalIntegerLiteral element = null; + + int parse_org_emftext_language_java_literals_DecimalIntegerLiteral_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 146) ) { return element; } + + // Java.g:19106:2: ( (a0= DECIMAL_INTEGER_LITERAL ) ) + // Java.g:19107:2: (a0= DECIMAL_INTEGER_LITERAL ) + { + // Java.g:19107:2: (a0= DECIMAL_INTEGER_LITERAL ) + // Java.g:19108:3: a0= DECIMAL_INTEGER_LITERAL + { + a0=(Token)match(input,DECIMAL_INTEGER_LITERAL,FOLLOW_DECIMAL_INTEGER_LITERAL_in_parse_org_emftext_language_java_literals_DecimalIntegerLiteral22013); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createDecimalIntegerLiteral(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("DECIMAL_INTEGER_LITERAL"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.DECIMAL_INTEGER_LITERAL__DECIMAL_VALUE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.math.BigInteger resolved = (java.math.BigInteger) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.DECIMAL_INTEGER_LITERAL__DECIMAL_VALUE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_144_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(83015); + addExpectedElement(83018); + addExpectedElement(83020); + addExpectedElement(83023); + addExpectedElement(83027); + addExpectedElement(83028); + addExpectedElement(83030); + addExpectedElement(83039); + addExpectedElement(83051); + addExpectedElement(83084); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 146, parse_org_emftext_language_java_literals_DecimalIntegerLiteral_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_DecimalIntegerLiteral" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_DecimalDoubleLiteral" + // Java.g:19157:1: parse_org_emftext_language_java_literals_DecimalDoubleLiteral returns [org.emftext.language.java.literals.DecimalDoubleLiteral element = null] : (a0= DECIMAL_DOUBLE_LITERAL ) ; + public final org.emftext.language.java.literals.DecimalDoubleLiteral parse_org_emftext_language_java_literals_DecimalDoubleLiteral() throws RecognitionException { + org.emftext.language.java.literals.DecimalDoubleLiteral element = null; + + int parse_org_emftext_language_java_literals_DecimalDoubleLiteral_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 147) ) { return element; } + + // Java.g:19160:2: ( (a0= DECIMAL_DOUBLE_LITERAL ) ) + // Java.g:19161:2: (a0= DECIMAL_DOUBLE_LITERAL ) + { + // Java.g:19161:2: (a0= DECIMAL_DOUBLE_LITERAL ) + // Java.g:19162:3: a0= DECIMAL_DOUBLE_LITERAL + { + a0=(Token)match(input,DECIMAL_DOUBLE_LITERAL,FOLLOW_DECIMAL_DOUBLE_LITERAL_in_parse_org_emftext_language_java_literals_DecimalDoubleLiteral22053); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createDecimalDoubleLiteral(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("DECIMAL_DOUBLE_LITERAL"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.DECIMAL_DOUBLE_LITERAL__DECIMAL_VALUE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.lang.Double resolved = (java.lang.Double) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.DECIMAL_DOUBLE_LITERAL__DECIMAL_VALUE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_145_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(83086); + addExpectedElement(83089); + addExpectedElement(83091); + addExpectedElement(83094); + addExpectedElement(83098); + addExpectedElement(83099); + addExpectedElement(83101); + addExpectedElement(83110); + addExpectedElement(83122); + addExpectedElement(83155); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 147, parse_org_emftext_language_java_literals_DecimalDoubleLiteral_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_DecimalDoubleLiteral" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_HexLongLiteral" + // Java.g:19211:1: parse_org_emftext_language_java_literals_HexLongLiteral returns [org.emftext.language.java.literals.HexLongLiteral element = null] : (a0= HEX_LONG_LITERAL ) ; + public final org.emftext.language.java.literals.HexLongLiteral parse_org_emftext_language_java_literals_HexLongLiteral() throws RecognitionException { + org.emftext.language.java.literals.HexLongLiteral element = null; + + int parse_org_emftext_language_java_literals_HexLongLiteral_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 148) ) { return element; } + + // Java.g:19214:2: ( (a0= HEX_LONG_LITERAL ) ) + // Java.g:19215:2: (a0= HEX_LONG_LITERAL ) + { + // Java.g:19215:2: (a0= HEX_LONG_LITERAL ) + // Java.g:19216:3: a0= HEX_LONG_LITERAL + { + a0=(Token)match(input,HEX_LONG_LITERAL,FOLLOW_HEX_LONG_LITERAL_in_parse_org_emftext_language_java_literals_HexLongLiteral22093); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createHexLongLiteral(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("HEX_LONG_LITERAL"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.HEX_LONG_LITERAL__HEX_VALUE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.math.BigInteger resolved = (java.math.BigInteger) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.HEX_LONG_LITERAL__HEX_VALUE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_146_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(83157); + addExpectedElement(83160); + addExpectedElement(83162); + addExpectedElement(83165); + addExpectedElement(83169); + addExpectedElement(83170); + addExpectedElement(83172); + addExpectedElement(83181); + addExpectedElement(83193); + addExpectedElement(83226); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 148, parse_org_emftext_language_java_literals_HexLongLiteral_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_HexLongLiteral" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_HexFloatLiteral" + // Java.g:19265:1: parse_org_emftext_language_java_literals_HexFloatLiteral returns [org.emftext.language.java.literals.HexFloatLiteral element = null] : (a0= HEX_FLOAT_LITERAL ) ; + public final org.emftext.language.java.literals.HexFloatLiteral parse_org_emftext_language_java_literals_HexFloatLiteral() throws RecognitionException { + org.emftext.language.java.literals.HexFloatLiteral element = null; + + int parse_org_emftext_language_java_literals_HexFloatLiteral_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 149) ) { return element; } + + // Java.g:19268:2: ( (a0= HEX_FLOAT_LITERAL ) ) + // Java.g:19269:2: (a0= HEX_FLOAT_LITERAL ) + { + // Java.g:19269:2: (a0= HEX_FLOAT_LITERAL ) + // Java.g:19270:3: a0= HEX_FLOAT_LITERAL + { + a0=(Token)match(input,HEX_FLOAT_LITERAL,FOLLOW_HEX_FLOAT_LITERAL_in_parse_org_emftext_language_java_literals_HexFloatLiteral22133); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createHexFloatLiteral(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("HEX_FLOAT_LITERAL"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.HEX_FLOAT_LITERAL__HEX_VALUE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.lang.Float resolved = (java.lang.Float) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.HEX_FLOAT_LITERAL__HEX_VALUE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_147_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(83228); + addExpectedElement(83231); + addExpectedElement(83233); + addExpectedElement(83236); + addExpectedElement(83240); + addExpectedElement(83241); + addExpectedElement(83243); + addExpectedElement(83252); + addExpectedElement(83264); + addExpectedElement(83297); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 149, parse_org_emftext_language_java_literals_HexFloatLiteral_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_HexFloatLiteral" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_HexDoubleLiteral" + // Java.g:19319:1: parse_org_emftext_language_java_literals_HexDoubleLiteral returns [org.emftext.language.java.literals.HexDoubleLiteral element = null] : (a0= HEX_DOUBLE_LITERAL ) ; + public final org.emftext.language.java.literals.HexDoubleLiteral parse_org_emftext_language_java_literals_HexDoubleLiteral() throws RecognitionException { + org.emftext.language.java.literals.HexDoubleLiteral element = null; + + int parse_org_emftext_language_java_literals_HexDoubleLiteral_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 150) ) { return element; } + + // Java.g:19322:2: ( (a0= HEX_DOUBLE_LITERAL ) ) + // Java.g:19323:2: (a0= HEX_DOUBLE_LITERAL ) + { + // Java.g:19323:2: (a0= HEX_DOUBLE_LITERAL ) + // Java.g:19324:3: a0= HEX_DOUBLE_LITERAL + { + a0=(Token)match(input,HEX_DOUBLE_LITERAL,FOLLOW_HEX_DOUBLE_LITERAL_in_parse_org_emftext_language_java_literals_HexDoubleLiteral22173); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createHexDoubleLiteral(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("HEX_DOUBLE_LITERAL"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.HEX_DOUBLE_LITERAL__HEX_VALUE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.lang.Double resolved = (java.lang.Double) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.HEX_DOUBLE_LITERAL__HEX_VALUE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_148_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(83299); + addExpectedElement(83302); + addExpectedElement(83304); + addExpectedElement(83307); + addExpectedElement(83311); + addExpectedElement(83312); + addExpectedElement(83314); + addExpectedElement(83323); + addExpectedElement(83335); + addExpectedElement(83368); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 150, parse_org_emftext_language_java_literals_HexDoubleLiteral_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_HexDoubleLiteral" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_HexIntegerLiteral" + // Java.g:19373:1: parse_org_emftext_language_java_literals_HexIntegerLiteral returns [org.emftext.language.java.literals.HexIntegerLiteral element = null] : (a0= HEX_INTEGER_LITERAL ) ; + public final org.emftext.language.java.literals.HexIntegerLiteral parse_org_emftext_language_java_literals_HexIntegerLiteral() throws RecognitionException { + org.emftext.language.java.literals.HexIntegerLiteral element = null; + + int parse_org_emftext_language_java_literals_HexIntegerLiteral_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 151) ) { return element; } + + // Java.g:19376:2: ( (a0= HEX_INTEGER_LITERAL ) ) + // Java.g:19377:2: (a0= HEX_INTEGER_LITERAL ) + { + // Java.g:19377:2: (a0= HEX_INTEGER_LITERAL ) + // Java.g:19378:3: a0= HEX_INTEGER_LITERAL + { + a0=(Token)match(input,HEX_INTEGER_LITERAL,FOLLOW_HEX_INTEGER_LITERAL_in_parse_org_emftext_language_java_literals_HexIntegerLiteral22213); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createHexIntegerLiteral(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("HEX_INTEGER_LITERAL"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.HEX_INTEGER_LITERAL__HEX_VALUE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.math.BigInteger resolved = (java.math.BigInteger) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.HEX_INTEGER_LITERAL__HEX_VALUE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_149_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(83370); + addExpectedElement(83373); + addExpectedElement(83375); + addExpectedElement(83378); + addExpectedElement(83382); + addExpectedElement(83383); + addExpectedElement(83385); + addExpectedElement(83394); + addExpectedElement(83406); + addExpectedElement(83439); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 151, parse_org_emftext_language_java_literals_HexIntegerLiteral_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_HexIntegerLiteral" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_OctalLongLiteral" + // Java.g:19427:1: parse_org_emftext_language_java_literals_OctalLongLiteral returns [org.emftext.language.java.literals.OctalLongLiteral element = null] : (a0= OCTAL_LONG_LITERAL ) ; + public final org.emftext.language.java.literals.OctalLongLiteral parse_org_emftext_language_java_literals_OctalLongLiteral() throws RecognitionException { + org.emftext.language.java.literals.OctalLongLiteral element = null; + + int parse_org_emftext_language_java_literals_OctalLongLiteral_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 152) ) { return element; } + + // Java.g:19430:2: ( (a0= OCTAL_LONG_LITERAL ) ) + // Java.g:19431:2: (a0= OCTAL_LONG_LITERAL ) + { + // Java.g:19431:2: (a0= OCTAL_LONG_LITERAL ) + // Java.g:19432:3: a0= OCTAL_LONG_LITERAL + { + a0=(Token)match(input,OCTAL_LONG_LITERAL,FOLLOW_OCTAL_LONG_LITERAL_in_parse_org_emftext_language_java_literals_OctalLongLiteral22253); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createOctalLongLiteral(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("OCTAL_LONG_LITERAL"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.OCTAL_LONG_LITERAL__OCTAL_VALUE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.math.BigInteger resolved = (java.math.BigInteger) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.OCTAL_LONG_LITERAL__OCTAL_VALUE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_150_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(83441); + addExpectedElement(83444); + addExpectedElement(83446); + addExpectedElement(83449); + addExpectedElement(83453); + addExpectedElement(83454); + addExpectedElement(83456); + addExpectedElement(83465); + addExpectedElement(83477); + addExpectedElement(83510); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 152, parse_org_emftext_language_java_literals_OctalLongLiteral_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_OctalLongLiteral" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_OctalIntegerLiteral" + // Java.g:19481:1: parse_org_emftext_language_java_literals_OctalIntegerLiteral returns [org.emftext.language.java.literals.OctalIntegerLiteral element = null] : (a0= OCTAL_INTEGER_LITERAL ) ; + public final org.emftext.language.java.literals.OctalIntegerLiteral parse_org_emftext_language_java_literals_OctalIntegerLiteral() throws RecognitionException { + org.emftext.language.java.literals.OctalIntegerLiteral element = null; + + int parse_org_emftext_language_java_literals_OctalIntegerLiteral_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 153) ) { return element; } + + // Java.g:19484:2: ( (a0= OCTAL_INTEGER_LITERAL ) ) + // Java.g:19485:2: (a0= OCTAL_INTEGER_LITERAL ) + { + // Java.g:19485:2: (a0= OCTAL_INTEGER_LITERAL ) + // Java.g:19486:3: a0= OCTAL_INTEGER_LITERAL + { + a0=(Token)match(input,OCTAL_INTEGER_LITERAL,FOLLOW_OCTAL_INTEGER_LITERAL_in_parse_org_emftext_language_java_literals_OctalIntegerLiteral22293); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createOctalIntegerLiteral(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("OCTAL_INTEGER_LITERAL"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.OCTAL_INTEGER_LITERAL__OCTAL_VALUE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.math.BigInteger resolved = (java.math.BigInteger) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.OCTAL_INTEGER_LITERAL__OCTAL_VALUE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_151_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(83512); + addExpectedElement(83515); + addExpectedElement(83517); + addExpectedElement(83520); + addExpectedElement(83524); + addExpectedElement(83525); + addExpectedElement(83527); + addExpectedElement(83536); + addExpectedElement(83548); + addExpectedElement(83581); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 153, parse_org_emftext_language_java_literals_OctalIntegerLiteral_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_OctalIntegerLiteral" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_CharacterLiteral" + // Java.g:19535:1: parse_org_emftext_language_java_literals_CharacterLiteral returns [org.emftext.language.java.literals.CharacterLiteral element = null] : (a0= CHARACTER_LITERAL ) ; + public final org.emftext.language.java.literals.CharacterLiteral parse_org_emftext_language_java_literals_CharacterLiteral() throws RecognitionException { + org.emftext.language.java.literals.CharacterLiteral element = null; + + int parse_org_emftext_language_java_literals_CharacterLiteral_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 154) ) { return element; } + + // Java.g:19538:2: ( (a0= CHARACTER_LITERAL ) ) + // Java.g:19539:2: (a0= CHARACTER_LITERAL ) + { + // Java.g:19539:2: (a0= CHARACTER_LITERAL ) + // Java.g:19540:3: a0= CHARACTER_LITERAL + { + a0=(Token)match(input,CHARACTER_LITERAL,FOLLOW_CHARACTER_LITERAL_in_parse_org_emftext_language_java_literals_CharacterLiteral22333); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createCharacterLiteral(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("CHARACTER_LITERAL"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.CHARACTER_LITERAL__VALUE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.lang.Character resolved = (java.lang.Character) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.CHARACTER_LITERAL__VALUE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_152_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(83583); + addExpectedElement(83586); + addExpectedElement(83588); + addExpectedElement(83591); + addExpectedElement(83595); + addExpectedElement(83596); + addExpectedElement(83598); + addExpectedElement(83607); + addExpectedElement(83619); + addExpectedElement(83652); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 154, parse_org_emftext_language_java_literals_CharacterLiteral_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_CharacterLiteral" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_BooleanLiteral" + // Java.g:19589:1: parse_org_emftext_language_java_literals_BooleanLiteral returns [org.emftext.language.java.literals.BooleanLiteral element = null] : (a0= BOOLEAN_LITERAL ) ; + public final org.emftext.language.java.literals.BooleanLiteral parse_org_emftext_language_java_literals_BooleanLiteral() throws RecognitionException { + org.emftext.language.java.literals.BooleanLiteral element = null; + + int parse_org_emftext_language_java_literals_BooleanLiteral_StartIndex = input.index(); + + Token a0=null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 155) ) { return element; } + + // Java.g:19592:2: ( (a0= BOOLEAN_LITERAL ) ) + // Java.g:19593:2: (a0= BOOLEAN_LITERAL ) + { + // Java.g:19593:2: (a0= BOOLEAN_LITERAL ) + // Java.g:19594:3: a0= BOOLEAN_LITERAL + { + a0=(Token)match(input,BOOLEAN_LITERAL,FOLLOW_BOOLEAN_LITERAL_in_parse_org_emftext_language_java_literals_BooleanLiteral22373); if (state.failed) return element; + + if ( state.backtracking==0 ) { + if (terminateParsing) { + throw new org.emftext.language.java.resource.java.mopp.JavaTerminateParsingException(); + } + if (element == null) { + element = org.emftext.language.java.literals.LiteralsFactory.eINSTANCE.createBooleanLiteral(); + startIncompleteElement(element); + } + if (a0 != null) { + org.emftext.language.java.resource.java.IJavaTokenResolver tokenResolver = tokenResolverFactory.createTokenResolver("BOOLEAN_LITERAL"); + tokenResolver.setOptions(getOptions()); + org.emftext.language.java.resource.java.IJavaTokenResolveResult result = getFreshTokenResolveResult(); + tokenResolver.resolve(a0.getText(), element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.BOOLEAN_LITERAL__VALUE), result); + Object resolvedObject = result.getResolvedToken(); + if (resolvedObject == null) { + addErrorToResource(result.getErrorMessage(), ((CommonToken) a0).getLine(), ((CommonToken) a0).getCharPositionInLine(), ((CommonToken) a0).getStartIndex(), ((CommonToken) a0).getStopIndex()); + } + java.lang.Boolean resolved = (java.lang.Boolean) resolvedObject; + if (resolved != null) { + Object value = resolved; + element.eSet(element.eClass().getEStructuralFeature(org.emftext.language.java.literals.LiteralsPackage.BOOLEAN_LITERAL__VALUE), value); + completedElement(value, false); + } + collectHiddenTokens(element); + retrieveLayoutInformation(element, org.emftext.language.java.resource.java.grammar.JavaGrammarInformationProvider.JAVA_153_0_0_0, resolved, true); + copyLocalizationInfos((CommonToken) a0, element); + } + } + + } + + + if ( state.backtracking==0 ) { + // expected elements (follow set) + // We've found the last token for this rule. The constructed EObject is now + // complete. + completedElement(element, true); + addExpectedElement(83654); + addExpectedElement(83657); + addExpectedElement(83659); + addExpectedElement(83662); + addExpectedElement(83666); + addExpectedElement(83667); + addExpectedElement(83669); + addExpectedElement(83678); + addExpectedElement(83690); + addExpectedElement(83723); + } + + } + + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 155, parse_org_emftext_language_java_literals_BooleanLiteral_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_BooleanLiteral" + + + + // $ANTLR start "parse_org_emftext_language_java_imports_Import" + // Java.g:19643:1: parse_org_emftext_language_java_imports_Import returns [org.emftext.language.java.imports.Import element = null] : (c0= parse_org_emftext_language_java_imports_ClassifierImport |c1= parse_org_emftext_language_java_imports_PackageImport |c2= parse_org_emftext_language_java_imports_StaticMemberImport |c3= parse_org_emftext_language_java_imports_StaticClassifierImport ); + public final org.emftext.language.java.imports.Import parse_org_emftext_language_java_imports_Import() throws RecognitionException { + org.emftext.language.java.imports.Import element = null; + + int parse_org_emftext_language_java_imports_Import_StartIndex = input.index(); + + org.emftext.language.java.imports.ClassifierImport c0 =null; + + org.emftext.language.java.imports.PackageImport c1 =null; + + org.emftext.language.java.imports.StaticMemberImport c2 =null; + + org.emftext.language.java.imports.StaticClassifierImport c3 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 156) ) { return element; } + + // Java.g:19644:2: (c0= parse_org_emftext_language_java_imports_ClassifierImport |c1= parse_org_emftext_language_java_imports_PackageImport |c2= parse_org_emftext_language_java_imports_StaticMemberImport |c3= parse_org_emftext_language_java_imports_StaticClassifierImport ) + int alt214=4; + alt214 = dfa214.predict(input); + switch (alt214) { + case 1 : + // Java.g:19645:2: c0= parse_org_emftext_language_java_imports_ClassifierImport + { + pushFollow(FOLLOW_parse_org_emftext_language_java_imports_ClassifierImport_in_parse_org_emftext_language_java_imports_Import22405); + c0=parse_org_emftext_language_java_imports_ClassifierImport(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19646:4: c1= parse_org_emftext_language_java_imports_PackageImport + { + pushFollow(FOLLOW_parse_org_emftext_language_java_imports_PackageImport_in_parse_org_emftext_language_java_imports_Import22415); + c1=parse_org_emftext_language_java_imports_PackageImport(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19647:4: c2= parse_org_emftext_language_java_imports_StaticMemberImport + { + pushFollow(FOLLOW_parse_org_emftext_language_java_imports_StaticMemberImport_in_parse_org_emftext_language_java_imports_Import22425); + c2=parse_org_emftext_language_java_imports_StaticMemberImport(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19648:4: c3= parse_org_emftext_language_java_imports_StaticClassifierImport + { + pushFollow(FOLLOW_parse_org_emftext_language_java_imports_StaticClassifierImport_in_parse_org_emftext_language_java_imports_Import22435); + c3=parse_org_emftext_language_java_imports_StaticClassifierImport(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 156, parse_org_emftext_language_java_imports_Import_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_imports_Import" + + + + // $ANTLR start "parse_org_emftext_language_java_classifiers_ConcreteClassifier" + // Java.g:19652:1: parse_org_emftext_language_java_classifiers_ConcreteClassifier returns [org.emftext.language.java.classifiers.ConcreteClassifier element = null] : (c0= parse_org_emftext_language_java_classifiers_Class |c1= parse_org_emftext_language_java_classifiers_Interface |c2= parse_org_emftext_language_java_classifiers_Enumeration |c3= parse_org_emftext_language_java_classifiers_Annotation ); + public final org.emftext.language.java.classifiers.ConcreteClassifier parse_org_emftext_language_java_classifiers_ConcreteClassifier() throws RecognitionException { + org.emftext.language.java.classifiers.ConcreteClassifier element = null; + + int parse_org_emftext_language_java_classifiers_ConcreteClassifier_StartIndex = input.index(); + + org.emftext.language.java.classifiers.Class c0 =null; + + org.emftext.language.java.classifiers.Interface c1 =null; + + org.emftext.language.java.classifiers.Enumeration c2 =null; + + org.emftext.language.java.classifiers.Annotation c3 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 157) ) { return element; } + + // Java.g:19653:2: (c0= parse_org_emftext_language_java_classifiers_Class |c1= parse_org_emftext_language_java_classifiers_Interface |c2= parse_org_emftext_language_java_classifiers_Enumeration |c3= parse_org_emftext_language_java_classifiers_Annotation ) + int alt215=4; + switch ( input.LA(1) ) { + case 48: + { + int LA215_1 = input.LA(2); + + if ( (synpred218_Java()) ) { + alt215=1; + } + else if ( (synpred219_Java()) ) { + alt215=2; + } + else if ( (synpred220_Java()) ) { + alt215=3; + } + else if ( (true) ) { + alt215=4; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 215, 1, input); + + throw nvae; + + } + } + break; + case 89: + { + int LA215_2 = input.LA(2); + + if ( (synpred218_Java()) ) { + alt215=1; + } + else if ( (synpred219_Java()) ) { + alt215=2; + } + else if ( (synpred220_Java()) ) { + alt215=3; + } + else if ( (true) ) { + alt215=4; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 215, 2, input); + + throw nvae; + + } + } + break; + case 56: + { + int LA215_3 = input.LA(2); + + if ( (synpred218_Java()) ) { + alt215=1; + } + else if ( (synpred219_Java()) ) { + alt215=2; + } + else if ( (synpred220_Java()) ) { + alt215=3; + } + else if ( (true) ) { + alt215=4; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 215, 3, input); + + throw nvae; + + } + } + break; + case 88: + { + int LA215_4 = input.LA(2); + + if ( (synpred218_Java()) ) { + alt215=1; + } + else if ( (synpred219_Java()) ) { + alt215=2; + } + else if ( (synpred220_Java()) ) { + alt215=3; + } + else if ( (true) ) { + alt215=4; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 215, 4, input); + + throw nvae; + + } + } + break; + case 87: + { + int LA215_5 = input.LA(2); + + if ( (synpred218_Java()) ) { + alt215=1; + } + else if ( (synpred219_Java()) ) { + alt215=2; + } + else if ( (synpred220_Java()) ) { + alt215=3; + } + else if ( (true) ) { + alt215=4; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 215, 5, input); + + throw nvae; + + } + } + break; + case 72: + { + int LA215_6 = input.LA(2); + + if ( (synpred218_Java()) ) { + alt215=1; + } + else if ( (synpred219_Java()) ) { + alt215=2; + } + else if ( (synpred220_Java()) ) { + alt215=3; + } + else if ( (true) ) { + alt215=4; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 215, 6, input); + + throw nvae; + + } + } + break; + case 92: + { + int LA215_7 = input.LA(2); + + if ( (synpred218_Java()) ) { + alt215=1; + } + else if ( (synpred219_Java()) ) { + alt215=2; + } + else if ( (synpred220_Java()) ) { + alt215=3; + } + else if ( (true) ) { + alt215=4; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 215, 7, input); + + throw nvae; + + } + } + break; + case 83: + { + int LA215_8 = input.LA(2); + + if ( (synpred218_Java()) ) { + alt215=1; + } + else if ( (synpred219_Java()) ) { + alt215=2; + } + else if ( (synpred220_Java()) ) { + alt215=3; + } + else if ( (true) ) { + alt215=4; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 215, 8, input); + + throw nvae; + + } + } + break; + case 96: + { + int LA215_9 = input.LA(2); + + if ( (synpred218_Java()) ) { + alt215=1; + } + else if ( (synpred219_Java()) ) { + alt215=2; + } + else if ( (synpred220_Java()) ) { + alt215=3; + } + else if ( (true) ) { + alt215=4; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 215, 9, input); + + throw nvae; + + } + } + break; + case 100: + { + int LA215_10 = input.LA(2); + + if ( (synpred218_Java()) ) { + alt215=1; + } + else if ( (synpred219_Java()) ) { + alt215=2; + } + else if ( (synpred220_Java()) ) { + alt215=3; + } + else if ( (true) ) { + alt215=4; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 215, 10, input); + + throw nvae; + + } + } + break; + case 103: + { + int LA215_11 = input.LA(2); + + if ( (synpred218_Java()) ) { + alt215=1; + } + else if ( (synpred219_Java()) ) { + alt215=2; + } + else if ( (synpred220_Java()) ) { + alt215=3; + } + else if ( (true) ) { + alt215=4; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 215, 11, input); + + throw nvae; + + } + } + break; + case 93: + { + int LA215_12 = input.LA(2); + + if ( (synpred218_Java()) ) { + alt215=1; + } + else if ( (synpred219_Java()) ) { + alt215=2; + } + else if ( (synpred220_Java()) ) { + alt215=3; + } + else if ( (true) ) { + alt215=4; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 215, 12, input); + + throw nvae; + + } + } + break; + case 64: + { + alt215=1; + } + break; + case 81: + { + alt215=2; + } + break; + case 70: + { + alt215=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 215, 0, input); + + throw nvae; + + } + + switch (alt215) { + case 1 : + // Java.g:19654:2: c0= parse_org_emftext_language_java_classifiers_Class + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Class_in_parse_org_emftext_language_java_classifiers_ConcreteClassifier22456); + c0=parse_org_emftext_language_java_classifiers_Class(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19655:4: c1= parse_org_emftext_language_java_classifiers_Interface + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Interface_in_parse_org_emftext_language_java_classifiers_ConcreteClassifier22466); + c1=parse_org_emftext_language_java_classifiers_Interface(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19656:4: c2= parse_org_emftext_language_java_classifiers_Enumeration + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Enumeration_in_parse_org_emftext_language_java_classifiers_ConcreteClassifier22476); + c2=parse_org_emftext_language_java_classifiers_Enumeration(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19657:4: c3= parse_org_emftext_language_java_classifiers_Annotation + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Annotation_in_parse_org_emftext_language_java_classifiers_ConcreteClassifier22486); + c3=parse_org_emftext_language_java_classifiers_Annotation(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 157, parse_org_emftext_language_java_classifiers_ConcreteClassifier_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_classifiers_ConcreteClassifier" + + + + // $ANTLR start "parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier" + // Java.g:19661:1: parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier returns [org.emftext.language.java.modifiers.AnnotationInstanceOrModifier element = null] : (c0= parse_org_emftext_language_java_annotations_AnnotationInstance |c1= parse_org_emftext_language_java_modifiers_Public |c2= parse_org_emftext_language_java_modifiers_Abstract |c3= parse_org_emftext_language_java_modifiers_Protected |c4= parse_org_emftext_language_java_modifiers_Private |c5= parse_org_emftext_language_java_modifiers_Final |c6= parse_org_emftext_language_java_modifiers_Static |c7= parse_org_emftext_language_java_modifiers_Native |c8= parse_org_emftext_language_java_modifiers_Synchronized |c9= parse_org_emftext_language_java_modifiers_Transient |c10= parse_org_emftext_language_java_modifiers_Volatile |c11= parse_org_emftext_language_java_modifiers_Strictfp ); + public final org.emftext.language.java.modifiers.AnnotationInstanceOrModifier parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier() throws RecognitionException { + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier element = null; + + int parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_StartIndex = input.index(); + + org.emftext.language.java.annotations.AnnotationInstance c0 =null; + + org.emftext.language.java.modifiers.Public c1 =null; + + org.emftext.language.java.modifiers.Abstract c2 =null; + + org.emftext.language.java.modifiers.Protected c3 =null; + + org.emftext.language.java.modifiers.Private c4 =null; + + org.emftext.language.java.modifiers.Final c5 =null; + + org.emftext.language.java.modifiers.Static c6 =null; + + org.emftext.language.java.modifiers.Native c7 =null; + + org.emftext.language.java.modifiers.Synchronized c8 =null; + + org.emftext.language.java.modifiers.Transient c9 =null; + + org.emftext.language.java.modifiers.Volatile c10 =null; + + org.emftext.language.java.modifiers.Strictfp c11 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 158) ) { return element; } + + // Java.g:19662:2: (c0= parse_org_emftext_language_java_annotations_AnnotationInstance |c1= parse_org_emftext_language_java_modifiers_Public |c2= parse_org_emftext_language_java_modifiers_Abstract |c3= parse_org_emftext_language_java_modifiers_Protected |c4= parse_org_emftext_language_java_modifiers_Private |c5= parse_org_emftext_language_java_modifiers_Final |c6= parse_org_emftext_language_java_modifiers_Static |c7= parse_org_emftext_language_java_modifiers_Native |c8= parse_org_emftext_language_java_modifiers_Synchronized |c9= parse_org_emftext_language_java_modifiers_Transient |c10= parse_org_emftext_language_java_modifiers_Volatile |c11= parse_org_emftext_language_java_modifiers_Strictfp ) + int alt216=12; + switch ( input.LA(1) ) { + case 48: + { + alt216=1; + } + break; + case 89: + { + alt216=2; + } + break; + case 56: + { + alt216=3; + } + break; + case 88: + { + alt216=4; + } + break; + case 87: + { + alt216=5; + } + break; + case 72: + { + alt216=6; + } + break; + case 92: + { + alt216=7; + } + break; + case 83: + { + alt216=8; + } + break; + case 96: + { + alt216=9; + } + break; + case 100: + { + alt216=10; + } + break; + case 103: + { + alt216=11; + } + break; + case 93: + { + alt216=12; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 216, 0, input); + + throw nvae; + + } + + switch (alt216) { + case 1 : + // Java.g:19663:2: c0= parse_org_emftext_language_java_annotations_AnnotationInstance + { + pushFollow(FOLLOW_parse_org_emftext_language_java_annotations_AnnotationInstance_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22507); + c0=parse_org_emftext_language_java_annotations_AnnotationInstance(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19664:4: c1= parse_org_emftext_language_java_modifiers_Public + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Public_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22517); + c1=parse_org_emftext_language_java_modifiers_Public(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19665:4: c2= parse_org_emftext_language_java_modifiers_Abstract + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Abstract_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22527); + c2=parse_org_emftext_language_java_modifiers_Abstract(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19666:4: c3= parse_org_emftext_language_java_modifiers_Protected + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Protected_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22537); + c3=parse_org_emftext_language_java_modifiers_Protected(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + case 5 : + // Java.g:19667:4: c4= parse_org_emftext_language_java_modifiers_Private + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Private_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22547); + c4=parse_org_emftext_language_java_modifiers_Private(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c4; /* this is a subclass or primitive expression choice */ } + + } + break; + case 6 : + // Java.g:19668:4: c5= parse_org_emftext_language_java_modifiers_Final + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Final_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22557); + c5=parse_org_emftext_language_java_modifiers_Final(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c5; /* this is a subclass or primitive expression choice */ } + + } + break; + case 7 : + // Java.g:19669:4: c6= parse_org_emftext_language_java_modifiers_Static + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Static_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22567); + c6=parse_org_emftext_language_java_modifiers_Static(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c6; /* this is a subclass or primitive expression choice */ } + + } + break; + case 8 : + // Java.g:19670:4: c7= parse_org_emftext_language_java_modifiers_Native + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Native_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22577); + c7=parse_org_emftext_language_java_modifiers_Native(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c7; /* this is a subclass or primitive expression choice */ } + + } + break; + case 9 : + // Java.g:19671:4: c8= parse_org_emftext_language_java_modifiers_Synchronized + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Synchronized_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22587); + c8=parse_org_emftext_language_java_modifiers_Synchronized(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c8; /* this is a subclass or primitive expression choice */ } + + } + break; + case 10 : + // Java.g:19672:4: c9= parse_org_emftext_language_java_modifiers_Transient + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Transient_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22597); + c9=parse_org_emftext_language_java_modifiers_Transient(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c9; /* this is a subclass or primitive expression choice */ } + + } + break; + case 11 : + // Java.g:19673:4: c10= parse_org_emftext_language_java_modifiers_Volatile + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Volatile_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22607); + c10=parse_org_emftext_language_java_modifiers_Volatile(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c10; /* this is a subclass or primitive expression choice */ } + + } + break; + case 12 : + // Java.g:19674:4: c11= parse_org_emftext_language_java_modifiers_Strictfp + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Strictfp_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22617); + c11=parse_org_emftext_language_java_modifiers_Strictfp(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c11; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 158, parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier" + + + + // $ANTLR start "parse_org_emftext_language_java_types_TypeReference" + // Java.g:19678:1: parse_org_emftext_language_java_types_TypeReference returns [org.emftext.language.java.types.TypeReference element = null] : (c0= parse_org_emftext_language_java_types_NamespaceClassifierReference |c1= parse_org_emftext_language_java_types_ClassifierReference |c2= parse_org_emftext_language_java_types_Void |c3= parse_org_emftext_language_java_types_Boolean |c4= parse_org_emftext_language_java_types_Char |c5= parse_org_emftext_language_java_types_Byte |c6= parse_org_emftext_language_java_types_Short |c7= parse_org_emftext_language_java_types_Int |c8= parse_org_emftext_language_java_types_Long |c9= parse_org_emftext_language_java_types_Float |c10= parse_org_emftext_language_java_types_Double ); + public final org.emftext.language.java.types.TypeReference parse_org_emftext_language_java_types_TypeReference() throws RecognitionException { + org.emftext.language.java.types.TypeReference element = null; + + int parse_org_emftext_language_java_types_TypeReference_StartIndex = input.index(); + + org.emftext.language.java.types.NamespaceClassifierReference c0 =null; + + org.emftext.language.java.types.ClassifierReference c1 =null; + + org.emftext.language.java.types.Void c2 =null; + + org.emftext.language.java.types.Boolean c3 =null; + + org.emftext.language.java.types.Char c4 =null; + + org.emftext.language.java.types.Byte c5 =null; + + org.emftext.language.java.types.Short c6 =null; + + org.emftext.language.java.types.Int c7 =null; + + org.emftext.language.java.types.Long c8 =null; + + org.emftext.language.java.types.Float c9 =null; + + org.emftext.language.java.types.Double c10 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 159) ) { return element; } + + // Java.g:19679:2: (c0= parse_org_emftext_language_java_types_NamespaceClassifierReference |c1= parse_org_emftext_language_java_types_ClassifierReference |c2= parse_org_emftext_language_java_types_Void |c3= parse_org_emftext_language_java_types_Boolean |c4= parse_org_emftext_language_java_types_Char |c5= parse_org_emftext_language_java_types_Byte |c6= parse_org_emftext_language_java_types_Short |c7= parse_org_emftext_language_java_types_Int |c8= parse_org_emftext_language_java_types_Long |c9= parse_org_emftext_language_java_types_Float |c10= parse_org_emftext_language_java_types_Double ) + int alt217=11; + switch ( input.LA(1) ) { + case IDENTIFIER: + { + int LA217_1 = input.LA(2); + + if ( (synpred232_Java()) ) { + alt217=1; + } + else if ( (synpred233_Java()) ) { + alt217=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 217, 1, input); + + throw nvae; + + } + } + break; + case 102: + { + alt217=3; + } + break; + case 58: + { + alt217=4; + } + break; + case 63: + { + alt217=5; + } + break; + case 60: + { + alt217=6; + } + break; + case 91: + { + alt217=7; + } + break; + case 80: + { + alt217=8; + } + break; + case 82: + { + alt217=9; + } + break; + case 74: + { + alt217=10; + } + break; + case 68: + { + alt217=11; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 217, 0, input); + + throw nvae; + + } + + switch (alt217) { + case 1 : + // Java.g:19680:2: c0= parse_org_emftext_language_java_types_NamespaceClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_types_TypeReference22638); + c0=parse_org_emftext_language_java_types_NamespaceClassifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19681:4: c1= parse_org_emftext_language_java_types_ClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_ClassifierReference_in_parse_org_emftext_language_java_types_TypeReference22648); + c1=parse_org_emftext_language_java_types_ClassifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19682:4: c2= parse_org_emftext_language_java_types_Void + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Void_in_parse_org_emftext_language_java_types_TypeReference22658); + c2=parse_org_emftext_language_java_types_Void(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19683:4: c3= parse_org_emftext_language_java_types_Boolean + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Boolean_in_parse_org_emftext_language_java_types_TypeReference22668); + c3=parse_org_emftext_language_java_types_Boolean(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + case 5 : + // Java.g:19684:4: c4= parse_org_emftext_language_java_types_Char + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Char_in_parse_org_emftext_language_java_types_TypeReference22678); + c4=parse_org_emftext_language_java_types_Char(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c4; /* this is a subclass or primitive expression choice */ } + + } + break; + case 6 : + // Java.g:19685:4: c5= parse_org_emftext_language_java_types_Byte + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Byte_in_parse_org_emftext_language_java_types_TypeReference22688); + c5=parse_org_emftext_language_java_types_Byte(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c5; /* this is a subclass or primitive expression choice */ } + + } + break; + case 7 : + // Java.g:19686:4: c6= parse_org_emftext_language_java_types_Short + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Short_in_parse_org_emftext_language_java_types_TypeReference22698); + c6=parse_org_emftext_language_java_types_Short(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c6; /* this is a subclass or primitive expression choice */ } + + } + break; + case 8 : + // Java.g:19687:4: c7= parse_org_emftext_language_java_types_Int + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Int_in_parse_org_emftext_language_java_types_TypeReference22708); + c7=parse_org_emftext_language_java_types_Int(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c7; /* this is a subclass or primitive expression choice */ } + + } + break; + case 9 : + // Java.g:19688:4: c8= parse_org_emftext_language_java_types_Long + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Long_in_parse_org_emftext_language_java_types_TypeReference22718); + c8=parse_org_emftext_language_java_types_Long(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c8; /* this is a subclass or primitive expression choice */ } + + } + break; + case 10 : + // Java.g:19689:4: c9= parse_org_emftext_language_java_types_Float + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Float_in_parse_org_emftext_language_java_types_TypeReference22728); + c9=parse_org_emftext_language_java_types_Float(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c9; /* this is a subclass or primitive expression choice */ } + + } + break; + case 11 : + // Java.g:19690:4: c10= parse_org_emftext_language_java_types_Double + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Double_in_parse_org_emftext_language_java_types_TypeReference22738); + c10=parse_org_emftext_language_java_types_Double(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c10; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 159, parse_org_emftext_language_java_types_TypeReference_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_types_TypeReference" + + + + // $ANTLR start "parse_org_emftext_language_java_members_Member" + // Java.g:19694:1: parse_org_emftext_language_java_members_Member returns [org.emftext.language.java.members.Member element = null] : (c0= parse_org_emftext_language_java_classifiers_Class |c1= parse_org_emftext_language_java_classifiers_Interface |c2= parse_org_emftext_language_java_classifiers_Enumeration |c3= parse_org_emftext_language_java_classifiers_Annotation |c4= parse_org_emftext_language_java_statements_Block |c5= parse_org_emftext_language_java_members_Constructor |c6= parse_org_emftext_language_java_members_InterfaceMethod |c7= parse_org_emftext_language_java_members_ClassMethod |c8= parse_org_emftext_language_java_annotations_AnnotationAttribute |c9= parse_org_emftext_language_java_members_Field |c10= parse_org_emftext_language_java_members_EmptyMember ); + public final org.emftext.language.java.members.Member parse_org_emftext_language_java_members_Member() throws RecognitionException { + org.emftext.language.java.members.Member element = null; + + int parse_org_emftext_language_java_members_Member_StartIndex = input.index(); + + org.emftext.language.java.classifiers.Class c0 =null; + + org.emftext.language.java.classifiers.Interface c1 =null; + + org.emftext.language.java.classifiers.Enumeration c2 =null; + + org.emftext.language.java.classifiers.Annotation c3 =null; + + org.emftext.language.java.statements.Block c4 =null; + + org.emftext.language.java.members.Constructor c5 =null; + + org.emftext.language.java.members.InterfaceMethod c6 =null; + + org.emftext.language.java.members.ClassMethod c7 =null; + + org.emftext.language.java.annotations.AnnotationAttribute c8 =null; + + org.emftext.language.java.members.Field c9 =null; + + org.emftext.language.java.members.EmptyMember c10 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 160) ) { return element; } + + // Java.g:19695:2: (c0= parse_org_emftext_language_java_classifiers_Class |c1= parse_org_emftext_language_java_classifiers_Interface |c2= parse_org_emftext_language_java_classifiers_Enumeration |c3= parse_org_emftext_language_java_classifiers_Annotation |c4= parse_org_emftext_language_java_statements_Block |c5= parse_org_emftext_language_java_members_Constructor |c6= parse_org_emftext_language_java_members_InterfaceMethod |c7= parse_org_emftext_language_java_members_ClassMethod |c8= parse_org_emftext_language_java_annotations_AnnotationAttribute |c9= parse_org_emftext_language_java_members_Field |c10= parse_org_emftext_language_java_members_EmptyMember ) + int alt218=11; + switch ( input.LA(1) ) { + case 48: + { + int LA218_1 = input.LA(2); + + if ( (synpred242_Java()) ) { + alt218=1; + } + else if ( (synpred243_Java()) ) { + alt218=2; + } + else if ( (synpred244_Java()) ) { + alt218=3; + } + else if ( (synpred245_Java()) ) { + alt218=4; + } + else if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 1, input); + + throw nvae; + + } + } + break; + case 89: + { + int LA218_2 = input.LA(2); + + if ( (synpred242_Java()) ) { + alt218=1; + } + else if ( (synpred243_Java()) ) { + alt218=2; + } + else if ( (synpred244_Java()) ) { + alt218=3; + } + else if ( (synpred245_Java()) ) { + alt218=4; + } + else if ( (synpred246_Java()) ) { + alt218=5; + } + else if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 2, input); + + throw nvae; + + } + } + break; + case 56: + { + int LA218_3 = input.LA(2); + + if ( (synpred242_Java()) ) { + alt218=1; + } + else if ( (synpred243_Java()) ) { + alt218=2; + } + else if ( (synpred244_Java()) ) { + alt218=3; + } + else if ( (synpred245_Java()) ) { + alt218=4; + } + else if ( (synpred246_Java()) ) { + alt218=5; + } + else if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 3, input); + + throw nvae; + + } + } + break; + case 88: + { + int LA218_4 = input.LA(2); + + if ( (synpred242_Java()) ) { + alt218=1; + } + else if ( (synpred243_Java()) ) { + alt218=2; + } + else if ( (synpred244_Java()) ) { + alt218=3; + } + else if ( (synpred245_Java()) ) { + alt218=4; + } + else if ( (synpred246_Java()) ) { + alt218=5; + } + else if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 4, input); + + throw nvae; + + } + } + break; + case 87: + { + int LA218_5 = input.LA(2); + + if ( (synpred242_Java()) ) { + alt218=1; + } + else if ( (synpred243_Java()) ) { + alt218=2; + } + else if ( (synpred244_Java()) ) { + alt218=3; + } + else if ( (synpred245_Java()) ) { + alt218=4; + } + else if ( (synpred246_Java()) ) { + alt218=5; + } + else if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 5, input); + + throw nvae; + + } + } + break; + case 72: + { + int LA218_6 = input.LA(2); + + if ( (synpred242_Java()) ) { + alt218=1; + } + else if ( (synpred243_Java()) ) { + alt218=2; + } + else if ( (synpred244_Java()) ) { + alt218=3; + } + else if ( (synpred245_Java()) ) { + alt218=4; + } + else if ( (synpred246_Java()) ) { + alt218=5; + } + else if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 6, input); + + throw nvae; + + } + } + break; + case 92: + { + int LA218_7 = input.LA(2); + + if ( (synpred242_Java()) ) { + alt218=1; + } + else if ( (synpred243_Java()) ) { + alt218=2; + } + else if ( (synpred244_Java()) ) { + alt218=3; + } + else if ( (synpred245_Java()) ) { + alt218=4; + } + else if ( (synpred246_Java()) ) { + alt218=5; + } + else if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 7, input); + + throw nvae; + + } + } + break; + case 83: + { + int LA218_8 = input.LA(2); + + if ( (synpred242_Java()) ) { + alt218=1; + } + else if ( (synpred243_Java()) ) { + alt218=2; + } + else if ( (synpred244_Java()) ) { + alt218=3; + } + else if ( (synpred245_Java()) ) { + alt218=4; + } + else if ( (synpred246_Java()) ) { + alt218=5; + } + else if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 8, input); + + throw nvae; + + } + } + break; + case 96: + { + int LA218_9 = input.LA(2); + + if ( (synpred242_Java()) ) { + alt218=1; + } + else if ( (synpred243_Java()) ) { + alt218=2; + } + else if ( (synpred244_Java()) ) { + alt218=3; + } + else if ( (synpred245_Java()) ) { + alt218=4; + } + else if ( (synpred246_Java()) ) { + alt218=5; + } + else if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 9, input); + + throw nvae; + + } + } + break; + case 100: + { + int LA218_10 = input.LA(2); + + if ( (synpred242_Java()) ) { + alt218=1; + } + else if ( (synpred243_Java()) ) { + alt218=2; + } + else if ( (synpred244_Java()) ) { + alt218=3; + } + else if ( (synpred245_Java()) ) { + alt218=4; + } + else if ( (synpred246_Java()) ) { + alt218=5; + } + else if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 10, input); + + throw nvae; + + } + } + break; + case 103: + { + int LA218_11 = input.LA(2); + + if ( (synpred242_Java()) ) { + alt218=1; + } + else if ( (synpred243_Java()) ) { + alt218=2; + } + else if ( (synpred244_Java()) ) { + alt218=3; + } + else if ( (synpred245_Java()) ) { + alt218=4; + } + else if ( (synpred246_Java()) ) { + alt218=5; + } + else if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 11, input); + + throw nvae; + + } + } + break; + case 93: + { + int LA218_12 = input.LA(2); + + if ( (synpred242_Java()) ) { + alt218=1; + } + else if ( (synpred243_Java()) ) { + alt218=2; + } + else if ( (synpred244_Java()) ) { + alt218=3; + } + else if ( (synpred245_Java()) ) { + alt218=4; + } + else if ( (synpred246_Java()) ) { + alt218=5; + } + else if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 12, input); + + throw nvae; + + } + } + break; + case 64: + { + alt218=1; + } + break; + case 81: + { + alt218=2; + } + break; + case 70: + { + alt218=3; + } + break; + case 105: + { + alt218=5; + } + break; + case 43: + { + int LA218_17 = input.LA(2); + + if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 17, input); + + throw nvae; + + } + } + break; + case IDENTIFIER: + { + int LA218_18 = input.LA(2); + + if ( (synpred247_Java()) ) { + alt218=6; + } + else if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 18, input); + + throw nvae; + + } + } + break; + case 102: + { + int LA218_19 = input.LA(2); + + if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 19, input); + + throw nvae; + + } + } + break; + case 58: + { + int LA218_20 = input.LA(2); + + if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 20, input); + + throw nvae; + + } + } + break; + case 63: + { + int LA218_21 = input.LA(2); + + if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 21, input); + + throw nvae; + + } + } + break; + case 60: + { + int LA218_22 = input.LA(2); + + if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 22, input); + + throw nvae; + + } + } + break; + case 91: + { + int LA218_23 = input.LA(2); + + if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 23, input); + + throw nvae; + + } + } + break; + case 80: + { + int LA218_24 = input.LA(2); + + if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 24, input); + + throw nvae; + + } + } + break; + case 82: + { + int LA218_25 = input.LA(2); + + if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 25, input); + + throw nvae; + + } + } + break; + case 74: + { + int LA218_26 = input.LA(2); + + if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 26, input); + + throw nvae; + + } + } + break; + case 68: + { + int LA218_27 = input.LA(2); + + if ( (synpred248_Java()) ) { + alt218=7; + } + else if ( (synpred249_Java()) ) { + alt218=8; + } + else if ( (synpred250_Java()) ) { + alt218=9; + } + else if ( (synpred251_Java()) ) { + alt218=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 27, input); + + throw nvae; + + } + } + break; + case 42: + { + alt218=11; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 218, 0, input); + + throw nvae; + + } + + switch (alt218) { + case 1 : + // Java.g:19696:2: c0= parse_org_emftext_language_java_classifiers_Class + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Class_in_parse_org_emftext_language_java_members_Member22759); + c0=parse_org_emftext_language_java_classifiers_Class(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19697:4: c1= parse_org_emftext_language_java_classifiers_Interface + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Interface_in_parse_org_emftext_language_java_members_Member22769); + c1=parse_org_emftext_language_java_classifiers_Interface(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19698:4: c2= parse_org_emftext_language_java_classifiers_Enumeration + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Enumeration_in_parse_org_emftext_language_java_members_Member22779); + c2=parse_org_emftext_language_java_classifiers_Enumeration(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19699:4: c3= parse_org_emftext_language_java_classifiers_Annotation + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Annotation_in_parse_org_emftext_language_java_members_Member22789); + c3=parse_org_emftext_language_java_classifiers_Annotation(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + case 5 : + // Java.g:19700:4: c4= parse_org_emftext_language_java_statements_Block + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Block_in_parse_org_emftext_language_java_members_Member22799); + c4=parse_org_emftext_language_java_statements_Block(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c4; /* this is a subclass or primitive expression choice */ } + + } + break; + case 6 : + // Java.g:19701:4: c5= parse_org_emftext_language_java_members_Constructor + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_Constructor_in_parse_org_emftext_language_java_members_Member22809); + c5=parse_org_emftext_language_java_members_Constructor(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c5; /* this is a subclass or primitive expression choice */ } + + } + break; + case 7 : + // Java.g:19702:4: c6= parse_org_emftext_language_java_members_InterfaceMethod + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_InterfaceMethod_in_parse_org_emftext_language_java_members_Member22819); + c6=parse_org_emftext_language_java_members_InterfaceMethod(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c6; /* this is a subclass or primitive expression choice */ } + + } + break; + case 8 : + // Java.g:19703:4: c7= parse_org_emftext_language_java_members_ClassMethod + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_ClassMethod_in_parse_org_emftext_language_java_members_Member22829); + c7=parse_org_emftext_language_java_members_ClassMethod(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c7; /* this is a subclass or primitive expression choice */ } + + } + break; + case 9 : + // Java.g:19704:4: c8= parse_org_emftext_language_java_annotations_AnnotationAttribute + { + pushFollow(FOLLOW_parse_org_emftext_language_java_annotations_AnnotationAttribute_in_parse_org_emftext_language_java_members_Member22839); + c8=parse_org_emftext_language_java_annotations_AnnotationAttribute(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c8; /* this is a subclass or primitive expression choice */ } + + } + break; + case 10 : + // Java.g:19705:4: c9= parse_org_emftext_language_java_members_Field + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_Field_in_parse_org_emftext_language_java_members_Member22849); + c9=parse_org_emftext_language_java_members_Field(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c9; /* this is a subclass or primitive expression choice */ } + + } + break; + case 11 : + // Java.g:19706:4: c10= parse_org_emftext_language_java_members_EmptyMember + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_EmptyMember_in_parse_org_emftext_language_java_members_Member22859); + c10=parse_org_emftext_language_java_members_EmptyMember(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c10; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 160, parse_org_emftext_language_java_members_Member_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_members_Member" + + + + // $ANTLR start "parse_org_emftext_language_java_annotations_AnnotationParameter" + // Java.g:19710:1: parse_org_emftext_language_java_annotations_AnnotationParameter returns [org.emftext.language.java.annotations.AnnotationParameter element = null] : (c0= parse_org_emftext_language_java_annotations_SingleAnnotationParameter |c1= parse_org_emftext_language_java_annotations_AnnotationParameterList ); + public final org.emftext.language.java.annotations.AnnotationParameter parse_org_emftext_language_java_annotations_AnnotationParameter() throws RecognitionException { + org.emftext.language.java.annotations.AnnotationParameter element = null; + + int parse_org_emftext_language_java_annotations_AnnotationParameter_StartIndex = input.index(); + + org.emftext.language.java.annotations.SingleAnnotationParameter c0 =null; + + org.emftext.language.java.annotations.AnnotationParameterList c1 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 161) ) { return element; } + + // Java.g:19711:2: (c0= parse_org_emftext_language_java_annotations_SingleAnnotationParameter |c1= parse_org_emftext_language_java_annotations_AnnotationParameterList ) + int alt219=2; + int LA219_0 = input.LA(1); + + if ( (LA219_0==26) ) { + switch ( input.LA(2) ) { + case BOOLEAN_LITERAL: + case CHARACTER_LITERAL: + case DECIMAL_DOUBLE_LITERAL: + case DECIMAL_FLOAT_LITERAL: + case DECIMAL_INTEGER_LITERAL: + case DECIMAL_LONG_LITERAL: + case HEX_DOUBLE_LITERAL: + case HEX_FLOAT_LITERAL: + case HEX_INTEGER_LITERAL: + case HEX_LONG_LITERAL: + case OCTAL_INTEGER_LITERAL: + case OCTAL_LONG_LITERAL: + case STRING_LITERAL: + case 21: + case 26: + case 30: + case 31: + case 34: + case 35: + case 43: + case 48: + case 58: + case 60: + case 63: + case 64: + case 68: + case 74: + case 80: + case 82: + case 84: + case 85: + case 91: + case 94: + case 97: + case 102: + case 105: + case 110: + { + alt219=1; + } + break; + case IDENTIFIER: + { + int LA219_3 = input.LA(3); + + if ( ((LA219_3 >= 22 && LA219_3 <= 24)||(LA219_3 >= 26 && LA219_3 <= 28)||(LA219_3 >= 30 && LA219_3 <= 31)||(LA219_3 >= 34 && LA219_3 <= 35)||LA219_3==37||LA219_3==39||LA219_3==43||(LA219_3 >= 45 && LA219_3 <= 47)||LA219_3==49||LA219_3==51||LA219_3==54||LA219_3==79||LA219_3==106||LA219_3==108) ) { + alt219=1; + } + else if ( (LA219_3==44) ) { + alt219=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 219, 3, input); + + throw nvae; + + } + } + break; + case 27: + { + alt219=2; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 219, 1, input); + + throw nvae; + + } + + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 219, 0, input); + + throw nvae; + + } + switch (alt219) { + case 1 : + // Java.g:19712:2: c0= parse_org_emftext_language_java_annotations_SingleAnnotationParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_annotations_SingleAnnotationParameter_in_parse_org_emftext_language_java_annotations_AnnotationParameter22880); + c0=parse_org_emftext_language_java_annotations_SingleAnnotationParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19713:4: c1= parse_org_emftext_language_java_annotations_AnnotationParameterList + { + pushFollow(FOLLOW_parse_org_emftext_language_java_annotations_AnnotationParameterList_in_parse_org_emftext_language_java_annotations_AnnotationParameter22890); + c1=parse_org_emftext_language_java_annotations_AnnotationParameterList(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 161, parse_org_emftext_language_java_annotations_AnnotationParameter_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_annotations_AnnotationParameter" + + + + // $ANTLR start "parse_org_emftext_language_java_modifiers_Modifier" + // Java.g:19717:1: parse_org_emftext_language_java_modifiers_Modifier returns [org.emftext.language.java.modifiers.Modifier element = null] : (c0= parse_org_emftext_language_java_modifiers_Public |c1= parse_org_emftext_language_java_modifiers_Abstract |c2= parse_org_emftext_language_java_modifiers_Protected |c3= parse_org_emftext_language_java_modifiers_Private |c4= parse_org_emftext_language_java_modifiers_Final |c5= parse_org_emftext_language_java_modifiers_Static |c6= parse_org_emftext_language_java_modifiers_Native |c7= parse_org_emftext_language_java_modifiers_Synchronized |c8= parse_org_emftext_language_java_modifiers_Transient |c9= parse_org_emftext_language_java_modifiers_Volatile |c10= parse_org_emftext_language_java_modifiers_Strictfp ); + public final org.emftext.language.java.modifiers.Modifier parse_org_emftext_language_java_modifiers_Modifier() throws RecognitionException { + org.emftext.language.java.modifiers.Modifier element = null; + + int parse_org_emftext_language_java_modifiers_Modifier_StartIndex = input.index(); + + org.emftext.language.java.modifiers.Public c0 =null; + + org.emftext.language.java.modifiers.Abstract c1 =null; + + org.emftext.language.java.modifiers.Protected c2 =null; + + org.emftext.language.java.modifiers.Private c3 =null; + + org.emftext.language.java.modifiers.Final c4 =null; + + org.emftext.language.java.modifiers.Static c5 =null; + + org.emftext.language.java.modifiers.Native c6 =null; + + org.emftext.language.java.modifiers.Synchronized c7 =null; + + org.emftext.language.java.modifiers.Transient c8 =null; + + org.emftext.language.java.modifiers.Volatile c9 =null; + + org.emftext.language.java.modifiers.Strictfp c10 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 162) ) { return element; } + + // Java.g:19718:2: (c0= parse_org_emftext_language_java_modifiers_Public |c1= parse_org_emftext_language_java_modifiers_Abstract |c2= parse_org_emftext_language_java_modifiers_Protected |c3= parse_org_emftext_language_java_modifiers_Private |c4= parse_org_emftext_language_java_modifiers_Final |c5= parse_org_emftext_language_java_modifiers_Static |c6= parse_org_emftext_language_java_modifiers_Native |c7= parse_org_emftext_language_java_modifiers_Synchronized |c8= parse_org_emftext_language_java_modifiers_Transient |c9= parse_org_emftext_language_java_modifiers_Volatile |c10= parse_org_emftext_language_java_modifiers_Strictfp ) + int alt220=11; + switch ( input.LA(1) ) { + case 89: + { + alt220=1; + } + break; + case 56: + { + alt220=2; + } + break; + case 88: + { + alt220=3; + } + break; + case 87: + { + alt220=4; + } + break; + case 72: + { + alt220=5; + } + break; + case 92: + { + alt220=6; + } + break; + case 83: + { + alt220=7; + } + break; + case 96: + { + alt220=8; + } + break; + case 100: + { + alt220=9; + } + break; + case 103: + { + alt220=10; + } + break; + case 93: + { + alt220=11; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 220, 0, input); + + throw nvae; + + } + + switch (alt220) { + case 1 : + // Java.g:19719:2: c0= parse_org_emftext_language_java_modifiers_Public + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Public_in_parse_org_emftext_language_java_modifiers_Modifier22911); + c0=parse_org_emftext_language_java_modifiers_Public(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19720:4: c1= parse_org_emftext_language_java_modifiers_Abstract + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Abstract_in_parse_org_emftext_language_java_modifiers_Modifier22921); + c1=parse_org_emftext_language_java_modifiers_Abstract(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19721:4: c2= parse_org_emftext_language_java_modifiers_Protected + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Protected_in_parse_org_emftext_language_java_modifiers_Modifier22931); + c2=parse_org_emftext_language_java_modifiers_Protected(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19722:4: c3= parse_org_emftext_language_java_modifiers_Private + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Private_in_parse_org_emftext_language_java_modifiers_Modifier22941); + c3=parse_org_emftext_language_java_modifiers_Private(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + case 5 : + // Java.g:19723:4: c4= parse_org_emftext_language_java_modifiers_Final + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Final_in_parse_org_emftext_language_java_modifiers_Modifier22951); + c4=parse_org_emftext_language_java_modifiers_Final(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c4; /* this is a subclass or primitive expression choice */ } + + } + break; + case 6 : + // Java.g:19724:4: c5= parse_org_emftext_language_java_modifiers_Static + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Static_in_parse_org_emftext_language_java_modifiers_Modifier22961); + c5=parse_org_emftext_language_java_modifiers_Static(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c5; /* this is a subclass or primitive expression choice */ } + + } + break; + case 7 : + // Java.g:19725:4: c6= parse_org_emftext_language_java_modifiers_Native + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Native_in_parse_org_emftext_language_java_modifiers_Modifier22971); + c6=parse_org_emftext_language_java_modifiers_Native(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c6; /* this is a subclass or primitive expression choice */ } + + } + break; + case 8 : + // Java.g:19726:4: c7= parse_org_emftext_language_java_modifiers_Synchronized + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Synchronized_in_parse_org_emftext_language_java_modifiers_Modifier22981); + c7=parse_org_emftext_language_java_modifiers_Synchronized(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c7; /* this is a subclass or primitive expression choice */ } + + } + break; + case 9 : + // Java.g:19727:4: c8= parse_org_emftext_language_java_modifiers_Transient + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Transient_in_parse_org_emftext_language_java_modifiers_Modifier22991); + c8=parse_org_emftext_language_java_modifiers_Transient(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c8; /* this is a subclass or primitive expression choice */ } + + } + break; + case 10 : + // Java.g:19728:4: c9= parse_org_emftext_language_java_modifiers_Volatile + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Volatile_in_parse_org_emftext_language_java_modifiers_Modifier23001); + c9=parse_org_emftext_language_java_modifiers_Volatile(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c9; /* this is a subclass or primitive expression choice */ } + + } + break; + case 11 : + // Java.g:19729:4: c10= parse_org_emftext_language_java_modifiers_Strictfp + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_Strictfp_in_parse_org_emftext_language_java_modifiers_Modifier23011); + c10=parse_org_emftext_language_java_modifiers_Strictfp(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c10; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 162, parse_org_emftext_language_java_modifiers_Modifier_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_modifiers_Modifier" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_Statement" + // Java.g:19733:1: parse_org_emftext_language_java_statements_Statement returns [org.emftext.language.java.statements.Statement element = null] : (c0= parse_org_emftext_language_java_classifiers_Class |c1= parse_org_emftext_language_java_classifiers_Interface |c2= parse_org_emftext_language_java_classifiers_Enumeration |c3= parse_org_emftext_language_java_classifiers_Annotation |c4= parse_org_emftext_language_java_statements_Block |c5= parse_org_emftext_language_java_statements_LocalVariableStatement |c6= parse_org_emftext_language_java_statements_Assert |c7= parse_org_emftext_language_java_statements_Condition |c8= parse_org_emftext_language_java_statements_ForLoop |c9= parse_org_emftext_language_java_statements_ForEachLoop |c10= parse_org_emftext_language_java_statements_WhileLoop |c11= parse_org_emftext_language_java_statements_DoWhileLoop |c12= parse_org_emftext_language_java_statements_EmptyStatement |c13= parse_org_emftext_language_java_statements_SynchronizedBlock |c14= parse_org_emftext_language_java_statements_TryBlock |c15= parse_org_emftext_language_java_statements_Switch |c16= parse_org_emftext_language_java_statements_Return |c17= parse_org_emftext_language_java_statements_Throw |c18= parse_org_emftext_language_java_statements_Break |c19= parse_org_emftext_language_java_statements_Continue |c20= parse_org_emftext_language_java_statements_JumpLabel |c21= parse_org_emftext_language_java_statements_ExpressionStatement ); + public final org.emftext.language.java.statements.Statement parse_org_emftext_language_java_statements_Statement() throws RecognitionException { + org.emftext.language.java.statements.Statement element = null; + + int parse_org_emftext_language_java_statements_Statement_StartIndex = input.index(); + + org.emftext.language.java.classifiers.Class c0 =null; + + org.emftext.language.java.classifiers.Interface c1 =null; + + org.emftext.language.java.classifiers.Enumeration c2 =null; + + org.emftext.language.java.classifiers.Annotation c3 =null; + + org.emftext.language.java.statements.Block c4 =null; + + org.emftext.language.java.statements.LocalVariableStatement c5 =null; + + org.emftext.language.java.statements.Assert c6 =null; + + org.emftext.language.java.statements.Condition c7 =null; + + org.emftext.language.java.statements.ForLoop c8 =null; + + org.emftext.language.java.statements.ForEachLoop c9 =null; + + org.emftext.language.java.statements.WhileLoop c10 =null; + + org.emftext.language.java.statements.DoWhileLoop c11 =null; + + org.emftext.language.java.statements.EmptyStatement c12 =null; + + org.emftext.language.java.statements.SynchronizedBlock c13 =null; + + org.emftext.language.java.statements.TryBlock c14 =null; + + org.emftext.language.java.statements.Switch c15 =null; + + org.emftext.language.java.statements.Return c16 =null; + + org.emftext.language.java.statements.Throw c17 =null; + + org.emftext.language.java.statements.Break c18 =null; + + org.emftext.language.java.statements.Continue c19 =null; + + org.emftext.language.java.statements.JumpLabel c20 =null; + + org.emftext.language.java.statements.ExpressionStatement c21 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 163) ) { return element; } + + // Java.g:19734:2: (c0= parse_org_emftext_language_java_classifiers_Class |c1= parse_org_emftext_language_java_classifiers_Interface |c2= parse_org_emftext_language_java_classifiers_Enumeration |c3= parse_org_emftext_language_java_classifiers_Annotation |c4= parse_org_emftext_language_java_statements_Block |c5= parse_org_emftext_language_java_statements_LocalVariableStatement |c6= parse_org_emftext_language_java_statements_Assert |c7= parse_org_emftext_language_java_statements_Condition |c8= parse_org_emftext_language_java_statements_ForLoop |c9= parse_org_emftext_language_java_statements_ForEachLoop |c10= parse_org_emftext_language_java_statements_WhileLoop |c11= parse_org_emftext_language_java_statements_DoWhileLoop |c12= parse_org_emftext_language_java_statements_EmptyStatement |c13= parse_org_emftext_language_java_statements_SynchronizedBlock |c14= parse_org_emftext_language_java_statements_TryBlock |c15= parse_org_emftext_language_java_statements_Switch |c16= parse_org_emftext_language_java_statements_Return |c17= parse_org_emftext_language_java_statements_Throw |c18= parse_org_emftext_language_java_statements_Break |c19= parse_org_emftext_language_java_statements_Continue |c20= parse_org_emftext_language_java_statements_JumpLabel |c21= parse_org_emftext_language_java_statements_ExpressionStatement ) + int alt221=22; + alt221 = dfa221.predict(input); + switch (alt221) { + case 1 : + // Java.g:19735:2: c0= parse_org_emftext_language_java_classifiers_Class + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Class_in_parse_org_emftext_language_java_statements_Statement23032); + c0=parse_org_emftext_language_java_classifiers_Class(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19736:4: c1= parse_org_emftext_language_java_classifiers_Interface + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Interface_in_parse_org_emftext_language_java_statements_Statement23042); + c1=parse_org_emftext_language_java_classifiers_Interface(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19737:4: c2= parse_org_emftext_language_java_classifiers_Enumeration + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Enumeration_in_parse_org_emftext_language_java_statements_Statement23052); + c2=parse_org_emftext_language_java_classifiers_Enumeration(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19738:4: c3= parse_org_emftext_language_java_classifiers_Annotation + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Annotation_in_parse_org_emftext_language_java_statements_Statement23062); + c3=parse_org_emftext_language_java_classifiers_Annotation(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + case 5 : + // Java.g:19739:4: c4= parse_org_emftext_language_java_statements_Block + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Block_in_parse_org_emftext_language_java_statements_Statement23072); + c4=parse_org_emftext_language_java_statements_Block(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c4; /* this is a subclass or primitive expression choice */ } + + } + break; + case 6 : + // Java.g:19740:4: c5= parse_org_emftext_language_java_statements_LocalVariableStatement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_LocalVariableStatement_in_parse_org_emftext_language_java_statements_Statement23082); + c5=parse_org_emftext_language_java_statements_LocalVariableStatement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c5; /* this is a subclass or primitive expression choice */ } + + } + break; + case 7 : + // Java.g:19741:4: c6= parse_org_emftext_language_java_statements_Assert + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Assert_in_parse_org_emftext_language_java_statements_Statement23092); + c6=parse_org_emftext_language_java_statements_Assert(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c6; /* this is a subclass or primitive expression choice */ } + + } + break; + case 8 : + // Java.g:19742:4: c7= parse_org_emftext_language_java_statements_Condition + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Condition_in_parse_org_emftext_language_java_statements_Statement23102); + c7=parse_org_emftext_language_java_statements_Condition(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c7; /* this is a subclass or primitive expression choice */ } + + } + break; + case 9 : + // Java.g:19743:4: c8= parse_org_emftext_language_java_statements_ForLoop + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_ForLoop_in_parse_org_emftext_language_java_statements_Statement23112); + c8=parse_org_emftext_language_java_statements_ForLoop(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c8; /* this is a subclass or primitive expression choice */ } + + } + break; + case 10 : + // Java.g:19744:4: c9= parse_org_emftext_language_java_statements_ForEachLoop + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_ForEachLoop_in_parse_org_emftext_language_java_statements_Statement23122); + c9=parse_org_emftext_language_java_statements_ForEachLoop(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c9; /* this is a subclass or primitive expression choice */ } + + } + break; + case 11 : + // Java.g:19745:4: c10= parse_org_emftext_language_java_statements_WhileLoop + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_WhileLoop_in_parse_org_emftext_language_java_statements_Statement23132); + c10=parse_org_emftext_language_java_statements_WhileLoop(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c10; /* this is a subclass or primitive expression choice */ } + + } + break; + case 12 : + // Java.g:19746:4: c11= parse_org_emftext_language_java_statements_DoWhileLoop + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_DoWhileLoop_in_parse_org_emftext_language_java_statements_Statement23142); + c11=parse_org_emftext_language_java_statements_DoWhileLoop(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c11; /* this is a subclass or primitive expression choice */ } + + } + break; + case 13 : + // Java.g:19747:4: c12= parse_org_emftext_language_java_statements_EmptyStatement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_EmptyStatement_in_parse_org_emftext_language_java_statements_Statement23152); + c12=parse_org_emftext_language_java_statements_EmptyStatement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c12; /* this is a subclass or primitive expression choice */ } + + } + break; + case 14 : + // Java.g:19748:4: c13= parse_org_emftext_language_java_statements_SynchronizedBlock + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_SynchronizedBlock_in_parse_org_emftext_language_java_statements_Statement23162); + c13=parse_org_emftext_language_java_statements_SynchronizedBlock(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c13; /* this is a subclass or primitive expression choice */ } + + } + break; + case 15 : + // Java.g:19749:4: c14= parse_org_emftext_language_java_statements_TryBlock + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_TryBlock_in_parse_org_emftext_language_java_statements_Statement23172); + c14=parse_org_emftext_language_java_statements_TryBlock(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c14; /* this is a subclass or primitive expression choice */ } + + } + break; + case 16 : + // Java.g:19750:4: c15= parse_org_emftext_language_java_statements_Switch + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Switch_in_parse_org_emftext_language_java_statements_Statement23182); + c15=parse_org_emftext_language_java_statements_Switch(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c15; /* this is a subclass or primitive expression choice */ } + + } + break; + case 17 : + // Java.g:19751:4: c16= parse_org_emftext_language_java_statements_Return + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Return_in_parse_org_emftext_language_java_statements_Statement23192); + c16=parse_org_emftext_language_java_statements_Return(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c16; /* this is a subclass or primitive expression choice */ } + + } + break; + case 18 : + // Java.g:19752:4: c17= parse_org_emftext_language_java_statements_Throw + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Throw_in_parse_org_emftext_language_java_statements_Statement23202); + c17=parse_org_emftext_language_java_statements_Throw(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c17; /* this is a subclass or primitive expression choice */ } + + } + break; + case 19 : + // Java.g:19753:4: c18= parse_org_emftext_language_java_statements_Break + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Break_in_parse_org_emftext_language_java_statements_Statement23212); + c18=parse_org_emftext_language_java_statements_Break(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c18; /* this is a subclass or primitive expression choice */ } + + } + break; + case 20 : + // Java.g:19754:4: c19= parse_org_emftext_language_java_statements_Continue + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Continue_in_parse_org_emftext_language_java_statements_Statement23222); + c19=parse_org_emftext_language_java_statements_Continue(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c19; /* this is a subclass or primitive expression choice */ } + + } + break; + case 21 : + // Java.g:19755:4: c20= parse_org_emftext_language_java_statements_JumpLabel + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_JumpLabel_in_parse_org_emftext_language_java_statements_Statement23232); + c20=parse_org_emftext_language_java_statements_JumpLabel(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c20; /* this is a subclass or primitive expression choice */ } + + } + break; + case 22 : + // Java.g:19756:4: c21= parse_org_emftext_language_java_statements_ExpressionStatement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_ExpressionStatement_in_parse_org_emftext_language_java_statements_Statement23242); + c21=parse_org_emftext_language_java_statements_ExpressionStatement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c21; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 163, parse_org_emftext_language_java_statements_Statement_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_Statement" + + + + // $ANTLR start "parse_org_emftext_language_java_parameters_Parameter" + // Java.g:19760:1: parse_org_emftext_language_java_parameters_Parameter returns [org.emftext.language.java.parameters.Parameter element = null] : (c0= parse_org_emftext_language_java_parameters_OrdinaryParameter |c1= parse_org_emftext_language_java_parameters_VariableLengthParameter ); + public final org.emftext.language.java.parameters.Parameter parse_org_emftext_language_java_parameters_Parameter() throws RecognitionException { + org.emftext.language.java.parameters.Parameter element = null; + + int parse_org_emftext_language_java_parameters_Parameter_StartIndex = input.index(); + + org.emftext.language.java.parameters.OrdinaryParameter c0 =null; + + org.emftext.language.java.parameters.VariableLengthParameter c1 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 164) ) { return element; } + + // Java.g:19761:2: (c0= parse_org_emftext_language_java_parameters_OrdinaryParameter |c1= parse_org_emftext_language_java_parameters_VariableLengthParameter ) + int alt222=2; + switch ( input.LA(1) ) { + case 48: + { + int LA222_1 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 1, input); + + throw nvae; + + } + } + break; + case 89: + { + int LA222_2 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 2, input); + + throw nvae; + + } + } + break; + case 56: + { + int LA222_3 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 3, input); + + throw nvae; + + } + } + break; + case 88: + { + int LA222_4 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 4, input); + + throw nvae; + + } + } + break; + case 87: + { + int LA222_5 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 5, input); + + throw nvae; + + } + } + break; + case 72: + { + int LA222_6 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 6, input); + + throw nvae; + + } + } + break; + case 92: + { + int LA222_7 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 7, input); + + throw nvae; + + } + } + break; + case 83: + { + int LA222_8 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 8, input); + + throw nvae; + + } + } + break; + case 96: + { + int LA222_9 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 9, input); + + throw nvae; + + } + } + break; + case 100: + { + int LA222_10 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 10, input); + + throw nvae; + + } + } + break; + case 103: + { + int LA222_11 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 11, input); + + throw nvae; + + } + } + break; + case 93: + { + int LA222_12 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 12, input); + + throw nvae; + + } + } + break; + case IDENTIFIER: + { + int LA222_13 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 13, input); + + throw nvae; + + } + } + break; + case 102: + { + int LA222_14 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 14, input); + + throw nvae; + + } + } + break; + case 58: + { + int LA222_15 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 15, input); + + throw nvae; + + } + } + break; + case 63: + { + int LA222_16 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 16, input); + + throw nvae; + + } + } + break; + case 60: + { + int LA222_17 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 17, input); + + throw nvae; + + } + } + break; + case 91: + { + int LA222_18 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 18, input); + + throw nvae; + + } + } + break; + case 80: + { + int LA222_19 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 19, input); + + throw nvae; + + } + } + break; + case 82: + { + int LA222_20 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 20, input); + + throw nvae; + + } + } + break; + case 74: + { + int LA222_21 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 21, input); + + throw nvae; + + } + } + break; + case 68: + { + int LA222_22 = input.LA(2); + + if ( (synpred284_Java()) ) { + alt222=1; + } + else if ( (true) ) { + alt222=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 22, input); + + throw nvae; + + } + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 222, 0, input); + + throw nvae; + + } + + switch (alt222) { + case 1 : + // Java.g:19762:2: c0= parse_org_emftext_language_java_parameters_OrdinaryParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_OrdinaryParameter_in_parse_org_emftext_language_java_parameters_Parameter23263); + c0=parse_org_emftext_language_java_parameters_OrdinaryParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19763:4: c1= parse_org_emftext_language_java_parameters_VariableLengthParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_VariableLengthParameter_in_parse_org_emftext_language_java_parameters_Parameter23273); + c1=parse_org_emftext_language_java_parameters_VariableLengthParameter(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 164, parse_org_emftext_language_java_parameters_Parameter_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_parameters_Parameter" + + + + // $ANTLR start "parse_org_emftext_language_java_generics_TypeArgument" + // Java.g:19767:1: parse_org_emftext_language_java_generics_TypeArgument returns [org.emftext.language.java.generics.TypeArgument element = null] : (c0= parse_org_emftext_language_java_generics_QualifiedTypeArgument |c1= parse_org_emftext_language_java_generics_UnknownTypeArgument |c2= parse_org_emftext_language_java_generics_ExtendsTypeArgument |c3= parse_org_emftext_language_java_generics_SuperTypeArgument ); + public final org.emftext.language.java.generics.TypeArgument parse_org_emftext_language_java_generics_TypeArgument() throws RecognitionException { + org.emftext.language.java.generics.TypeArgument element = null; + + int parse_org_emftext_language_java_generics_TypeArgument_StartIndex = input.index(); + + org.emftext.language.java.generics.QualifiedTypeArgument c0 =null; + + org.emftext.language.java.generics.UnknownTypeArgument c1 =null; + + org.emftext.language.java.generics.ExtendsTypeArgument c2 =null; + + org.emftext.language.java.generics.SuperTypeArgument c3 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 165) ) { return element; } + + // Java.g:19768:2: (c0= parse_org_emftext_language_java_generics_QualifiedTypeArgument |c1= parse_org_emftext_language_java_generics_UnknownTypeArgument |c2= parse_org_emftext_language_java_generics_ExtendsTypeArgument |c3= parse_org_emftext_language_java_generics_SuperTypeArgument ) + int alt223=4; + int LA223_0 = input.LA(1); + + if ( (LA223_0==IDENTIFIER||LA223_0==58||LA223_0==60||LA223_0==63||LA223_0==68||LA223_0==74||LA223_0==80||LA223_0==82||LA223_0==91||LA223_0==102) ) { + alt223=1; + } + else if ( (LA223_0==47) ) { + switch ( input.LA(2) ) { + case EOF: + case 33: + case 46: + { + alt223=2; + } + break; + case 71: + { + alt223=3; + } + break; + case 94: + { + alt223=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 223, 2, input); + + throw nvae; + + } + + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 223, 0, input); + + throw nvae; + + } + switch (alt223) { + case 1 : + // Java.g:19769:2: c0= parse_org_emftext_language_java_generics_QualifiedTypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_QualifiedTypeArgument_in_parse_org_emftext_language_java_generics_TypeArgument23294); + c0=parse_org_emftext_language_java_generics_QualifiedTypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19770:4: c1= parse_org_emftext_language_java_generics_UnknownTypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_UnknownTypeArgument_in_parse_org_emftext_language_java_generics_TypeArgument23304); + c1=parse_org_emftext_language_java_generics_UnknownTypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19771:4: c2= parse_org_emftext_language_java_generics_ExtendsTypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_ExtendsTypeArgument_in_parse_org_emftext_language_java_generics_TypeArgument23314); + c2=parse_org_emftext_language_java_generics_ExtendsTypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19772:4: c3= parse_org_emftext_language_java_generics_SuperTypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_SuperTypeArgument_in_parse_org_emftext_language_java_generics_TypeArgument23324); + c3=parse_org_emftext_language_java_generics_SuperTypeArgument(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 165, parse_org_emftext_language_java_generics_TypeArgument_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_generics_TypeArgument" + + + + // $ANTLR start "parse_org_emftext_language_java_references_Reference" + // Java.g:19776:1: parse_org_emftext_language_java_references_Reference returns [org.emftext.language.java.references.Reference element = null] : (c0= parse_org_emftext_language_java_annotations_AnnotationInstance |c1= parse_org_emftext_language_java_instantiations_NewConstructorCall |c2= parse_org_emftext_language_java_instantiations_ExplicitConstructorCall |c3= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped |c4= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped |c5= parse_org_emftext_language_java_arrays_ArrayInstantiationBySize |c6= parse_org_emftext_language_java_references_MethodCall |c7= parse_org_emftext_language_java_references_IdentifierReference |c8= parse_org_emftext_language_java_references_ReflectiveClassReference |c9= parse_org_emftext_language_java_references_SelfReference |c10= parse_org_emftext_language_java_references_PrimitiveTypeReference |c11= parse_org_emftext_language_java_references_StringReference |c12= parse_org_emftext_language_java_expressions_NestedExpression ); + public final org.emftext.language.java.references.Reference parse_org_emftext_language_java_references_Reference() throws RecognitionException { + org.emftext.language.java.references.Reference element = null; + + int parse_org_emftext_language_java_references_Reference_StartIndex = input.index(); + + org.emftext.language.java.annotations.AnnotationInstance c0 =null; + + org.emftext.language.java.instantiations.NewConstructorCall c1 =null; + + org.emftext.language.java.instantiations.ExplicitConstructorCall c2 =null; + + org.emftext.language.java.arrays.ArrayInstantiationByValuesTyped c3 =null; + + org.emftext.language.java.arrays.ArrayInstantiationByValuesUntyped c4 =null; + + org.emftext.language.java.arrays.ArrayInstantiationBySize c5 =null; + + org.emftext.language.java.references.MethodCall c6 =null; + + org.emftext.language.java.references.IdentifierReference c7 =null; + + org.emftext.language.java.references.ReflectiveClassReference c8 =null; + + org.emftext.language.java.references.SelfReference c9 =null; + + org.emftext.language.java.references.PrimitiveTypeReference c10 =null; + + org.emftext.language.java.references.StringReference c11 =null; + + org.emftext.language.java.expressions.NestedExpression c12 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 166) ) { return element; } + + // Java.g:19777:2: (c0= parse_org_emftext_language_java_annotations_AnnotationInstance |c1= parse_org_emftext_language_java_instantiations_NewConstructorCall |c2= parse_org_emftext_language_java_instantiations_ExplicitConstructorCall |c3= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped |c4= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped |c5= parse_org_emftext_language_java_arrays_ArrayInstantiationBySize |c6= parse_org_emftext_language_java_references_MethodCall |c7= parse_org_emftext_language_java_references_IdentifierReference |c8= parse_org_emftext_language_java_references_ReflectiveClassReference |c9= parse_org_emftext_language_java_references_SelfReference |c10= parse_org_emftext_language_java_references_PrimitiveTypeReference |c11= parse_org_emftext_language_java_references_StringReference |c12= parse_org_emftext_language_java_expressions_NestedExpression ) + int alt224=13; + switch ( input.LA(1) ) { + case 48: + { + alt224=1; + } + break; + case 84: + { + int LA224_2 = input.LA(2); + + if ( (synpred289_Java()) ) { + alt224=2; + } + else if ( (synpred291_Java()) ) { + alt224=4; + } + else if ( (synpred293_Java()) ) { + alt224=6; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 224, 2, input); + + throw nvae; + + } + } + break; + case 43: + { + int LA224_3 = input.LA(2); + + if ( (synpred290_Java()) ) { + alt224=3; + } + else if ( (synpred294_Java()) ) { + alt224=7; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 224, 3, input); + + throw nvae; + + } + } + break; + case 97: + { + int LA224_4 = input.LA(2); + + if ( (synpred290_Java()) ) { + alt224=3; + } + else if ( (synpred297_Java()) ) { + alt224=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 224, 4, input); + + throw nvae; + + } + } + break; + case 94: + { + int LA224_5 = input.LA(2); + + if ( (synpred290_Java()) ) { + alt224=3; + } + else if ( (synpred297_Java()) ) { + alt224=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 224, 5, input); + + throw nvae; + + } + } + break; + case 105: + { + alt224=5; + } + break; + case IDENTIFIER: + { + int LA224_7 = input.LA(2); + + if ( (synpred294_Java()) ) { + alt224=7; + } + else if ( (synpred295_Java()) ) { + alt224=8; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 224, 7, input); + + throw nvae; + + } + } + break; + case 64: + { + alt224=9; + } + break; + case 58: + case 60: + case 63: + case 68: + case 74: + case 80: + case 82: + case 91: + case 102: + { + alt224=11; + } + break; + case STRING_LITERAL: + { + alt224=12; + } + break; + case 26: + { + alt224=13; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 224, 0, input); + + throw nvae; + + } + + switch (alt224) { + case 1 : + // Java.g:19778:2: c0= parse_org_emftext_language_java_annotations_AnnotationInstance + { + pushFollow(FOLLOW_parse_org_emftext_language_java_annotations_AnnotationInstance_in_parse_org_emftext_language_java_references_Reference23345); + c0=parse_org_emftext_language_java_annotations_AnnotationInstance(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19779:4: c1= parse_org_emftext_language_java_instantiations_NewConstructorCall + { + pushFollow(FOLLOW_parse_org_emftext_language_java_instantiations_NewConstructorCall_in_parse_org_emftext_language_java_references_Reference23355); + c1=parse_org_emftext_language_java_instantiations_NewConstructorCall(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19780:4: c2= parse_org_emftext_language_java_instantiations_ExplicitConstructorCall + { + pushFollow(FOLLOW_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall_in_parse_org_emftext_language_java_references_Reference23365); + c2=parse_org_emftext_language_java_instantiations_ExplicitConstructorCall(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19781:4: c3= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped_in_parse_org_emftext_language_java_references_Reference23375); + c3=parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + case 5 : + // Java.g:19782:4: c4= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped_in_parse_org_emftext_language_java_references_Reference23385); + c4=parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c4; /* this is a subclass or primitive expression choice */ } + + } + break; + case 6 : + // Java.g:19783:4: c5= parse_org_emftext_language_java_arrays_ArrayInstantiationBySize + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize_in_parse_org_emftext_language_java_references_Reference23395); + c5=parse_org_emftext_language_java_arrays_ArrayInstantiationBySize(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c5; /* this is a subclass or primitive expression choice */ } + + } + break; + case 7 : + // Java.g:19784:4: c6= parse_org_emftext_language_java_references_MethodCall + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_MethodCall_in_parse_org_emftext_language_java_references_Reference23405); + c6=parse_org_emftext_language_java_references_MethodCall(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c6; /* this is a subclass or primitive expression choice */ } + + } + break; + case 8 : + // Java.g:19785:4: c7= parse_org_emftext_language_java_references_IdentifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_IdentifierReference_in_parse_org_emftext_language_java_references_Reference23415); + c7=parse_org_emftext_language_java_references_IdentifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c7; /* this is a subclass or primitive expression choice */ } + + } + break; + case 9 : + // Java.g:19786:4: c8= parse_org_emftext_language_java_references_ReflectiveClassReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_ReflectiveClassReference_in_parse_org_emftext_language_java_references_Reference23425); + c8=parse_org_emftext_language_java_references_ReflectiveClassReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c8; /* this is a subclass or primitive expression choice */ } + + } + break; + case 10 : + // Java.g:19787:4: c9= parse_org_emftext_language_java_references_SelfReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_SelfReference_in_parse_org_emftext_language_java_references_Reference23435); + c9=parse_org_emftext_language_java_references_SelfReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c9; /* this is a subclass or primitive expression choice */ } + + } + break; + case 11 : + // Java.g:19788:4: c10= parse_org_emftext_language_java_references_PrimitiveTypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_PrimitiveTypeReference_in_parse_org_emftext_language_java_references_Reference23445); + c10=parse_org_emftext_language_java_references_PrimitiveTypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c10; /* this is a subclass or primitive expression choice */ } + + } + break; + case 12 : + // Java.g:19789:4: c11= parse_org_emftext_language_java_references_StringReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_StringReference_in_parse_org_emftext_language_java_references_Reference23455); + c11=parse_org_emftext_language_java_references_StringReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c11; /* this is a subclass or primitive expression choice */ } + + } + break; + case 13 : + // Java.g:19790:4: c12= parse_org_emftext_language_java_expressions_NestedExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_NestedExpression_in_parse_org_emftext_language_java_references_Reference23465); + c12=parse_org_emftext_language_java_expressions_NestedExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c12; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 166, parse_org_emftext_language_java_references_Reference_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_references_Reference" + + + + // $ANTLR start "parse_org_emftext_language_java_literals_Self" + // Java.g:19794:1: parse_org_emftext_language_java_literals_Self returns [org.emftext.language.java.literals.Self element = null] : (c0= parse_org_emftext_language_java_literals_This |c1= parse_org_emftext_language_java_literals_Super ); + public final org.emftext.language.java.literals.Self parse_org_emftext_language_java_literals_Self() throws RecognitionException { + org.emftext.language.java.literals.Self element = null; + + int parse_org_emftext_language_java_literals_Self_StartIndex = input.index(); + + org.emftext.language.java.literals.This c0 =null; + + org.emftext.language.java.literals.Super c1 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 167) ) { return element; } + + // Java.g:19795:2: (c0= parse_org_emftext_language_java_literals_This |c1= parse_org_emftext_language_java_literals_Super ) + int alt225=2; + int LA225_0 = input.LA(1); + + if ( (LA225_0==97) ) { + alt225=1; + } + else if ( (LA225_0==94) ) { + alt225=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 225, 0, input); + + throw nvae; + + } + switch (alt225) { + case 1 : + // Java.g:19796:2: c0= parse_org_emftext_language_java_literals_This + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_This_in_parse_org_emftext_language_java_literals_Self23486); + c0=parse_org_emftext_language_java_literals_This(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19797:4: c1= parse_org_emftext_language_java_literals_Super + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_Super_in_parse_org_emftext_language_java_literals_Self23496); + c1=parse_org_emftext_language_java_literals_Super(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 167, parse_org_emftext_language_java_literals_Self_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_literals_Self" + + + + // $ANTLR start "parse_org_emftext_language_java_types_PrimitiveType" + // Java.g:19801:1: parse_org_emftext_language_java_types_PrimitiveType returns [org.emftext.language.java.types.PrimitiveType element = null] : (c0= parse_org_emftext_language_java_types_Void |c1= parse_org_emftext_language_java_types_Boolean |c2= parse_org_emftext_language_java_types_Char |c3= parse_org_emftext_language_java_types_Byte |c4= parse_org_emftext_language_java_types_Short |c5= parse_org_emftext_language_java_types_Int |c6= parse_org_emftext_language_java_types_Long |c7= parse_org_emftext_language_java_types_Float |c8= parse_org_emftext_language_java_types_Double ); + public final org.emftext.language.java.types.PrimitiveType parse_org_emftext_language_java_types_PrimitiveType() throws RecognitionException { + org.emftext.language.java.types.PrimitiveType element = null; + + int parse_org_emftext_language_java_types_PrimitiveType_StartIndex = input.index(); + + org.emftext.language.java.types.Void c0 =null; + + org.emftext.language.java.types.Boolean c1 =null; + + org.emftext.language.java.types.Char c2 =null; + + org.emftext.language.java.types.Byte c3 =null; + + org.emftext.language.java.types.Short c4 =null; + + org.emftext.language.java.types.Int c5 =null; + + org.emftext.language.java.types.Long c6 =null; + + org.emftext.language.java.types.Float c7 =null; + + org.emftext.language.java.types.Double c8 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 168) ) { return element; } + + // Java.g:19802:2: (c0= parse_org_emftext_language_java_types_Void |c1= parse_org_emftext_language_java_types_Boolean |c2= parse_org_emftext_language_java_types_Char |c3= parse_org_emftext_language_java_types_Byte |c4= parse_org_emftext_language_java_types_Short |c5= parse_org_emftext_language_java_types_Int |c6= parse_org_emftext_language_java_types_Long |c7= parse_org_emftext_language_java_types_Float |c8= parse_org_emftext_language_java_types_Double ) + int alt226=9; + switch ( input.LA(1) ) { + case 102: + { + alt226=1; + } + break; + case 58: + { + alt226=2; + } + break; + case 63: + { + alt226=3; + } + break; + case 60: + { + alt226=4; + } + break; + case 91: + { + alt226=5; + } + break; + case 80: + { + alt226=6; + } + break; + case 82: + { + alt226=7; + } + break; + case 74: + { + alt226=8; + } + break; + case 68: + { + alt226=9; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 226, 0, input); + + throw nvae; + + } + + switch (alt226) { + case 1 : + // Java.g:19803:2: c0= parse_org_emftext_language_java_types_Void + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Void_in_parse_org_emftext_language_java_types_PrimitiveType23517); + c0=parse_org_emftext_language_java_types_Void(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19804:4: c1= parse_org_emftext_language_java_types_Boolean + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Boolean_in_parse_org_emftext_language_java_types_PrimitiveType23527); + c1=parse_org_emftext_language_java_types_Boolean(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19805:4: c2= parse_org_emftext_language_java_types_Char + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Char_in_parse_org_emftext_language_java_types_PrimitiveType23537); + c2=parse_org_emftext_language_java_types_Char(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19806:4: c3= parse_org_emftext_language_java_types_Byte + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Byte_in_parse_org_emftext_language_java_types_PrimitiveType23547); + c3=parse_org_emftext_language_java_types_Byte(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + case 5 : + // Java.g:19807:4: c4= parse_org_emftext_language_java_types_Short + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Short_in_parse_org_emftext_language_java_types_PrimitiveType23557); + c4=parse_org_emftext_language_java_types_Short(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c4; /* this is a subclass or primitive expression choice */ } + + } + break; + case 6 : + // Java.g:19808:4: c5= parse_org_emftext_language_java_types_Int + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Int_in_parse_org_emftext_language_java_types_PrimitiveType23567); + c5=parse_org_emftext_language_java_types_Int(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c5; /* this is a subclass or primitive expression choice */ } + + } + break; + case 7 : + // Java.g:19809:4: c6= parse_org_emftext_language_java_types_Long + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Long_in_parse_org_emftext_language_java_types_PrimitiveType23577); + c6=parse_org_emftext_language_java_types_Long(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c6; /* this is a subclass or primitive expression choice */ } + + } + break; + case 8 : + // Java.g:19810:4: c7= parse_org_emftext_language_java_types_Float + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Float_in_parse_org_emftext_language_java_types_PrimitiveType23587); + c7=parse_org_emftext_language_java_types_Float(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c7; /* this is a subclass or primitive expression choice */ } + + } + break; + case 9 : + // Java.g:19811:4: c8= parse_org_emftext_language_java_types_Double + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_Double_in_parse_org_emftext_language_java_types_PrimitiveType23597); + c8=parse_org_emftext_language_java_types_Double(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c8; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 168, parse_org_emftext_language_java_types_PrimitiveType_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_types_PrimitiveType" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_ForLoopInitializer" + // Java.g:19815:1: parse_org_emftext_language_java_statements_ForLoopInitializer returns [org.emftext.language.java.statements.ForLoopInitializer element = null] : (c0= parse_org_emftext_language_java_variables_LocalVariable |c1= parse_org_emftext_language_java_expressions_ExpressionList ); + public final org.emftext.language.java.statements.ForLoopInitializer parse_org_emftext_language_java_statements_ForLoopInitializer() throws RecognitionException { + org.emftext.language.java.statements.ForLoopInitializer element = null; + + int parse_org_emftext_language_java_statements_ForLoopInitializer_StartIndex = input.index(); + + org.emftext.language.java.variables.LocalVariable c0 =null; + + org.emftext.language.java.expressions.ExpressionList c1 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 169) ) { return element; } + + // Java.g:19816:2: (c0= parse_org_emftext_language_java_variables_LocalVariable |c1= parse_org_emftext_language_java_expressions_ExpressionList ) + int alt227=2; + switch ( input.LA(1) ) { + case 48: + { + int LA227_1 = input.LA(2); + + if ( (synpred309_Java()) ) { + alt227=1; + } + else if ( (true) ) { + alt227=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 227, 1, input); + + throw nvae; + + } + } + break; + case 56: + case 72: + case 83: + case 87: + case 88: + case 89: + case 92: + case 93: + case 96: + case 100: + case 103: + { + alt227=1; + } + break; + case IDENTIFIER: + { + int LA227_13 = input.LA(2); + + if ( (synpred309_Java()) ) { + alt227=1; + } + else if ( (true) ) { + alt227=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 227, 13, input); + + throw nvae; + + } + } + break; + case 102: + { + int LA227_14 = input.LA(2); + + if ( (synpred309_Java()) ) { + alt227=1; + } + else if ( (true) ) { + alt227=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 227, 14, input); + + throw nvae; + + } + } + break; + case 58: + { + int LA227_15 = input.LA(2); + + if ( (synpred309_Java()) ) { + alt227=1; + } + else if ( (true) ) { + alt227=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 227, 15, input); + + throw nvae; + + } + } + break; + case 63: + { + int LA227_16 = input.LA(2); + + if ( (synpred309_Java()) ) { + alt227=1; + } + else if ( (true) ) { + alt227=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 227, 16, input); + + throw nvae; + + } + } + break; + case 60: + { + int LA227_17 = input.LA(2); + + if ( (synpred309_Java()) ) { + alt227=1; + } + else if ( (true) ) { + alt227=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 227, 17, input); + + throw nvae; + + } + } + break; + case 91: + { + int LA227_18 = input.LA(2); + + if ( (synpred309_Java()) ) { + alt227=1; + } + else if ( (true) ) { + alt227=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 227, 18, input); + + throw nvae; + + } + } + break; + case 80: + { + int LA227_19 = input.LA(2); + + if ( (synpred309_Java()) ) { + alt227=1; + } + else if ( (true) ) { + alt227=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 227, 19, input); + + throw nvae; + + } + } + break; + case 82: + { + int LA227_20 = input.LA(2); + + if ( (synpred309_Java()) ) { + alt227=1; + } + else if ( (true) ) { + alt227=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 227, 20, input); + + throw nvae; + + } + } + break; + case 74: + { + int LA227_21 = input.LA(2); + + if ( (synpred309_Java()) ) { + alt227=1; + } + else if ( (true) ) { + alt227=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 227, 21, input); + + throw nvae; + + } + } + break; + case 68: + { + int LA227_22 = input.LA(2); + + if ( (synpred309_Java()) ) { + alt227=1; + } + else if ( (true) ) { + alt227=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 227, 22, input); + + throw nvae; + + } + } + break; + case BOOLEAN_LITERAL: + case CHARACTER_LITERAL: + case DECIMAL_DOUBLE_LITERAL: + case DECIMAL_FLOAT_LITERAL: + case DECIMAL_INTEGER_LITERAL: + case DECIMAL_LONG_LITERAL: + case HEX_DOUBLE_LITERAL: + case HEX_FLOAT_LITERAL: + case HEX_INTEGER_LITERAL: + case HEX_LONG_LITERAL: + case OCTAL_INTEGER_LITERAL: + case OCTAL_LONG_LITERAL: + case STRING_LITERAL: + case 21: + case 26: + case 30: + case 31: + case 34: + case 35: + case 43: + case 64: + case 84: + case 85: + case 94: + case 97: + case 105: + case 110: + { + alt227=2; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 227, 0, input); + + throw nvae; + + } + + switch (alt227) { + case 1 : + // Java.g:19817:2: c0= parse_org_emftext_language_java_variables_LocalVariable + { + pushFollow(FOLLOW_parse_org_emftext_language_java_variables_LocalVariable_in_parse_org_emftext_language_java_statements_ForLoopInitializer23618); + c0=parse_org_emftext_language_java_variables_LocalVariable(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19818:4: c1= parse_org_emftext_language_java_expressions_ExpressionList + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_ExpressionList_in_parse_org_emftext_language_java_statements_ForLoopInitializer23628); + c1=parse_org_emftext_language_java_expressions_ExpressionList(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 169, parse_org_emftext_language_java_statements_ForLoopInitializer_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_ForLoopInitializer" + + + + // $ANTLR start "parse_org_emftext_language_java_statements_SwitchCase" + // Java.g:19822:1: parse_org_emftext_language_java_statements_SwitchCase returns [org.emftext.language.java.statements.SwitchCase element = null] : (c0= parse_org_emftext_language_java_statements_NormalSwitchCase |c1= parse_org_emftext_language_java_statements_DefaultSwitchCase ); + public final org.emftext.language.java.statements.SwitchCase parse_org_emftext_language_java_statements_SwitchCase() throws RecognitionException { + org.emftext.language.java.statements.SwitchCase element = null; + + int parse_org_emftext_language_java_statements_SwitchCase_StartIndex = input.index(); + + org.emftext.language.java.statements.NormalSwitchCase c0 =null; + + org.emftext.language.java.statements.DefaultSwitchCase c1 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 170) ) { return element; } + + // Java.g:19823:2: (c0= parse_org_emftext_language_java_statements_NormalSwitchCase |c1= parse_org_emftext_language_java_statements_DefaultSwitchCase ) + int alt228=2; + int LA228_0 = input.LA(1); + + if ( (LA228_0==61) ) { + alt228=1; + } + else if ( (LA228_0==66) ) { + alt228=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 228, 0, input); + + throw nvae; + + } + switch (alt228) { + case 1 : + // Java.g:19824:2: c0= parse_org_emftext_language_java_statements_NormalSwitchCase + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_NormalSwitchCase_in_parse_org_emftext_language_java_statements_SwitchCase23649); + c0=parse_org_emftext_language_java_statements_NormalSwitchCase(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19825:4: c1= parse_org_emftext_language_java_statements_DefaultSwitchCase + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_DefaultSwitchCase_in_parse_org_emftext_language_java_statements_SwitchCase23659); + c1=parse_org_emftext_language_java_statements_DefaultSwitchCase(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 170, parse_org_emftext_language_java_statements_SwitchCase_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_statements_SwitchCase" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_AssignmentOperator" + // Java.g:19829:1: parse_org_emftext_language_java_operators_AssignmentOperator returns [org.emftext.language.java.operators.AssignmentOperator element = null] : (c0= parse_org_emftext_language_java_operators_Assignment |c1= parse_org_emftext_language_java_operators_AssignmentPlus |c2= parse_org_emftext_language_java_operators_AssignmentMinus |c3= parse_org_emftext_language_java_operators_AssignmentMultiplication |c4= parse_org_emftext_language_java_operators_AssignmentDivision |c5= parse_org_emftext_language_java_operators_AssignmentAnd |c6= parse_org_emftext_language_java_operators_AssignmentOr |c7= parse_org_emftext_language_java_operators_AssignmentExclusiveOr |c8= parse_org_emftext_language_java_operators_AssignmentModulo |c9= parse_org_emftext_language_java_operators_AssignmentLeftShift |c10= parse_org_emftext_language_java_operators_AssignmentRightShift |c11= parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift ); + public final org.emftext.language.java.operators.AssignmentOperator parse_org_emftext_language_java_operators_AssignmentOperator() throws RecognitionException { + org.emftext.language.java.operators.AssignmentOperator element = null; + + int parse_org_emftext_language_java_operators_AssignmentOperator_StartIndex = input.index(); + + org.emftext.language.java.operators.Assignment c0 =null; + + org.emftext.language.java.operators.AssignmentPlus c1 =null; + + org.emftext.language.java.operators.AssignmentMinus c2 =null; + + org.emftext.language.java.operators.AssignmentMultiplication c3 =null; + + org.emftext.language.java.operators.AssignmentDivision c4 =null; + + org.emftext.language.java.operators.AssignmentAnd c5 =null; + + org.emftext.language.java.operators.AssignmentOr c6 =null; + + org.emftext.language.java.operators.AssignmentExclusiveOr c7 =null; + + org.emftext.language.java.operators.AssignmentModulo c8 =null; + + org.emftext.language.java.operators.AssignmentLeftShift c9 =null; + + org.emftext.language.java.operators.AssignmentRightShift c10 =null; + + org.emftext.language.java.operators.AssignmentUnsignedRightShift c11 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 171) ) { return element; } + + // Java.g:19830:2: (c0= parse_org_emftext_language_java_operators_Assignment |c1= parse_org_emftext_language_java_operators_AssignmentPlus |c2= parse_org_emftext_language_java_operators_AssignmentMinus |c3= parse_org_emftext_language_java_operators_AssignmentMultiplication |c4= parse_org_emftext_language_java_operators_AssignmentDivision |c5= parse_org_emftext_language_java_operators_AssignmentAnd |c6= parse_org_emftext_language_java_operators_AssignmentOr |c7= parse_org_emftext_language_java_operators_AssignmentExclusiveOr |c8= parse_org_emftext_language_java_operators_AssignmentModulo |c9= parse_org_emftext_language_java_operators_AssignmentLeftShift |c10= parse_org_emftext_language_java_operators_AssignmentRightShift |c11= parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift ) + int alt229=12; + switch ( input.LA(1) ) { + case 44: + { + alt229=1; + } + break; + case 32: + { + alt229=2; + } + break; + case 36: + { + alt229=3; + } + break; + case 29: + { + alt229=4; + } + break; + case 40: + { + alt229=5; + } + break; + case 25: + { + alt229=6; + } + break; + case 107: + { + alt229=7; + } + break; + case 55: + { + alt229=8; + } + break; + case 52: + { + alt229=9; + } + break; + case 43: + { + alt229=10; + } + break; + case 46: + { + int LA229_11 = input.LA(2); + + if ( (LA229_11==46) ) { + int LA229_12 = input.LA(3); + + if ( (LA229_12==44) ) { + alt229=11; + } + else if ( (LA229_12==46) ) { + alt229=12; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 229, 12, input); + + throw nvae; + + } + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 229, 11, input); + + throw nvae; + + } + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 229, 0, input); + + throw nvae; + + } + + switch (alt229) { + case 1 : + // Java.g:19831:2: c0= parse_org_emftext_language_java_operators_Assignment + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_Assignment_in_parse_org_emftext_language_java_operators_AssignmentOperator23680); + c0=parse_org_emftext_language_java_operators_Assignment(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19832:4: c1= parse_org_emftext_language_java_operators_AssignmentPlus + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_AssignmentPlus_in_parse_org_emftext_language_java_operators_AssignmentOperator23690); + c1=parse_org_emftext_language_java_operators_AssignmentPlus(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19833:4: c2= parse_org_emftext_language_java_operators_AssignmentMinus + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_AssignmentMinus_in_parse_org_emftext_language_java_operators_AssignmentOperator23700); + c2=parse_org_emftext_language_java_operators_AssignmentMinus(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19834:4: c3= parse_org_emftext_language_java_operators_AssignmentMultiplication + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_AssignmentMultiplication_in_parse_org_emftext_language_java_operators_AssignmentOperator23710); + c3=parse_org_emftext_language_java_operators_AssignmentMultiplication(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + case 5 : + // Java.g:19835:4: c4= parse_org_emftext_language_java_operators_AssignmentDivision + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_AssignmentDivision_in_parse_org_emftext_language_java_operators_AssignmentOperator23720); + c4=parse_org_emftext_language_java_operators_AssignmentDivision(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c4; /* this is a subclass or primitive expression choice */ } + + } + break; + case 6 : + // Java.g:19836:4: c5= parse_org_emftext_language_java_operators_AssignmentAnd + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_AssignmentAnd_in_parse_org_emftext_language_java_operators_AssignmentOperator23730); + c5=parse_org_emftext_language_java_operators_AssignmentAnd(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c5; /* this is a subclass or primitive expression choice */ } + + } + break; + case 7 : + // Java.g:19837:4: c6= parse_org_emftext_language_java_operators_AssignmentOr + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_AssignmentOr_in_parse_org_emftext_language_java_operators_AssignmentOperator23740); + c6=parse_org_emftext_language_java_operators_AssignmentOr(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c6; /* this is a subclass or primitive expression choice */ } + + } + break; + case 8 : + // Java.g:19838:4: c7= parse_org_emftext_language_java_operators_AssignmentExclusiveOr + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_AssignmentExclusiveOr_in_parse_org_emftext_language_java_operators_AssignmentOperator23750); + c7=parse_org_emftext_language_java_operators_AssignmentExclusiveOr(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c7; /* this is a subclass or primitive expression choice */ } + + } + break; + case 9 : + // Java.g:19839:4: c8= parse_org_emftext_language_java_operators_AssignmentModulo + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_AssignmentModulo_in_parse_org_emftext_language_java_operators_AssignmentOperator23760); + c8=parse_org_emftext_language_java_operators_AssignmentModulo(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c8; /* this is a subclass or primitive expression choice */ } + + } + break; + case 10 : + // Java.g:19840:4: c9= parse_org_emftext_language_java_operators_AssignmentLeftShift + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_AssignmentLeftShift_in_parse_org_emftext_language_java_operators_AssignmentOperator23770); + c9=parse_org_emftext_language_java_operators_AssignmentLeftShift(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c9; /* this is a subclass or primitive expression choice */ } + + } + break; + case 11 : + // Java.g:19841:4: c10= parse_org_emftext_language_java_operators_AssignmentRightShift + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_AssignmentRightShift_in_parse_org_emftext_language_java_operators_AssignmentOperator23780); + c10=parse_org_emftext_language_java_operators_AssignmentRightShift(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c10; /* this is a subclass or primitive expression choice */ } + + } + break; + case 12 : + // Java.g:19842:4: c11= parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift_in_parse_org_emftext_language_java_operators_AssignmentOperator23790); + c11=parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c11; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 171, parse_org_emftext_language_java_operators_AssignmentOperator_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_AssignmentOperator" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_EqualityOperator" + // Java.g:19846:1: parse_org_emftext_language_java_operators_EqualityOperator returns [org.emftext.language.java.operators.EqualityOperator element = null] : (c0= parse_org_emftext_language_java_operators_Equal |c1= parse_org_emftext_language_java_operators_NotEqual ); + public final org.emftext.language.java.operators.EqualityOperator parse_org_emftext_language_java_operators_EqualityOperator() throws RecognitionException { + org.emftext.language.java.operators.EqualityOperator element = null; + + int parse_org_emftext_language_java_operators_EqualityOperator_StartIndex = input.index(); + + org.emftext.language.java.operators.Equal c0 =null; + + org.emftext.language.java.operators.NotEqual c1 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 172) ) { return element; } + + // Java.g:19847:2: (c0= parse_org_emftext_language_java_operators_Equal |c1= parse_org_emftext_language_java_operators_NotEqual ) + int alt230=2; + int LA230_0 = input.LA(1); + + if ( (LA230_0==45) ) { + alt230=1; + } + else if ( (LA230_0==22) ) { + alt230=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 230, 0, input); + + throw nvae; + + } + switch (alt230) { + case 1 : + // Java.g:19848:2: c0= parse_org_emftext_language_java_operators_Equal + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_Equal_in_parse_org_emftext_language_java_operators_EqualityOperator23811); + c0=parse_org_emftext_language_java_operators_Equal(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19849:4: c1= parse_org_emftext_language_java_operators_NotEqual + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_NotEqual_in_parse_org_emftext_language_java_operators_EqualityOperator23821); + c1=parse_org_emftext_language_java_operators_NotEqual(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 172, parse_org_emftext_language_java_operators_EqualityOperator_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_EqualityOperator" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_RelationOperator" + // Java.g:19853:1: parse_org_emftext_language_java_operators_RelationOperator returns [org.emftext.language.java.operators.RelationOperator element = null] : (c0= parse_org_emftext_language_java_operators_LessThan |c1= parse_org_emftext_language_java_operators_LessThanOrEqual |c2= parse_org_emftext_language_java_operators_GreaterThan |c3= parse_org_emftext_language_java_operators_GreaterThanOrEqual ); + public final org.emftext.language.java.operators.RelationOperator parse_org_emftext_language_java_operators_RelationOperator() throws RecognitionException { + org.emftext.language.java.operators.RelationOperator element = null; + + int parse_org_emftext_language_java_operators_RelationOperator_StartIndex = input.index(); + + org.emftext.language.java.operators.LessThan c0 =null; + + org.emftext.language.java.operators.LessThanOrEqual c1 =null; + + org.emftext.language.java.operators.GreaterThan c2 =null; + + org.emftext.language.java.operators.GreaterThanOrEqual c3 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 173) ) { return element; } + + // Java.g:19854:2: (c0= parse_org_emftext_language_java_operators_LessThan |c1= parse_org_emftext_language_java_operators_LessThanOrEqual |c2= parse_org_emftext_language_java_operators_GreaterThan |c3= parse_org_emftext_language_java_operators_GreaterThanOrEqual ) + int alt231=4; + int LA231_0 = input.LA(1); + + if ( (LA231_0==43) ) { + int LA231_1 = input.LA(2); + + if ( ((LA231_1 >= BOOLEAN_LITERAL && LA231_1 <= IDENTIFIER)||(LA231_1 >= OCTAL_INTEGER_LITERAL && LA231_1 <= OCTAL_LONG_LITERAL)||LA231_1==STRING_LITERAL||LA231_1==21||LA231_1==26||(LA231_1 >= 30 && LA231_1 <= 31)||(LA231_1 >= 34 && LA231_1 <= 35)||LA231_1==43||LA231_1==48||LA231_1==58||LA231_1==60||(LA231_1 >= 63 && LA231_1 <= 64)||LA231_1==68||LA231_1==74||LA231_1==80||LA231_1==82||(LA231_1 >= 84 && LA231_1 <= 85)||LA231_1==91||LA231_1==94||LA231_1==97||LA231_1==102||LA231_1==105||LA231_1==110) ) { + alt231=1; + } + else if ( (LA231_1==44) ) { + alt231=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 231, 1, input); + + throw nvae; + + } + } + else if ( (LA231_0==46) ) { + int LA231_2 = input.LA(2); + + if ( ((LA231_2 >= BOOLEAN_LITERAL && LA231_2 <= IDENTIFIER)||(LA231_2 >= OCTAL_INTEGER_LITERAL && LA231_2 <= OCTAL_LONG_LITERAL)||LA231_2==STRING_LITERAL||LA231_2==21||LA231_2==26||(LA231_2 >= 30 && LA231_2 <= 31)||(LA231_2 >= 34 && LA231_2 <= 35)||LA231_2==43||LA231_2==48||LA231_2==58||LA231_2==60||(LA231_2 >= 63 && LA231_2 <= 64)||LA231_2==68||LA231_2==74||LA231_2==80||LA231_2==82||(LA231_2 >= 84 && LA231_2 <= 85)||LA231_2==91||LA231_2==94||LA231_2==97||LA231_2==102||LA231_2==105||LA231_2==110) ) { + alt231=3; + } + else if ( (LA231_2==44) ) { + alt231=4; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 231, 2, input); + + throw nvae; + + } + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 231, 0, input); + + throw nvae; + + } + switch (alt231) { + case 1 : + // Java.g:19855:2: c0= parse_org_emftext_language_java_operators_LessThan + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_LessThan_in_parse_org_emftext_language_java_operators_RelationOperator23842); + c0=parse_org_emftext_language_java_operators_LessThan(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19856:4: c1= parse_org_emftext_language_java_operators_LessThanOrEqual + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_LessThanOrEqual_in_parse_org_emftext_language_java_operators_RelationOperator23852); + c1=parse_org_emftext_language_java_operators_LessThanOrEqual(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19857:4: c2= parse_org_emftext_language_java_operators_GreaterThan + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_GreaterThan_in_parse_org_emftext_language_java_operators_RelationOperator23862); + c2=parse_org_emftext_language_java_operators_GreaterThan(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19858:4: c3= parse_org_emftext_language_java_operators_GreaterThanOrEqual + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_GreaterThanOrEqual_in_parse_org_emftext_language_java_operators_RelationOperator23872); + c3=parse_org_emftext_language_java_operators_GreaterThanOrEqual(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 173, parse_org_emftext_language_java_operators_RelationOperator_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_RelationOperator" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_ShiftOperator" + // Java.g:19862:1: parse_org_emftext_language_java_operators_ShiftOperator returns [org.emftext.language.java.operators.ShiftOperator element = null] : (c0= parse_org_emftext_language_java_operators_LeftShift |c1= parse_org_emftext_language_java_operators_RightShift |c2= parse_org_emftext_language_java_operators_UnsignedRightShift ); + public final org.emftext.language.java.operators.ShiftOperator parse_org_emftext_language_java_operators_ShiftOperator() throws RecognitionException { + org.emftext.language.java.operators.ShiftOperator element = null; + + int parse_org_emftext_language_java_operators_ShiftOperator_StartIndex = input.index(); + + org.emftext.language.java.operators.LeftShift c0 =null; + + org.emftext.language.java.operators.RightShift c1 =null; + + org.emftext.language.java.operators.UnsignedRightShift c2 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 174) ) { return element; } + + // Java.g:19863:2: (c0= parse_org_emftext_language_java_operators_LeftShift |c1= parse_org_emftext_language_java_operators_RightShift |c2= parse_org_emftext_language_java_operators_UnsignedRightShift ) + int alt232=3; + int LA232_0 = input.LA(1); + + if ( (LA232_0==43) ) { + alt232=1; + } + else if ( (LA232_0==46) ) { + int LA232_2 = input.LA(2); + + if ( (LA232_2==46) ) { + int LA232_3 = input.LA(3); + + if ( ((LA232_3 >= BOOLEAN_LITERAL && LA232_3 <= IDENTIFIER)||(LA232_3 >= OCTAL_INTEGER_LITERAL && LA232_3 <= OCTAL_LONG_LITERAL)||LA232_3==STRING_LITERAL||LA232_3==21||LA232_3==26||(LA232_3 >= 30 && LA232_3 <= 31)||(LA232_3 >= 34 && LA232_3 <= 35)||LA232_3==43||LA232_3==48||LA232_3==58||LA232_3==60||(LA232_3 >= 63 && LA232_3 <= 64)||LA232_3==68||LA232_3==74||LA232_3==80||LA232_3==82||(LA232_3 >= 84 && LA232_3 <= 85)||LA232_3==91||LA232_3==94||LA232_3==97||LA232_3==102||LA232_3==105||LA232_3==110) ) { + alt232=2; + } + else if ( (LA232_3==46) ) { + alt232=3; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 232, 3, input); + + throw nvae; + + } + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 232, 2, input); + + throw nvae; + + } + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 232, 0, input); + + throw nvae; + + } + switch (alt232) { + case 1 : + // Java.g:19864:2: c0= parse_org_emftext_language_java_operators_LeftShift + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_LeftShift_in_parse_org_emftext_language_java_operators_ShiftOperator23893); + c0=parse_org_emftext_language_java_operators_LeftShift(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19865:4: c1= parse_org_emftext_language_java_operators_RightShift + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_RightShift_in_parse_org_emftext_language_java_operators_ShiftOperator23903); + c1=parse_org_emftext_language_java_operators_RightShift(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19866:4: c2= parse_org_emftext_language_java_operators_UnsignedRightShift + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_UnsignedRightShift_in_parse_org_emftext_language_java_operators_ShiftOperator23913); + c2=parse_org_emftext_language_java_operators_UnsignedRightShift(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 174, parse_org_emftext_language_java_operators_ShiftOperator_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_ShiftOperator" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_AdditiveOperator" + // Java.g:19870:1: parse_org_emftext_language_java_operators_AdditiveOperator returns [org.emftext.language.java.operators.AdditiveOperator element = null] : (c0= parse_org_emftext_language_java_operators_Addition |c1= parse_org_emftext_language_java_operators_Subtraction ); + public final org.emftext.language.java.operators.AdditiveOperator parse_org_emftext_language_java_operators_AdditiveOperator() throws RecognitionException { + org.emftext.language.java.operators.AdditiveOperator element = null; + + int parse_org_emftext_language_java_operators_AdditiveOperator_StartIndex = input.index(); + + org.emftext.language.java.operators.Addition c0 =null; + + org.emftext.language.java.operators.Subtraction c1 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 175) ) { return element; } + + // Java.g:19871:2: (c0= parse_org_emftext_language_java_operators_Addition |c1= parse_org_emftext_language_java_operators_Subtraction ) + int alt233=2; + int LA233_0 = input.LA(1); + + if ( (LA233_0==30) ) { + alt233=1; + } + else if ( (LA233_0==34) ) { + alt233=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 233, 0, input); + + throw nvae; + + } + switch (alt233) { + case 1 : + // Java.g:19872:2: c0= parse_org_emftext_language_java_operators_Addition + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_Addition_in_parse_org_emftext_language_java_operators_AdditiveOperator23934); + c0=parse_org_emftext_language_java_operators_Addition(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19873:4: c1= parse_org_emftext_language_java_operators_Subtraction + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_Subtraction_in_parse_org_emftext_language_java_operators_AdditiveOperator23944); + c1=parse_org_emftext_language_java_operators_Subtraction(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 175, parse_org_emftext_language_java_operators_AdditiveOperator_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_AdditiveOperator" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_MultiplicativeOperator" + // Java.g:19877:1: parse_org_emftext_language_java_operators_MultiplicativeOperator returns [org.emftext.language.java.operators.MultiplicativeOperator element = null] : (c0= parse_org_emftext_language_java_operators_Multiplication |c1= parse_org_emftext_language_java_operators_Division |c2= parse_org_emftext_language_java_operators_Remainder ); + public final org.emftext.language.java.operators.MultiplicativeOperator parse_org_emftext_language_java_operators_MultiplicativeOperator() throws RecognitionException { + org.emftext.language.java.operators.MultiplicativeOperator element = null; + + int parse_org_emftext_language_java_operators_MultiplicativeOperator_StartIndex = input.index(); + + org.emftext.language.java.operators.Multiplication c0 =null; + + org.emftext.language.java.operators.Division c1 =null; + + org.emftext.language.java.operators.Remainder c2 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 176) ) { return element; } + + // Java.g:19878:2: (c0= parse_org_emftext_language_java_operators_Multiplication |c1= parse_org_emftext_language_java_operators_Division |c2= parse_org_emftext_language_java_operators_Remainder ) + int alt234=3; + switch ( input.LA(1) ) { + case 28: + { + alt234=1; + } + break; + case 39: + { + alt234=2; + } + break; + case 51: + { + alt234=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 234, 0, input); + + throw nvae; + + } + + switch (alt234) { + case 1 : + // Java.g:19879:2: c0= parse_org_emftext_language_java_operators_Multiplication + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_Multiplication_in_parse_org_emftext_language_java_operators_MultiplicativeOperator23965); + c0=parse_org_emftext_language_java_operators_Multiplication(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19880:4: c1= parse_org_emftext_language_java_operators_Division + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_Division_in_parse_org_emftext_language_java_operators_MultiplicativeOperator23975); + c1=parse_org_emftext_language_java_operators_Division(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19881:4: c2= parse_org_emftext_language_java_operators_Remainder + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_Remainder_in_parse_org_emftext_language_java_operators_MultiplicativeOperator23985); + c2=parse_org_emftext_language_java_operators_Remainder(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 176, parse_org_emftext_language_java_operators_MultiplicativeOperator_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_MultiplicativeOperator" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_UnaryOperator" + // Java.g:19885:1: parse_org_emftext_language_java_operators_UnaryOperator returns [org.emftext.language.java.operators.UnaryOperator element = null] : (c0= parse_org_emftext_language_java_operators_Addition |c1= parse_org_emftext_language_java_operators_Subtraction |c2= parse_org_emftext_language_java_operators_Complement |c3= parse_org_emftext_language_java_operators_Negate ); + public final org.emftext.language.java.operators.UnaryOperator parse_org_emftext_language_java_operators_UnaryOperator() throws RecognitionException { + org.emftext.language.java.operators.UnaryOperator element = null; + + int parse_org_emftext_language_java_operators_UnaryOperator_StartIndex = input.index(); + + org.emftext.language.java.operators.Addition c0 =null; + + org.emftext.language.java.operators.Subtraction c1 =null; + + org.emftext.language.java.operators.Complement c2 =null; + + org.emftext.language.java.operators.Negate c3 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 177) ) { return element; } + + // Java.g:19886:2: (c0= parse_org_emftext_language_java_operators_Addition |c1= parse_org_emftext_language_java_operators_Subtraction |c2= parse_org_emftext_language_java_operators_Complement |c3= parse_org_emftext_language_java_operators_Negate ) + int alt235=4; + switch ( input.LA(1) ) { + case 30: + { + alt235=1; + } + break; + case 34: + { + alt235=2; + } + break; + case 110: + { + alt235=3; + } + break; + case 21: + { + alt235=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 235, 0, input); + + throw nvae; + + } + + switch (alt235) { + case 1 : + // Java.g:19887:2: c0= parse_org_emftext_language_java_operators_Addition + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_Addition_in_parse_org_emftext_language_java_operators_UnaryOperator24006); + c0=parse_org_emftext_language_java_operators_Addition(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19888:4: c1= parse_org_emftext_language_java_operators_Subtraction + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_Subtraction_in_parse_org_emftext_language_java_operators_UnaryOperator24016); + c1=parse_org_emftext_language_java_operators_Subtraction(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19889:4: c2= parse_org_emftext_language_java_operators_Complement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_Complement_in_parse_org_emftext_language_java_operators_UnaryOperator24026); + c2=parse_org_emftext_language_java_operators_Complement(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19890:4: c3= parse_org_emftext_language_java_operators_Negate + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_Negate_in_parse_org_emftext_language_java_operators_UnaryOperator24036); + c3=parse_org_emftext_language_java_operators_Negate(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 177, parse_org_emftext_language_java_operators_UnaryOperator_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_UnaryOperator" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_UnaryModificationExpression" + // Java.g:19894:1: parse_org_emftext_language_java_expressions_UnaryModificationExpression returns [org.emftext.language.java.expressions.UnaryModificationExpression element = null] : (c0= parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression |c1= parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression ); + public final org.emftext.language.java.expressions.UnaryModificationExpression parse_org_emftext_language_java_expressions_UnaryModificationExpression() throws RecognitionException { + org.emftext.language.java.expressions.UnaryModificationExpression element = null; + + int parse_org_emftext_language_java_expressions_UnaryModificationExpression_StartIndex = input.index(); + + org.emftext.language.java.expressions.SuffixUnaryModificationExpression c0 =null; + + org.emftext.language.java.expressions.PrefixUnaryModificationExpression c1 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 178) ) { return element; } + + // Java.g:19895:2: (c0= parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression |c1= parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression ) + int alt236=2; + switch ( input.LA(1) ) { + case 48: + { + int LA236_1 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 1, input); + + throw nvae; + + } + } + break; + case 84: + { + int LA236_2 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 2, input); + + throw nvae; + + } + } + break; + case 43: + { + int LA236_3 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 3, input); + + throw nvae; + + } + } + break; + case 97: + { + int LA236_4 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 4, input); + + throw nvae; + + } + } + break; + case 94: + { + int LA236_5 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 5, input); + + throw nvae; + + } + } + break; + case 105: + { + int LA236_6 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 6, input); + + throw nvae; + + } + } + break; + case IDENTIFIER: + { + int LA236_7 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 7, input); + + throw nvae; + + } + } + break; + case 64: + { + int LA236_8 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 8, input); + + throw nvae; + + } + } + break; + case 102: + { + int LA236_9 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 9, input); + + throw nvae; + + } + } + break; + case 58: + { + int LA236_10 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 10, input); + + throw nvae; + + } + } + break; + case 63: + { + int LA236_11 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 11, input); + + throw nvae; + + } + } + break; + case 60: + { + int LA236_12 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 12, input); + + throw nvae; + + } + } + break; + case 91: + { + int LA236_13 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 13, input); + + throw nvae; + + } + } + break; + case 80: + { + int LA236_14 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 14, input); + + throw nvae; + + } + } + break; + case 82: + { + int LA236_15 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 15, input); + + throw nvae; + + } + } + break; + case 74: + { + int LA236_16 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 16, input); + + throw nvae; + + } + } + break; + case 68: + { + int LA236_17 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 17, input); + + throw nvae; + + } + } + break; + case STRING_LITERAL: + { + int LA236_18 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 18, input); + + throw nvae; + + } + } + break; + case 26: + { + int LA236_19 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 19, input); + + throw nvae; + + } + } + break; + case 85: + { + int LA236_20 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 20, input); + + throw nvae; + + } + } + break; + case DECIMAL_LONG_LITERAL: + { + int LA236_21 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 21, input); + + throw nvae; + + } + } + break; + case DECIMAL_FLOAT_LITERAL: + { + int LA236_22 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 22, input); + + throw nvae; + + } + } + break; + case DECIMAL_INTEGER_LITERAL: + { + int LA236_23 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 23, input); + + throw nvae; + + } + } + break; + case DECIMAL_DOUBLE_LITERAL: + { + int LA236_24 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 24, input); + + throw nvae; + + } + } + break; + case HEX_LONG_LITERAL: + { + int LA236_25 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 25, input); + + throw nvae; + + } + } + break; + case HEX_FLOAT_LITERAL: + { + int LA236_26 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 26, input); + + throw nvae; + + } + } + break; + case HEX_DOUBLE_LITERAL: + { + int LA236_27 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 27, input); + + throw nvae; + + } + } + break; + case HEX_INTEGER_LITERAL: + { + int LA236_28 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 28, input); + + throw nvae; + + } + } + break; + case OCTAL_LONG_LITERAL: + { + int LA236_29 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 29, input); + + throw nvae; + + } + } + break; + case OCTAL_INTEGER_LITERAL: + { + int LA236_30 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 30, input); + + throw nvae; + + } + } + break; + case CHARACTER_LITERAL: + { + int LA236_31 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 31, input); + + throw nvae; + + } + } + break; + case BOOLEAN_LITERAL: + { + int LA236_32 = input.LA(2); + + if ( (synpred334_Java()) ) { + alt236=1; + } + else if ( (true) ) { + alt236=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 32, input); + + throw nvae; + + } + } + break; + case 31: + case 35: + { + alt236=2; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 236, 0, input); + + throw nvae; + + } + + switch (alt236) { + case 1 : + // Java.g:19896:2: c0= parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression_in_parse_org_emftext_language_java_expressions_UnaryModificationExpression24057); + c0=parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19897:4: c1= parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression_in_parse_org_emftext_language_java_expressions_UnaryModificationExpression24067); + c1=parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 178, parse_org_emftext_language_java_expressions_UnaryModificationExpression_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_UnaryModificationExpression" + + + + // $ANTLR start "parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild" + // Java.g:19901:1: parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild returns [org.emftext.language.java.expressions.UnaryModificationExpressionChild element = null] : (c0= parse_org_emftext_language_java_annotations_AnnotationInstance |c1= parse_org_emftext_language_java_instantiations_NewConstructorCall |c2= parse_org_emftext_language_java_instantiations_ExplicitConstructorCall |c3= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped |c4= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped |c5= parse_org_emftext_language_java_arrays_ArrayInstantiationBySize |c6= parse_org_emftext_language_java_references_MethodCall |c7= parse_org_emftext_language_java_references_IdentifierReference |c8= parse_org_emftext_language_java_references_ReflectiveClassReference |c9= parse_org_emftext_language_java_references_SelfReference |c10= parse_org_emftext_language_java_references_PrimitiveTypeReference |c11= parse_org_emftext_language_java_references_StringReference |c12= parse_org_emftext_language_java_expressions_CastExpression |c13= parse_org_emftext_language_java_expressions_NestedExpression |c14= parse_org_emftext_language_java_literals_NullLiteral |c15= parse_org_emftext_language_java_literals_DecimalLongLiteral |c16= parse_org_emftext_language_java_literals_DecimalFloatLiteral |c17= parse_org_emftext_language_java_literals_DecimalIntegerLiteral |c18= parse_org_emftext_language_java_literals_DecimalDoubleLiteral |c19= parse_org_emftext_language_java_literals_HexLongLiteral |c20= parse_org_emftext_language_java_literals_HexFloatLiteral |c21= parse_org_emftext_language_java_literals_HexDoubleLiteral |c22= parse_org_emftext_language_java_literals_HexIntegerLiteral |c23= parse_org_emftext_language_java_literals_OctalLongLiteral |c24= parse_org_emftext_language_java_literals_OctalIntegerLiteral |c25= parse_org_emftext_language_java_literals_CharacterLiteral |c26= parse_org_emftext_language_java_literals_BooleanLiteral ); + public final org.emftext.language.java.expressions.UnaryModificationExpressionChild parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild() throws RecognitionException { + org.emftext.language.java.expressions.UnaryModificationExpressionChild element = null; + + int parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild_StartIndex = input.index(); + + org.emftext.language.java.annotations.AnnotationInstance c0 =null; + + org.emftext.language.java.instantiations.NewConstructorCall c1 =null; + + org.emftext.language.java.instantiations.ExplicitConstructorCall c2 =null; + + org.emftext.language.java.arrays.ArrayInstantiationByValuesTyped c3 =null; + + org.emftext.language.java.arrays.ArrayInstantiationByValuesUntyped c4 =null; + + org.emftext.language.java.arrays.ArrayInstantiationBySize c5 =null; + + org.emftext.language.java.references.MethodCall c6 =null; + + org.emftext.language.java.references.IdentifierReference c7 =null; + + org.emftext.language.java.references.ReflectiveClassReference c8 =null; + + org.emftext.language.java.references.SelfReference c9 =null; + + org.emftext.language.java.references.PrimitiveTypeReference c10 =null; + + org.emftext.language.java.references.StringReference c11 =null; + + org.emftext.language.java.expressions.CastExpression c12 =null; + + org.emftext.language.java.expressions.NestedExpression c13 =null; + + org.emftext.language.java.literals.NullLiteral c14 =null; + + org.emftext.language.java.literals.DecimalLongLiteral c15 =null; + + org.emftext.language.java.literals.DecimalFloatLiteral c16 =null; + + org.emftext.language.java.literals.DecimalIntegerLiteral c17 =null; + + org.emftext.language.java.literals.DecimalDoubleLiteral c18 =null; + + org.emftext.language.java.literals.HexLongLiteral c19 =null; + + org.emftext.language.java.literals.HexFloatLiteral c20 =null; + + org.emftext.language.java.literals.HexDoubleLiteral c21 =null; + + org.emftext.language.java.literals.HexIntegerLiteral c22 =null; + + org.emftext.language.java.literals.OctalLongLiteral c23 =null; + + org.emftext.language.java.literals.OctalIntegerLiteral c24 =null; + + org.emftext.language.java.literals.CharacterLiteral c25 =null; + + org.emftext.language.java.literals.BooleanLiteral c26 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 179) ) { return element; } + + // Java.g:19902:2: (c0= parse_org_emftext_language_java_annotations_AnnotationInstance |c1= parse_org_emftext_language_java_instantiations_NewConstructorCall |c2= parse_org_emftext_language_java_instantiations_ExplicitConstructorCall |c3= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped |c4= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped |c5= parse_org_emftext_language_java_arrays_ArrayInstantiationBySize |c6= parse_org_emftext_language_java_references_MethodCall |c7= parse_org_emftext_language_java_references_IdentifierReference |c8= parse_org_emftext_language_java_references_ReflectiveClassReference |c9= parse_org_emftext_language_java_references_SelfReference |c10= parse_org_emftext_language_java_references_PrimitiveTypeReference |c11= parse_org_emftext_language_java_references_StringReference |c12= parse_org_emftext_language_java_expressions_CastExpression |c13= parse_org_emftext_language_java_expressions_NestedExpression |c14= parse_org_emftext_language_java_literals_NullLiteral |c15= parse_org_emftext_language_java_literals_DecimalLongLiteral |c16= parse_org_emftext_language_java_literals_DecimalFloatLiteral |c17= parse_org_emftext_language_java_literals_DecimalIntegerLiteral |c18= parse_org_emftext_language_java_literals_DecimalDoubleLiteral |c19= parse_org_emftext_language_java_literals_HexLongLiteral |c20= parse_org_emftext_language_java_literals_HexFloatLiteral |c21= parse_org_emftext_language_java_literals_HexDoubleLiteral |c22= parse_org_emftext_language_java_literals_HexIntegerLiteral |c23= parse_org_emftext_language_java_literals_OctalLongLiteral |c24= parse_org_emftext_language_java_literals_OctalIntegerLiteral |c25= parse_org_emftext_language_java_literals_CharacterLiteral |c26= parse_org_emftext_language_java_literals_BooleanLiteral ) + int alt237=27; + switch ( input.LA(1) ) { + case 48: + { + alt237=1; + } + break; + case 84: + { + int LA237_2 = input.LA(2); + + if ( (synpred336_Java()) ) { + alt237=2; + } + else if ( (synpred338_Java()) ) { + alt237=4; + } + else if ( (synpred340_Java()) ) { + alt237=6; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 237, 2, input); + + throw nvae; + + } + } + break; + case 43: + { + int LA237_3 = input.LA(2); + + if ( (synpred337_Java()) ) { + alt237=3; + } + else if ( (synpred341_Java()) ) { + alt237=7; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 237, 3, input); + + throw nvae; + + } + } + break; + case 97: + { + int LA237_4 = input.LA(2); + + if ( (synpred337_Java()) ) { + alt237=3; + } + else if ( (synpred344_Java()) ) { + alt237=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 237, 4, input); + + throw nvae; + + } + } + break; + case 94: + { + int LA237_5 = input.LA(2); + + if ( (synpred337_Java()) ) { + alt237=3; + } + else if ( (synpred344_Java()) ) { + alt237=10; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 237, 5, input); + + throw nvae; + + } + } + break; + case 105: + { + alt237=5; + } + break; + case IDENTIFIER: + { + int LA237_7 = input.LA(2); + + if ( (synpred341_Java()) ) { + alt237=7; + } + else if ( (synpred342_Java()) ) { + alt237=8; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 237, 7, input); + + throw nvae; + + } + } + break; + case 64: + { + alt237=9; + } + break; + case 58: + case 60: + case 63: + case 68: + case 74: + case 80: + case 82: + case 91: + case 102: + { + alt237=11; + } + break; + case STRING_LITERAL: + { + alt237=12; + } + break; + case 26: + { + int LA237_19 = input.LA(2); + + if ( (synpred347_Java()) ) { + alt237=13; + } + else if ( (synpred348_Java()) ) { + alt237=14; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 237, 19, input); + + throw nvae; + + } + } + break; + case 85: + { + alt237=15; + } + break; + case DECIMAL_LONG_LITERAL: + { + alt237=16; + } + break; + case DECIMAL_FLOAT_LITERAL: + { + alt237=17; + } + break; + case DECIMAL_INTEGER_LITERAL: + { + alt237=18; + } + break; + case DECIMAL_DOUBLE_LITERAL: + { + alt237=19; + } + break; + case HEX_LONG_LITERAL: + { + alt237=20; + } + break; + case HEX_FLOAT_LITERAL: + { + alt237=21; + } + break; + case HEX_DOUBLE_LITERAL: + { + alt237=22; + } + break; + case HEX_INTEGER_LITERAL: + { + alt237=23; + } + break; + case OCTAL_LONG_LITERAL: + { + alt237=24; + } + break; + case OCTAL_INTEGER_LITERAL: + { + alt237=25; + } + break; + case CHARACTER_LITERAL: + { + alt237=26; + } + break; + case BOOLEAN_LITERAL: + { + alt237=27; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 237, 0, input); + + throw nvae; + + } + + switch (alt237) { + case 1 : + // Java.g:19903:2: c0= parse_org_emftext_language_java_annotations_AnnotationInstance + { + pushFollow(FOLLOW_parse_org_emftext_language_java_annotations_AnnotationInstance_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24088); + c0=parse_org_emftext_language_java_annotations_AnnotationInstance(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19904:4: c1= parse_org_emftext_language_java_instantiations_NewConstructorCall + { + pushFollow(FOLLOW_parse_org_emftext_language_java_instantiations_NewConstructorCall_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24098); + c1=parse_org_emftext_language_java_instantiations_NewConstructorCall(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + case 3 : + // Java.g:19905:4: c2= parse_org_emftext_language_java_instantiations_ExplicitConstructorCall + { + pushFollow(FOLLOW_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24108); + c2=parse_org_emftext_language_java_instantiations_ExplicitConstructorCall(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c2; /* this is a subclass or primitive expression choice */ } + + } + break; + case 4 : + // Java.g:19906:4: c3= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24118); + c3=parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c3; /* this is a subclass or primitive expression choice */ } + + } + break; + case 5 : + // Java.g:19907:4: c4= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24128); + c4=parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c4; /* this is a subclass or primitive expression choice */ } + + } + break; + case 6 : + // Java.g:19908:4: c5= parse_org_emftext_language_java_arrays_ArrayInstantiationBySize + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24138); + c5=parse_org_emftext_language_java_arrays_ArrayInstantiationBySize(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c5; /* this is a subclass or primitive expression choice */ } + + } + break; + case 7 : + // Java.g:19909:4: c6= parse_org_emftext_language_java_references_MethodCall + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_MethodCall_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24148); + c6=parse_org_emftext_language_java_references_MethodCall(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c6; /* this is a subclass or primitive expression choice */ } + + } + break; + case 8 : + // Java.g:19910:4: c7= parse_org_emftext_language_java_references_IdentifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_IdentifierReference_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24158); + c7=parse_org_emftext_language_java_references_IdentifierReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c7; /* this is a subclass or primitive expression choice */ } + + } + break; + case 9 : + // Java.g:19911:4: c8= parse_org_emftext_language_java_references_ReflectiveClassReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_ReflectiveClassReference_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24168); + c8=parse_org_emftext_language_java_references_ReflectiveClassReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c8; /* this is a subclass or primitive expression choice */ } + + } + break; + case 10 : + // Java.g:19912:4: c9= parse_org_emftext_language_java_references_SelfReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_SelfReference_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24178); + c9=parse_org_emftext_language_java_references_SelfReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c9; /* this is a subclass or primitive expression choice */ } + + } + break; + case 11 : + // Java.g:19913:4: c10= parse_org_emftext_language_java_references_PrimitiveTypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_PrimitiveTypeReference_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24188); + c10=parse_org_emftext_language_java_references_PrimitiveTypeReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c10; /* this is a subclass or primitive expression choice */ } + + } + break; + case 12 : + // Java.g:19914:4: c11= parse_org_emftext_language_java_references_StringReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_StringReference_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24198); + c11=parse_org_emftext_language_java_references_StringReference(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c11; /* this is a subclass or primitive expression choice */ } + + } + break; + case 13 : + // Java.g:19915:4: c12= parse_org_emftext_language_java_expressions_CastExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_CastExpression_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24208); + c12=parse_org_emftext_language_java_expressions_CastExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c12; /* this is a subclass or primitive expression choice */ } + + } + break; + case 14 : + // Java.g:19916:4: c13= parse_org_emftext_language_java_expressions_NestedExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_NestedExpression_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24218); + c13=parse_org_emftext_language_java_expressions_NestedExpression(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c13; /* this is a subclass or primitive expression choice */ } + + } + break; + case 15 : + // Java.g:19917:4: c14= parse_org_emftext_language_java_literals_NullLiteral + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_NullLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24228); + c14=parse_org_emftext_language_java_literals_NullLiteral(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c14; /* this is a subclass or primitive expression choice */ } + + } + break; + case 16 : + // Java.g:19918:4: c15= parse_org_emftext_language_java_literals_DecimalLongLiteral + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_DecimalLongLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24238); + c15=parse_org_emftext_language_java_literals_DecimalLongLiteral(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c15; /* this is a subclass or primitive expression choice */ } + + } + break; + case 17 : + // Java.g:19919:4: c16= parse_org_emftext_language_java_literals_DecimalFloatLiteral + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_DecimalFloatLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24248); + c16=parse_org_emftext_language_java_literals_DecimalFloatLiteral(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c16; /* this is a subclass or primitive expression choice */ } + + } + break; + case 18 : + // Java.g:19920:4: c17= parse_org_emftext_language_java_literals_DecimalIntegerLiteral + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_DecimalIntegerLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24258); + c17=parse_org_emftext_language_java_literals_DecimalIntegerLiteral(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c17; /* this is a subclass or primitive expression choice */ } + + } + break; + case 19 : + // Java.g:19921:4: c18= parse_org_emftext_language_java_literals_DecimalDoubleLiteral + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_DecimalDoubleLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24268); + c18=parse_org_emftext_language_java_literals_DecimalDoubleLiteral(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c18; /* this is a subclass or primitive expression choice */ } + + } + break; + case 20 : + // Java.g:19922:4: c19= parse_org_emftext_language_java_literals_HexLongLiteral + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_HexLongLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24278); + c19=parse_org_emftext_language_java_literals_HexLongLiteral(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c19; /* this is a subclass or primitive expression choice */ } + + } + break; + case 21 : + // Java.g:19923:4: c20= parse_org_emftext_language_java_literals_HexFloatLiteral + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_HexFloatLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24288); + c20=parse_org_emftext_language_java_literals_HexFloatLiteral(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c20; /* this is a subclass or primitive expression choice */ } + + } + break; + case 22 : + // Java.g:19924:4: c21= parse_org_emftext_language_java_literals_HexDoubleLiteral + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_HexDoubleLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24298); + c21=parse_org_emftext_language_java_literals_HexDoubleLiteral(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c21; /* this is a subclass or primitive expression choice */ } + + } + break; + case 23 : + // Java.g:19925:4: c22= parse_org_emftext_language_java_literals_HexIntegerLiteral + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_HexIntegerLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24308); + c22=parse_org_emftext_language_java_literals_HexIntegerLiteral(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c22; /* this is a subclass or primitive expression choice */ } + + } + break; + case 24 : + // Java.g:19926:4: c23= parse_org_emftext_language_java_literals_OctalLongLiteral + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_OctalLongLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24318); + c23=parse_org_emftext_language_java_literals_OctalLongLiteral(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c23; /* this is a subclass or primitive expression choice */ } + + } + break; + case 25 : + // Java.g:19927:4: c24= parse_org_emftext_language_java_literals_OctalIntegerLiteral + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_OctalIntegerLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24328); + c24=parse_org_emftext_language_java_literals_OctalIntegerLiteral(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c24; /* this is a subclass or primitive expression choice */ } + + } + break; + case 26 : + // Java.g:19928:4: c25= parse_org_emftext_language_java_literals_CharacterLiteral + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_CharacterLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24338); + c25=parse_org_emftext_language_java_literals_CharacterLiteral(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c25; /* this is a subclass or primitive expression choice */ } + + } + break; + case 27 : + // Java.g:19929:4: c26= parse_org_emftext_language_java_literals_BooleanLiteral + { + pushFollow(FOLLOW_parse_org_emftext_language_java_literals_BooleanLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24348); + c26=parse_org_emftext_language_java_literals_BooleanLiteral(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c26; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 179, parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild" + + + + // $ANTLR start "parse_org_emftext_language_java_operators_UnaryModificationOperator" + // Java.g:19933:1: parse_org_emftext_language_java_operators_UnaryModificationOperator returns [org.emftext.language.java.operators.UnaryModificationOperator element = null] : (c0= parse_org_emftext_language_java_operators_PlusPlus |c1= parse_org_emftext_language_java_operators_MinusMinus ); + public final org.emftext.language.java.operators.UnaryModificationOperator parse_org_emftext_language_java_operators_UnaryModificationOperator() throws RecognitionException { + org.emftext.language.java.operators.UnaryModificationOperator element = null; + + int parse_org_emftext_language_java_operators_UnaryModificationOperator_StartIndex = input.index(); + + org.emftext.language.java.operators.PlusPlus c0 =null; + + org.emftext.language.java.operators.MinusMinus c1 =null; + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 180) ) { return element; } + + // Java.g:19934:2: (c0= parse_org_emftext_language_java_operators_PlusPlus |c1= parse_org_emftext_language_java_operators_MinusMinus ) + int alt238=2; + int LA238_0 = input.LA(1); + + if ( (LA238_0==31) ) { + alt238=1; + } + else if ( (LA238_0==35) ) { + alt238=2; + } + else { + if (state.backtracking>0) {state.failed=true; return element;} + NoViableAltException nvae = + new NoViableAltException("", 238, 0, input); + + throw nvae; + + } + switch (alt238) { + case 1 : + // Java.g:19935:2: c0= parse_org_emftext_language_java_operators_PlusPlus + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_PlusPlus_in_parse_org_emftext_language_java_operators_UnaryModificationOperator24369); + c0=parse_org_emftext_language_java_operators_PlusPlus(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c0; /* this is a subclass or primitive expression choice */ } + + } + break; + case 2 : + // Java.g:19936:4: c1= parse_org_emftext_language_java_operators_MinusMinus + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_MinusMinus_in_parse_org_emftext_language_java_operators_UnaryModificationOperator24379); + c1=parse_org_emftext_language_java_operators_MinusMinus(); + + state._fsp--; + if (state.failed) return element; + + if ( state.backtracking==0 ) { element = c1; /* this is a subclass or primitive expression choice */ } + + } + break; + + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + } + + finally { + // do for sure before leaving + if ( state.backtracking>0 ) { memoize(input, 180, parse_org_emftext_language_java_operators_UnaryModificationOperator_StartIndex); } + + } + return element; + } + // $ANTLR end "parse_org_emftext_language_java_operators_UnaryModificationOperator" + + // $ANTLR start synpred1_Java + public final void synpred1_Java_fragment() throws RecognitionException { + org.emftext.language.java.containers.CompilationUnit c0 =null; + + + // Java.g:956:3: (c0= parse_org_emftext_language_java_containers_CompilationUnit ) + // Java.g:956:3: c0= parse_org_emftext_language_java_containers_CompilationUnit + { + pushFollow(FOLLOW_parse_org_emftext_language_java_containers_CompilationUnit_in_synpred1_Java82); + c0=parse_org_emftext_language_java_containers_CompilationUnit(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred1_Java + + // $ANTLR start synpred2_Java + public final void synpred2_Java_fragment() throws RecognitionException { + org.emftext.language.java.containers.Package c1 =null; + + + // Java.g:957:8: (c1= parse_org_emftext_language_java_containers_Package ) + // Java.g:957:8: c1= parse_org_emftext_language_java_containers_Package + { + pushFollow(FOLLOW_parse_org_emftext_language_java_containers_Package_in_synpred2_Java96); + c1=parse_org_emftext_language_java_containers_Package(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred2_Java + + // $ANTLR start synpred7_Java + public final void synpred7_Java_fragment() throws RecognitionException { + Token a6=null; + + // Java.g:1211:3: ( (a6= ';' ) ) + // Java.g:1211:3: (a6= ';' ) + { + // Java.g:1211:3: (a6= ';' ) + // Java.g:1212:4: a6= ';' + { + a6=(Token)match(input,42,FOLLOW_42_in_synpred7_Java454); if (state.failed) return ; + + } + + + } + + } + // $ANTLR end synpred7_Java + + // $ANTLR start synpred47_Java + public final void synpred47_Java_fragment() throws RecognitionException { + org.emftext.language.java.arrays.ArrayInitializer a1_0 =null; + + + // Java.g:3999:3: (a1_0= parse_org_emftext_language_java_arrays_ArrayInitializer ) + // Java.g:3999:3: a1_0= parse_org_emftext_language_java_arrays_ArrayInitializer + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_synpred47_Java4154); + a1_0=parse_org_emftext_language_java_arrays_ArrayInitializer(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred47_Java + + // $ANTLR start synpred50_Java + public final void synpred50_Java_fragment() throws RecognitionException { + org.emftext.language.java.arrays.ArrayInitializer a2_0 =null; + + + // Java.g:4315:3: (a2_0= parse_org_emftext_language_java_arrays_ArrayInitializer ) + // Java.g:4315:3: a2_0= parse_org_emftext_language_java_arrays_ArrayInitializer + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_synpred50_Java4465); + a2_0=parse_org_emftext_language_java_arrays_ArrayInitializer(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred50_Java + + // $ANTLR start synpred77_Java + public final void synpred77_Java_fragment() throws RecognitionException { + Token a1=null; + Token a3=null; + Token a5=null; + Token a8=null; + Token a9=null; + Token a11=null; + Token a13=null; + Token a15=null; + Token a17=null; + Token a19=null; + org.emftext.language.java.modifiers.AnnotationInstanceOrModifier a0_0 =null; + + org.emftext.language.java.generics.TypeParameter a2_0 =null; + + org.emftext.language.java.generics.TypeParameter a4_0 =null; + + org.emftext.language.java.types.TypeReference a6_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a7_0 =null; + + org.emftext.language.java.parameters.Parameter a10_0 =null; + + org.emftext.language.java.parameters.Parameter a12_0 =null; + + org.emftext.language.java.arrays.ArrayDimension a14_0 =null; + + org.emftext.language.java.types.NamespaceClassifierReference a16_0 =null; + + org.emftext.language.java.types.NamespaceClassifierReference a18_0 =null; + + + // Java.g:5356:2: ( ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) (a8= IDENTIFIER ) a9= '(' ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a13= ')' ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a19= ';' ) + // Java.g:5356:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) (a8= IDENTIFIER ) a9= '(' ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? a13= ')' ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? a19= ';' + { + // Java.g:5356:2: ( (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) )* + loop259: + do { + int alt259=2; + int LA259_0 = input.LA(1); + + if ( (LA259_0==48||LA259_0==56||LA259_0==72||LA259_0==83||(LA259_0 >= 87 && LA259_0 <= 89)||(LA259_0 >= 92 && LA259_0 <= 93)||LA259_0==96||LA259_0==100||LA259_0==103) ) { + alt259=1; + } + + + switch (alt259) { + case 1 : + // Java.g:5357:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + { + // Java.g:5357:3: (a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier ) + // Java.g:5358:4: a0_0= parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier + { + pushFollow(FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_synpred77_Java6033); + a0_0=parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + break; + + default : + break loop259; + } + } while (true); + + + // Java.g:5386:2: ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) )? + int alt261=2; + int LA261_0 = input.LA(1); + + if ( (LA261_0==43) ) { + alt261=1; + } + switch (alt261) { + case 1 : + // Java.g:5387:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) + { + // Java.g:5387:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' ) + // Java.g:5388:4: a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* a5= '>' + { + a1=(Token)match(input,43,FOLLOW_43_in_synpred77_Java6068); if (state.failed) return ; + + // Java.g:5402:4: (a2_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:5403:5: a2_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_synpred77_Java6094); + a2_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return ; + + } + + + // Java.g:5428:4: ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) )* + loop260: + do { + int alt260=2; + int LA260_0 = input.LA(1); + + if ( (LA260_0==33) ) { + alt260=1; + } + + + switch (alt260) { + case 1 : + // Java.g:5429:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + { + // Java.g:5429:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) ) + // Java.g:5430:6: a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) + { + a3=(Token)match(input,33,FOLLOW_33_in_synpred77_Java6135); if (state.failed) return ; + + // Java.g:5444:6: (a4_0= parse_org_emftext_language_java_generics_TypeParameter ) + // Java.g:5445:7: a4_0= parse_org_emftext_language_java_generics_TypeParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_synpred77_Java6169); + a4_0=parse_org_emftext_language_java_generics_TypeParameter(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + break; + + default : + break loop260; + } + } while (true); + + + a5=(Token)match(input,46,FOLLOW_46_in_synpred77_Java6230); if (state.failed) return ; + + } + + + } + break; + + } + + + // Java.g:5498:2: ( (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* ) + // Java.g:5499:3: (a6_0= parse_org_emftext_language_java_types_TypeReference ) ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + { + // Java.g:5499:3: (a6_0= parse_org_emftext_language_java_types_TypeReference ) + // Java.g:5500:4: a6_0= parse_org_emftext_language_java_types_TypeReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_synpred77_Java6272); + a6_0=parse_org_emftext_language_java_types_TypeReference(); + + state._fsp--; + if (state.failed) return ; + + } + + + // Java.g:5526:3: ( (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop262: + do { + int alt262=2; + int LA262_0 = input.LA(1); + + if ( (LA262_0==49) ) { + alt262=1; + } + + + switch (alt262) { + case 1 : + // Java.g:5527:4: (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:5527:4: (a7_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:5528:5: a7_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_synpred77_Java6306); + a7_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + break; + + default : + break loop262; + } + } while (true); + + + } + + + // Java.g:5561:2: (a8= IDENTIFIER ) + // Java.g:5562:3: a8= IDENTIFIER + { + a8=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred77_Java6350); if (state.failed) return ; + + } + + + a9=(Token)match(input,26,FOLLOW_26_in_synpred77_Java6371); if (state.failed) return ; + + // Java.g:5612:2: ( ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) )? + int alt264=2; + int LA264_0 = input.LA(1); + + if ( (LA264_0==IDENTIFIER||LA264_0==48||LA264_0==56||LA264_0==58||LA264_0==60||LA264_0==63||LA264_0==68||LA264_0==72||LA264_0==74||LA264_0==80||(LA264_0 >= 82 && LA264_0 <= 83)||(LA264_0 >= 87 && LA264_0 <= 89)||(LA264_0 >= 91 && LA264_0 <= 93)||LA264_0==96||LA264_0==100||(LA264_0 >= 102 && LA264_0 <= 103)) ) { + alt264=1; + } + switch (alt264) { + case 1 : + // Java.g:5613:3: ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) + { + // Java.g:5613:3: ( (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* ) + // Java.g:5614:4: (a10_0= parse_org_emftext_language_java_parameters_Parameter ) ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* + { + // Java.g:5614:4: (a10_0= parse_org_emftext_language_java_parameters_Parameter ) + // Java.g:5615:5: a10_0= parse_org_emftext_language_java_parameters_Parameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_synpred77_Java6400); + a10_0=parse_org_emftext_language_java_parameters_Parameter(); + + state._fsp--; + if (state.failed) return ; + + } + + + // Java.g:5640:4: ( (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) )* + loop263: + do { + int alt263=2; + int LA263_0 = input.LA(1); + + if ( (LA263_0==33) ) { + alt263=1; + } + + + switch (alt263) { + case 1 : + // Java.g:5641:5: (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) + { + // Java.g:5641:5: (a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) ) + // Java.g:5642:6: a11= ',' (a12_0= parse_org_emftext_language_java_parameters_Parameter ) + { + a11=(Token)match(input,33,FOLLOW_33_in_synpred77_Java6441); if (state.failed) return ; + + // Java.g:5656:6: (a12_0= parse_org_emftext_language_java_parameters_Parameter ) + // Java.g:5657:7: a12_0= parse_org_emftext_language_java_parameters_Parameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_synpred77_Java6475); + a12_0=parse_org_emftext_language_java_parameters_Parameter(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + break; + + default : + break loop263; + } + } while (true); + + + } + + + } + break; + + } + + + a13=(Token)match(input,27,FOLLOW_27_in_synpred77_Java6549); if (state.failed) return ; + + // Java.g:5711:2: ( (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) )* + loop265: + do { + int alt265=2; + int LA265_0 = input.LA(1); + + if ( (LA265_0==49) ) { + alt265=1; + } + + + switch (alt265) { + case 1 : + // Java.g:5712:3: (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + { + // Java.g:5712:3: (a14_0= parse_org_emftext_language_java_arrays_ArrayDimension ) + // Java.g:5713:4: a14_0= parse_org_emftext_language_java_arrays_ArrayDimension + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_synpred77_Java6572); + a14_0=parse_org_emftext_language_java_arrays_ArrayDimension(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + break; + + default : + break loop265; + } + } while (true); + + + // Java.g:5740:2: ( (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) )? + int alt267=2; + int LA267_0 = input.LA(1); + + if ( (LA267_0==99) ) { + alt267=1; + } + switch (alt267) { + case 1 : + // Java.g:5741:3: (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) + { + // Java.g:5741:3: (a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* ) + // Java.g:5742:4: a15= 'throws' (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* + { + a15=(Token)match(input,99,FOLLOW_99_in_synpred77_Java6607); if (state.failed) return ; + + // Java.g:5756:4: (a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + // Java.g:5757:5: a16_0= parse_org_emftext_language_java_types_NamespaceClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_synpred77_Java6633); + a16_0=parse_org_emftext_language_java_types_NamespaceClassifierReference(); + + state._fsp--; + if (state.failed) return ; + + } + + + // Java.g:5782:4: ( (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) )* + loop266: + do { + int alt266=2; + int LA266_0 = input.LA(1); + + if ( (LA266_0==33) ) { + alt266=1; + } + + + switch (alt266) { + case 1 : + // Java.g:5783:5: (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) + { + // Java.g:5783:5: (a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) ) + // Java.g:5784:6: a17= ',' (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + { + a17=(Token)match(input,33,FOLLOW_33_in_synpred77_Java6674); if (state.failed) return ; + + // Java.g:5798:6: (a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + // Java.g:5799:7: a18_0= parse_org_emftext_language_java_types_NamespaceClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_synpred77_Java6708); + a18_0=parse_org_emftext_language_java_types_NamespaceClassifierReference(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + break; + + default : + break loop266; + } + } while (true); + + + } + + + } + break; + + } + + + a19=(Token)match(input,42,FOLLOW_42_in_synpred77_Java6782); if (state.failed) return ; + + } + + } + // $ANTLR end synpred77_Java + + // $ANTLR start synpred145_Java + public final void synpred145_Java_fragment() throws RecognitionException { + org.emftext.language.java.expressions.AssignmentExpression a1_0 =null; + + + // Java.g:10121:5: (a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:10121:5: a1_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_synpred145_Java12594); + a1_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred145_Java + + // $ANTLR start synpred146_Java + public final void synpred146_Java_fragment() throws RecognitionException { + org.emftext.language.java.expressions.AssignmentExpression a3_0 =null; + + + // Java.g:10182:7: (a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression ) + // Java.g:10182:7: a3_0= parse_org_emftext_language_java_expressions_AssignmentExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_synpred146_Java12689); + a3_0=parse_org_emftext_language_java_expressions_AssignmentExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred146_Java + + // $ANTLR start synpred151_Java + public final void synpred151_Java_fragment() throws RecognitionException { + Token a0=null; + Token a1=null; + + // Java.g:10376:3: ( ( (a0= IDENTIFIER ) a1= '.' ) ) + // Java.g:10376:3: ( (a0= IDENTIFIER ) a1= '.' ) + { + // Java.g:10376:3: ( (a0= IDENTIFIER ) a1= '.' ) + // Java.g:10377:4: (a0= IDENTIFIER ) a1= '.' + { + // Java.g:10377:4: (a0= IDENTIFIER ) + // Java.g:10378:5: a0= IDENTIFIER + { + a0=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_synpred151_Java12953); if (state.failed) return ; + + } + + + a1=(Token)match(input,37,FOLLOW_37_in_synpred151_Java12986); if (state.failed) return ; + + } + + + } + + } + // $ANTLR end synpred151_Java + + // $ANTLR start synpred152_Java + public final void synpred152_Java_fragment() throws RecognitionException { + Token a3=null; + org.emftext.language.java.types.ClassifierReference a2_0 =null; + + + // Java.g:10437:3: ( ( (a2_0= parse_org_emftext_language_java_types_ClassifierReference ) a3= '.' ) ) + // Java.g:10437:3: ( (a2_0= parse_org_emftext_language_java_types_ClassifierReference ) a3= '.' ) + { + // Java.g:10437:3: ( (a2_0= parse_org_emftext_language_java_types_ClassifierReference ) a3= '.' ) + // Java.g:10438:4: (a2_0= parse_org_emftext_language_java_types_ClassifierReference ) a3= '.' + { + // Java.g:10438:4: (a2_0= parse_org_emftext_language_java_types_ClassifierReference ) + // Java.g:10439:5: a2_0= parse_org_emftext_language_java_types_ClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_ClassifierReference_in_synpred152_Java13034); + a2_0=parse_org_emftext_language_java_types_ClassifierReference(); + + state._fsp--; + if (state.failed) return ; + + } + + + a3=(Token)match(input,37,FOLLOW_37_in_synpred152_Java13062); if (state.failed) return ; + + } + + + } + + } + // $ANTLR end synpred152_Java + + // $ANTLR start synpred154_Java + public final void synpred154_Java_fragment() throws RecognitionException { + Token a1=null; + Token a3=null; + Token a5=null; + org.emftext.language.java.generics.TypeArgument a2_0 =null; + + org.emftext.language.java.generics.TypeArgument a4_0 =null; + + + // Java.g:10603:3: ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) ) + // Java.g:10603:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) + { + // Java.g:10603:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) + // Java.g:10604:4: a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' + { + a1=(Token)match(input,43,FOLLOW_43_in_synpred154_Java13166); if (state.failed) return ; + + // Java.g:10618:4: (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:10619:5: a2_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_synpred154_Java13192); + a2_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return ; + + } + + + // Java.g:10644:4: ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* + loop287: + do { + int alt287=2; + int LA287_0 = input.LA(1); + + if ( (LA287_0==33) ) { + alt287=1; + } + + + switch (alt287) { + case 1 : + // Java.g:10645:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + { + // Java.g:10645:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + // Java.g:10646:6: a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + { + a3=(Token)match(input,33,FOLLOW_33_in_synpred154_Java13233); if (state.failed) return ; + + // Java.g:10660:6: (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:10661:7: a4_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_synpred154_Java13267); + a4_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + break; + + default : + break loop287; + } + } while (true); + + + a5=(Token)match(input,46,FOLLOW_46_in_synpred154_Java13328); if (state.failed) return ; + + } + + + } + + } + // $ANTLR end synpred154_Java + + // $ANTLR start synpred164_Java + public final void synpred164_Java_fragment() throws RecognitionException { + Token a1=null; + Token a3=null; + Token a5=null; + org.emftext.language.java.generics.TypeArgument a2_0 =null; + + org.emftext.language.java.generics.TypeArgument a4_0 =null; + + + // Java.g:11327:3: ( (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) ) + // Java.g:11327:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) + { + // Java.g:11327:3: (a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' ) + // Java.g:11328:4: a1= '<' (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* a5= '>' + { + a1=(Token)match(input,43,FOLLOW_43_in_synpred164_Java14161); if (state.failed) return ; + + // Java.g:11342:4: (a2_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:11343:5: a2_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_synpred164_Java14187); + a2_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return ; + + } + + + // Java.g:11368:4: ( (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) )* + loop291: + do { + int alt291=2; + int LA291_0 = input.LA(1); + + if ( (LA291_0==33) ) { + alt291=1; + } + + + switch (alt291) { + case 1 : + // Java.g:11369:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + { + // Java.g:11369:5: (a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) ) + // Java.g:11370:6: a3= ',' (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + { + a3=(Token)match(input,33,FOLLOW_33_in_synpred164_Java14228); if (state.failed) return ; + + // Java.g:11384:6: (a4_0= parse_org_emftext_language_java_generics_TypeArgument ) + // Java.g:11385:7: a4_0= parse_org_emftext_language_java_generics_TypeArgument + { + pushFollow(FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_synpred164_Java14262); + a4_0=parse_org_emftext_language_java_generics_TypeArgument(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + break; + + default : + break loop291; + } + } while (true); + + + a5=(Token)match(input,46,FOLLOW_46_in_synpred164_Java14323); if (state.failed) return ; + + } + + + } + + } + // $ANTLR end synpred164_Java + + // $ANTLR start synpred177_Java + public final void synpred177_Java_fragment() throws RecognitionException { + Token a5=null; + org.emftext.language.java.statements.Statement a6_0 =null; + + + // Java.g:12708:3: ( (a5= 'else' (a6_0= parse_org_emftext_language_java_statements_Statement ) ) ) + // Java.g:12708:3: (a5= 'else' (a6_0= parse_org_emftext_language_java_statements_Statement ) ) + { + // Java.g:12708:3: (a5= 'else' (a6_0= parse_org_emftext_language_java_statements_Statement ) ) + // Java.g:12709:4: a5= 'else' (a6_0= parse_org_emftext_language_java_statements_Statement ) + { + a5=(Token)match(input,69,FOLLOW_69_in_synpred177_Java15635); if (state.failed) return ; + + // Java.g:12723:4: (a6_0= parse_org_emftext_language_java_statements_Statement ) + // Java.g:12724:5: a6_0= parse_org_emftext_language_java_statements_Statement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Statement_in_synpred177_Java15661); + a6_0=parse_org_emftext_language_java_statements_Statement(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + + } + // $ANTLR end synpred177_Java + + // $ANTLR start synpred206_Java + public final void synpred206_Java_fragment() throws RecognitionException { + org.emftext.language.java.operators.ShiftOperator a1_0 =null; + + org.emftext.language.java.expressions.AdditiveExpression a2_0 =null; + + + // Java.g:16114:3: ( ( (a1_0= parse_org_emftext_language_java_operators_ShiftOperator ) (a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) ) ) + // Java.g:16114:3: ( (a1_0= parse_org_emftext_language_java_operators_ShiftOperator ) (a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) ) + { + // Java.g:16114:3: ( (a1_0= parse_org_emftext_language_java_operators_ShiftOperator ) (a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) ) + // Java.g:16115:4: (a1_0= parse_org_emftext_language_java_operators_ShiftOperator ) (a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) + { + // Java.g:16115:4: (a1_0= parse_org_emftext_language_java_operators_ShiftOperator ) + // Java.g:16116:5: a1_0= parse_org_emftext_language_java_operators_ShiftOperator + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_ShiftOperator_in_synpred206_Java19308); + a1_0=parse_org_emftext_language_java_operators_ShiftOperator(); + + state._fsp--; + if (state.failed) return ; + + } + + + // Java.g:16141:4: (a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression ) + // Java.g:16142:5: a2_0= parse_org_emftext_language_java_expressions_AdditiveExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_AdditiveExpression_in_synpred206_Java19342); + a2_0=parse_org_emftext_language_java_expressions_AdditiveExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + + } + // $ANTLR end synpred206_Java + + // $ANTLR start synpred210_Java + public final void synpred210_Java_fragment() throws RecognitionException { + org.emftext.language.java.operators.UnaryModificationOperator a1_0 =null; + + + // Java.g:16549:3: ( ( (a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) ) + // Java.g:16549:3: ( (a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) + { + // Java.g:16549:3: ( (a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) ) + // Java.g:16550:4: (a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) + { + // Java.g:16550:4: (a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator ) + // Java.g:16551:5: a1_0= parse_org_emftext_language_java_operators_UnaryModificationOperator + { + pushFollow(FOLLOW_parse_org_emftext_language_java_operators_UnaryModificationOperator_in_synpred210_Java19761); + a1_0=parse_org_emftext_language_java_operators_UnaryModificationOperator(); + + state._fsp--; + if (state.failed) return ; + + } + + + } + + + } + + } + // $ANTLR end synpred210_Java + + // $ANTLR start synpred218_Java + public final void synpred218_Java_fragment() throws RecognitionException { + org.emftext.language.java.classifiers.Class c0 =null; + + + // Java.g:19654:2: (c0= parse_org_emftext_language_java_classifiers_Class ) + // Java.g:19654:2: c0= parse_org_emftext_language_java_classifiers_Class + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Class_in_synpred218_Java22456); + c0=parse_org_emftext_language_java_classifiers_Class(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred218_Java + + // $ANTLR start synpred219_Java + public final void synpred219_Java_fragment() throws RecognitionException { + org.emftext.language.java.classifiers.Interface c1 =null; + + + // Java.g:19655:4: (c1= parse_org_emftext_language_java_classifiers_Interface ) + // Java.g:19655:4: c1= parse_org_emftext_language_java_classifiers_Interface + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Interface_in_synpred219_Java22466); + c1=parse_org_emftext_language_java_classifiers_Interface(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred219_Java + + // $ANTLR start synpred220_Java + public final void synpred220_Java_fragment() throws RecognitionException { + org.emftext.language.java.classifiers.Enumeration c2 =null; + + + // Java.g:19656:4: (c2= parse_org_emftext_language_java_classifiers_Enumeration ) + // Java.g:19656:4: c2= parse_org_emftext_language_java_classifiers_Enumeration + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Enumeration_in_synpred220_Java22476); + c2=parse_org_emftext_language_java_classifiers_Enumeration(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred220_Java + + // $ANTLR start synpred232_Java + public final void synpred232_Java_fragment() throws RecognitionException { + org.emftext.language.java.types.NamespaceClassifierReference c0 =null; + + + // Java.g:19680:2: (c0= parse_org_emftext_language_java_types_NamespaceClassifierReference ) + // Java.g:19680:2: c0= parse_org_emftext_language_java_types_NamespaceClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_synpred232_Java22638); + c0=parse_org_emftext_language_java_types_NamespaceClassifierReference(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred232_Java + + // $ANTLR start synpred233_Java + public final void synpred233_Java_fragment() throws RecognitionException { + org.emftext.language.java.types.ClassifierReference c1 =null; + + + // Java.g:19681:4: (c1= parse_org_emftext_language_java_types_ClassifierReference ) + // Java.g:19681:4: c1= parse_org_emftext_language_java_types_ClassifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_types_ClassifierReference_in_synpred233_Java22648); + c1=parse_org_emftext_language_java_types_ClassifierReference(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred233_Java + + // $ANTLR start synpred242_Java + public final void synpred242_Java_fragment() throws RecognitionException { + org.emftext.language.java.classifiers.Class c0 =null; + + + // Java.g:19696:2: (c0= parse_org_emftext_language_java_classifiers_Class ) + // Java.g:19696:2: c0= parse_org_emftext_language_java_classifiers_Class + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Class_in_synpred242_Java22759); + c0=parse_org_emftext_language_java_classifiers_Class(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred242_Java + + // $ANTLR start synpred243_Java + public final void synpred243_Java_fragment() throws RecognitionException { + org.emftext.language.java.classifiers.Interface c1 =null; + + + // Java.g:19697:4: (c1= parse_org_emftext_language_java_classifiers_Interface ) + // Java.g:19697:4: c1= parse_org_emftext_language_java_classifiers_Interface + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Interface_in_synpred243_Java22769); + c1=parse_org_emftext_language_java_classifiers_Interface(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred243_Java + + // $ANTLR start synpred244_Java + public final void synpred244_Java_fragment() throws RecognitionException { + org.emftext.language.java.classifiers.Enumeration c2 =null; + + + // Java.g:19698:4: (c2= parse_org_emftext_language_java_classifiers_Enumeration ) + // Java.g:19698:4: c2= parse_org_emftext_language_java_classifiers_Enumeration + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Enumeration_in_synpred244_Java22779); + c2=parse_org_emftext_language_java_classifiers_Enumeration(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred244_Java + + // $ANTLR start synpred245_Java + public final void synpred245_Java_fragment() throws RecognitionException { + org.emftext.language.java.classifiers.Annotation c3 =null; + + + // Java.g:19699:4: (c3= parse_org_emftext_language_java_classifiers_Annotation ) + // Java.g:19699:4: c3= parse_org_emftext_language_java_classifiers_Annotation + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Annotation_in_synpred245_Java22789); + c3=parse_org_emftext_language_java_classifiers_Annotation(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred245_Java + + // $ANTLR start synpred246_Java + public final void synpred246_Java_fragment() throws RecognitionException { + org.emftext.language.java.statements.Block c4 =null; + + + // Java.g:19700:4: (c4= parse_org_emftext_language_java_statements_Block ) + // Java.g:19700:4: c4= parse_org_emftext_language_java_statements_Block + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Block_in_synpred246_Java22799); + c4=parse_org_emftext_language_java_statements_Block(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred246_Java + + // $ANTLR start synpred247_Java + public final void synpred247_Java_fragment() throws RecognitionException { + org.emftext.language.java.members.Constructor c5 =null; + + + // Java.g:19701:4: (c5= parse_org_emftext_language_java_members_Constructor ) + // Java.g:19701:4: c5= parse_org_emftext_language_java_members_Constructor + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_Constructor_in_synpred247_Java22809); + c5=parse_org_emftext_language_java_members_Constructor(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred247_Java + + // $ANTLR start synpred248_Java + public final void synpred248_Java_fragment() throws RecognitionException { + org.emftext.language.java.members.InterfaceMethod c6 =null; + + + // Java.g:19702:4: (c6= parse_org_emftext_language_java_members_InterfaceMethod ) + // Java.g:19702:4: c6= parse_org_emftext_language_java_members_InterfaceMethod + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_InterfaceMethod_in_synpred248_Java22819); + c6=parse_org_emftext_language_java_members_InterfaceMethod(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred248_Java + + // $ANTLR start synpred249_Java + public final void synpred249_Java_fragment() throws RecognitionException { + org.emftext.language.java.members.ClassMethod c7 =null; + + + // Java.g:19703:4: (c7= parse_org_emftext_language_java_members_ClassMethod ) + // Java.g:19703:4: c7= parse_org_emftext_language_java_members_ClassMethod + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_ClassMethod_in_synpred249_Java22829); + c7=parse_org_emftext_language_java_members_ClassMethod(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred249_Java + + // $ANTLR start synpred250_Java + public final void synpred250_Java_fragment() throws RecognitionException { + org.emftext.language.java.annotations.AnnotationAttribute c8 =null; + + + // Java.g:19704:4: (c8= parse_org_emftext_language_java_annotations_AnnotationAttribute ) + // Java.g:19704:4: c8= parse_org_emftext_language_java_annotations_AnnotationAttribute + { + pushFollow(FOLLOW_parse_org_emftext_language_java_annotations_AnnotationAttribute_in_synpred250_Java22839); + c8=parse_org_emftext_language_java_annotations_AnnotationAttribute(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred250_Java + + // $ANTLR start synpred251_Java + public final void synpred251_Java_fragment() throws RecognitionException { + org.emftext.language.java.members.Field c9 =null; + + + // Java.g:19705:4: (c9= parse_org_emftext_language_java_members_Field ) + // Java.g:19705:4: c9= parse_org_emftext_language_java_members_Field + { + pushFollow(FOLLOW_parse_org_emftext_language_java_members_Field_in_synpred251_Java22849); + c9=parse_org_emftext_language_java_members_Field(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred251_Java + + // $ANTLR start synpred263_Java + public final void synpred263_Java_fragment() throws RecognitionException { + org.emftext.language.java.classifiers.Class c0 =null; + + + // Java.g:19735:2: (c0= parse_org_emftext_language_java_classifiers_Class ) + // Java.g:19735:2: c0= parse_org_emftext_language_java_classifiers_Class + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Class_in_synpred263_Java23032); + c0=parse_org_emftext_language_java_classifiers_Class(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred263_Java + + // $ANTLR start synpred264_Java + public final void synpred264_Java_fragment() throws RecognitionException { + org.emftext.language.java.classifiers.Interface c1 =null; + + + // Java.g:19736:4: (c1= parse_org_emftext_language_java_classifiers_Interface ) + // Java.g:19736:4: c1= parse_org_emftext_language_java_classifiers_Interface + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Interface_in_synpred264_Java23042); + c1=parse_org_emftext_language_java_classifiers_Interface(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred264_Java + + // $ANTLR start synpred265_Java + public final void synpred265_Java_fragment() throws RecognitionException { + org.emftext.language.java.classifiers.Enumeration c2 =null; + + + // Java.g:19737:4: (c2= parse_org_emftext_language_java_classifiers_Enumeration ) + // Java.g:19737:4: c2= parse_org_emftext_language_java_classifiers_Enumeration + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Enumeration_in_synpred265_Java23052); + c2=parse_org_emftext_language_java_classifiers_Enumeration(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred265_Java + + // $ANTLR start synpred266_Java + public final void synpred266_Java_fragment() throws RecognitionException { + org.emftext.language.java.classifiers.Annotation c3 =null; + + + // Java.g:19738:4: (c3= parse_org_emftext_language_java_classifiers_Annotation ) + // Java.g:19738:4: c3= parse_org_emftext_language_java_classifiers_Annotation + { + pushFollow(FOLLOW_parse_org_emftext_language_java_classifiers_Annotation_in_synpred266_Java23062); + c3=parse_org_emftext_language_java_classifiers_Annotation(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred266_Java + + // $ANTLR start synpred267_Java + public final void synpred267_Java_fragment() throws RecognitionException { + org.emftext.language.java.statements.Block c4 =null; + + + // Java.g:19739:4: (c4= parse_org_emftext_language_java_statements_Block ) + // Java.g:19739:4: c4= parse_org_emftext_language_java_statements_Block + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_Block_in_synpred267_Java23072); + c4=parse_org_emftext_language_java_statements_Block(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred267_Java + + // $ANTLR start synpred268_Java + public final void synpred268_Java_fragment() throws RecognitionException { + org.emftext.language.java.statements.LocalVariableStatement c5 =null; + + + // Java.g:19740:4: (c5= parse_org_emftext_language_java_statements_LocalVariableStatement ) + // Java.g:19740:4: c5= parse_org_emftext_language_java_statements_LocalVariableStatement + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_LocalVariableStatement_in_synpred268_Java23082); + c5=parse_org_emftext_language_java_statements_LocalVariableStatement(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred268_Java + + // $ANTLR start synpred271_Java + public final void synpred271_Java_fragment() throws RecognitionException { + org.emftext.language.java.statements.ForLoop c8 =null; + + + // Java.g:19743:4: (c8= parse_org_emftext_language_java_statements_ForLoop ) + // Java.g:19743:4: c8= parse_org_emftext_language_java_statements_ForLoop + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_ForLoop_in_synpred271_Java23112); + c8=parse_org_emftext_language_java_statements_ForLoop(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred271_Java + + // $ANTLR start synpred272_Java + public final void synpred272_Java_fragment() throws RecognitionException { + org.emftext.language.java.statements.ForEachLoop c9 =null; + + + // Java.g:19744:4: (c9= parse_org_emftext_language_java_statements_ForEachLoop ) + // Java.g:19744:4: c9= parse_org_emftext_language_java_statements_ForEachLoop + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_ForEachLoop_in_synpred272_Java23122); + c9=parse_org_emftext_language_java_statements_ForEachLoop(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred272_Java + + // $ANTLR start synpred273_Java + public final void synpred273_Java_fragment() throws RecognitionException { + org.emftext.language.java.statements.WhileLoop c10 =null; + + + // Java.g:19745:4: (c10= parse_org_emftext_language_java_statements_WhileLoop ) + // Java.g:19745:4: c10= parse_org_emftext_language_java_statements_WhileLoop + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_WhileLoop_in_synpred273_Java23132); + c10=parse_org_emftext_language_java_statements_WhileLoop(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred273_Java + + // $ANTLR start synpred274_Java + public final void synpred274_Java_fragment() throws RecognitionException { + org.emftext.language.java.statements.DoWhileLoop c11 =null; + + + // Java.g:19746:4: (c11= parse_org_emftext_language_java_statements_DoWhileLoop ) + // Java.g:19746:4: c11= parse_org_emftext_language_java_statements_DoWhileLoop + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_DoWhileLoop_in_synpred274_Java23142); + c11=parse_org_emftext_language_java_statements_DoWhileLoop(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred274_Java + + // $ANTLR start synpred276_Java + public final void synpred276_Java_fragment() throws RecognitionException { + org.emftext.language.java.statements.SynchronizedBlock c13 =null; + + + // Java.g:19748:4: (c13= parse_org_emftext_language_java_statements_SynchronizedBlock ) + // Java.g:19748:4: c13= parse_org_emftext_language_java_statements_SynchronizedBlock + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_SynchronizedBlock_in_synpred276_Java23162); + c13=parse_org_emftext_language_java_statements_SynchronizedBlock(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred276_Java + + // $ANTLR start synpred283_Java + public final void synpred283_Java_fragment() throws RecognitionException { + org.emftext.language.java.statements.JumpLabel c20 =null; + + + // Java.g:19755:4: (c20= parse_org_emftext_language_java_statements_JumpLabel ) + // Java.g:19755:4: c20= parse_org_emftext_language_java_statements_JumpLabel + { + pushFollow(FOLLOW_parse_org_emftext_language_java_statements_JumpLabel_in_synpred283_Java23232); + c20=parse_org_emftext_language_java_statements_JumpLabel(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred283_Java + + // $ANTLR start synpred284_Java + public final void synpred284_Java_fragment() throws RecognitionException { + org.emftext.language.java.parameters.OrdinaryParameter c0 =null; + + + // Java.g:19762:2: (c0= parse_org_emftext_language_java_parameters_OrdinaryParameter ) + // Java.g:19762:2: c0= parse_org_emftext_language_java_parameters_OrdinaryParameter + { + pushFollow(FOLLOW_parse_org_emftext_language_java_parameters_OrdinaryParameter_in_synpred284_Java23263); + c0=parse_org_emftext_language_java_parameters_OrdinaryParameter(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred284_Java + + // $ANTLR start synpred289_Java + public final void synpred289_Java_fragment() throws RecognitionException { + org.emftext.language.java.instantiations.NewConstructorCall c1 =null; + + + // Java.g:19779:4: (c1= parse_org_emftext_language_java_instantiations_NewConstructorCall ) + // Java.g:19779:4: c1= parse_org_emftext_language_java_instantiations_NewConstructorCall + { + pushFollow(FOLLOW_parse_org_emftext_language_java_instantiations_NewConstructorCall_in_synpred289_Java23355); + c1=parse_org_emftext_language_java_instantiations_NewConstructorCall(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred289_Java + + // $ANTLR start synpred290_Java + public final void synpred290_Java_fragment() throws RecognitionException { + org.emftext.language.java.instantiations.ExplicitConstructorCall c2 =null; + + + // Java.g:19780:4: (c2= parse_org_emftext_language_java_instantiations_ExplicitConstructorCall ) + // Java.g:19780:4: c2= parse_org_emftext_language_java_instantiations_ExplicitConstructorCall + { + pushFollow(FOLLOW_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall_in_synpred290_Java23365); + c2=parse_org_emftext_language_java_instantiations_ExplicitConstructorCall(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred290_Java + + // $ANTLR start synpred291_Java + public final void synpred291_Java_fragment() throws RecognitionException { + org.emftext.language.java.arrays.ArrayInstantiationByValuesTyped c3 =null; + + + // Java.g:19781:4: (c3= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped ) + // Java.g:19781:4: c3= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped_in_synpred291_Java23375); + c3=parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred291_Java + + // $ANTLR start synpred293_Java + public final void synpred293_Java_fragment() throws RecognitionException { + org.emftext.language.java.arrays.ArrayInstantiationBySize c5 =null; + + + // Java.g:19783:4: (c5= parse_org_emftext_language_java_arrays_ArrayInstantiationBySize ) + // Java.g:19783:4: c5= parse_org_emftext_language_java_arrays_ArrayInstantiationBySize + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize_in_synpred293_Java23395); + c5=parse_org_emftext_language_java_arrays_ArrayInstantiationBySize(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred293_Java + + // $ANTLR start synpred294_Java + public final void synpred294_Java_fragment() throws RecognitionException { + org.emftext.language.java.references.MethodCall c6 =null; + + + // Java.g:19784:4: (c6= parse_org_emftext_language_java_references_MethodCall ) + // Java.g:19784:4: c6= parse_org_emftext_language_java_references_MethodCall + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_MethodCall_in_synpred294_Java23405); + c6=parse_org_emftext_language_java_references_MethodCall(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred294_Java + + // $ANTLR start synpred295_Java + public final void synpred295_Java_fragment() throws RecognitionException { + org.emftext.language.java.references.IdentifierReference c7 =null; + + + // Java.g:19785:4: (c7= parse_org_emftext_language_java_references_IdentifierReference ) + // Java.g:19785:4: c7= parse_org_emftext_language_java_references_IdentifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_IdentifierReference_in_synpred295_Java23415); + c7=parse_org_emftext_language_java_references_IdentifierReference(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred295_Java + + // $ANTLR start synpred297_Java + public final void synpred297_Java_fragment() throws RecognitionException { + org.emftext.language.java.references.SelfReference c9 =null; + + + // Java.g:19787:4: (c9= parse_org_emftext_language_java_references_SelfReference ) + // Java.g:19787:4: c9= parse_org_emftext_language_java_references_SelfReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_SelfReference_in_synpred297_Java23435); + c9=parse_org_emftext_language_java_references_SelfReference(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred297_Java + + // $ANTLR start synpred309_Java + public final void synpred309_Java_fragment() throws RecognitionException { + org.emftext.language.java.variables.LocalVariable c0 =null; + + + // Java.g:19817:2: (c0= parse_org_emftext_language_java_variables_LocalVariable ) + // Java.g:19817:2: c0= parse_org_emftext_language_java_variables_LocalVariable + { + pushFollow(FOLLOW_parse_org_emftext_language_java_variables_LocalVariable_in_synpred309_Java23618); + c0=parse_org_emftext_language_java_variables_LocalVariable(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred309_Java + + // $ANTLR start synpred334_Java + public final void synpred334_Java_fragment() throws RecognitionException { + org.emftext.language.java.expressions.SuffixUnaryModificationExpression c0 =null; + + + // Java.g:19896:2: (c0= parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression ) + // Java.g:19896:2: c0= parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression_in_synpred334_Java24057); + c0=parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred334_Java + + // $ANTLR start synpred336_Java + public final void synpred336_Java_fragment() throws RecognitionException { + org.emftext.language.java.instantiations.NewConstructorCall c1 =null; + + + // Java.g:19904:4: (c1= parse_org_emftext_language_java_instantiations_NewConstructorCall ) + // Java.g:19904:4: c1= parse_org_emftext_language_java_instantiations_NewConstructorCall + { + pushFollow(FOLLOW_parse_org_emftext_language_java_instantiations_NewConstructorCall_in_synpred336_Java24098); + c1=parse_org_emftext_language_java_instantiations_NewConstructorCall(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred336_Java + + // $ANTLR start synpred337_Java + public final void synpred337_Java_fragment() throws RecognitionException { + org.emftext.language.java.instantiations.ExplicitConstructorCall c2 =null; + + + // Java.g:19905:4: (c2= parse_org_emftext_language_java_instantiations_ExplicitConstructorCall ) + // Java.g:19905:4: c2= parse_org_emftext_language_java_instantiations_ExplicitConstructorCall + { + pushFollow(FOLLOW_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall_in_synpred337_Java24108); + c2=parse_org_emftext_language_java_instantiations_ExplicitConstructorCall(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred337_Java + + // $ANTLR start synpred338_Java + public final void synpred338_Java_fragment() throws RecognitionException { + org.emftext.language.java.arrays.ArrayInstantiationByValuesTyped c3 =null; + + + // Java.g:19906:4: (c3= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped ) + // Java.g:19906:4: c3= parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped_in_synpred338_Java24118); + c3=parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred338_Java + + // $ANTLR start synpred340_Java + public final void synpred340_Java_fragment() throws RecognitionException { + org.emftext.language.java.arrays.ArrayInstantiationBySize c5 =null; + + + // Java.g:19908:4: (c5= parse_org_emftext_language_java_arrays_ArrayInstantiationBySize ) + // Java.g:19908:4: c5= parse_org_emftext_language_java_arrays_ArrayInstantiationBySize + { + pushFollow(FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize_in_synpred340_Java24138); + c5=parse_org_emftext_language_java_arrays_ArrayInstantiationBySize(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred340_Java + + // $ANTLR start synpred341_Java + public final void synpred341_Java_fragment() throws RecognitionException { + org.emftext.language.java.references.MethodCall c6 =null; + + + // Java.g:19909:4: (c6= parse_org_emftext_language_java_references_MethodCall ) + // Java.g:19909:4: c6= parse_org_emftext_language_java_references_MethodCall + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_MethodCall_in_synpred341_Java24148); + c6=parse_org_emftext_language_java_references_MethodCall(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred341_Java + + // $ANTLR start synpred342_Java + public final void synpred342_Java_fragment() throws RecognitionException { + org.emftext.language.java.references.IdentifierReference c7 =null; + + + // Java.g:19910:4: (c7= parse_org_emftext_language_java_references_IdentifierReference ) + // Java.g:19910:4: c7= parse_org_emftext_language_java_references_IdentifierReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_IdentifierReference_in_synpred342_Java24158); + c7=parse_org_emftext_language_java_references_IdentifierReference(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred342_Java + + // $ANTLR start synpred344_Java + public final void synpred344_Java_fragment() throws RecognitionException { + org.emftext.language.java.references.SelfReference c9 =null; + + + // Java.g:19912:4: (c9= parse_org_emftext_language_java_references_SelfReference ) + // Java.g:19912:4: c9= parse_org_emftext_language_java_references_SelfReference + { + pushFollow(FOLLOW_parse_org_emftext_language_java_references_SelfReference_in_synpred344_Java24178); + c9=parse_org_emftext_language_java_references_SelfReference(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred344_Java + + // $ANTLR start synpred347_Java + public final void synpred347_Java_fragment() throws RecognitionException { + org.emftext.language.java.expressions.CastExpression c12 =null; + + + // Java.g:19915:4: (c12= parse_org_emftext_language_java_expressions_CastExpression ) + // Java.g:19915:4: c12= parse_org_emftext_language_java_expressions_CastExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_CastExpression_in_synpred347_Java24208); + c12=parse_org_emftext_language_java_expressions_CastExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred347_Java + + // $ANTLR start synpred348_Java + public final void synpred348_Java_fragment() throws RecognitionException { + org.emftext.language.java.expressions.NestedExpression c13 =null; + + + // Java.g:19916:4: (c13= parse_org_emftext_language_java_expressions_NestedExpression ) + // Java.g:19916:4: c13= parse_org_emftext_language_java_expressions_NestedExpression + { + pushFollow(FOLLOW_parse_org_emftext_language_java_expressions_NestedExpression_in_synpred348_Java24218); + c13=parse_org_emftext_language_java_expressions_NestedExpression(); + + state._fsp--; + if (state.failed) return ; + + } + + } + // $ANTLR end synpred348_Java + + // Delegated rules + + public final boolean synpred164_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred164_Java_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_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred264_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred272_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred272_Java_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_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred341_Java_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 synpred233_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred233_Java_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 synpred210_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred210_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred309_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred309_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred294_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred294_Java_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 synpred247_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred247_Java_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_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred290_Java_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 synpred347_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred347_Java_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 synpred263_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred263_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred271_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred271_Java_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 synpred146_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred146_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred218_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred218_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred340_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred340_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred293_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred293_Java_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 synpred151_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred151_Java_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 synpred154_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred154_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred338_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred338_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred291_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred291_Java_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 synpred245_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred245_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred220_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred220_Java_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 synpred248_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred248_Java_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 synpred242_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred242_Java_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 synpred250_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred250_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred336_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred336_Java_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 synpred7_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred7_Java_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_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred289_Java_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_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred344_Java_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 synpred1_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred1_Java_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 synpred267_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred267_Java_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_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred283_Java_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 synpred50_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred50_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred219_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred219_Java_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 synpred152_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred152_Java_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 synpred244_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred244_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred297_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred297_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred274_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred274_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred266_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred266_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred243_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred243_Java_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 synpred249_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred249_Java_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 synpred177_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred177_Java_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 synpred232_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred232_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred265_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred265_Java_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 synpred251_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred251_Java_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 synpred47_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred47_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred246_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred246_Java_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 synpred2_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred2_Java_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 synpred348_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred348_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred273_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred273_Java_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 synpred206_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred206_Java_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_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred276_Java_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 synpred77_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred77_Java_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_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred284_Java_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 synpred268_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred268_Java_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 synpred145_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred145_Java_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_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred337_Java_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_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred334_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred295_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred295_Java_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred342_Java() { + state.backtracking++; + int start = input.mark(); + try { + synpred342_Java_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 DFA214 dfa214 = new DFA214(this); + protected DFA221 dfa221 = new DFA221(this); + static final String DFA214_eotS = + "\13\uffff"; + static final String DFA214_eofS = + "\13\uffff"; + static final String DFA214_minS = + "\1\116\1\16\1\45\2\16\1\uffff\1\45\1\uffff\1\16\2\uffff"; + static final String DFA214_maxS = + "\1\116\1\134\1\52\1\16\1\34\1\uffff\1\52\1\uffff\1\34\2\uffff"; + static final String DFA214_acceptS = + "\5\uffff\1\1\1\uffff\1\2\1\uffff\1\3\1\4"; + static final String DFA214_specialS = + "\13\uffff}>"; + static final String[] DFA214_transitionS = { + "\1\1", + "\1\2\115\uffff\1\3", + "\1\4\4\uffff\1\5", + "\1\6", + "\1\2\15\uffff\1\7", + "", + "\1\10\4\uffff\1\11", + "", + "\1\6\15\uffff\1\12", + "", + "" + }; + + static final short[] DFA214_eot = DFA.unpackEncodedString(DFA214_eotS); + static final short[] DFA214_eof = DFA.unpackEncodedString(DFA214_eofS); + static final char[] DFA214_min = DFA.unpackEncodedStringToUnsignedChars(DFA214_minS); + static final char[] DFA214_max = DFA.unpackEncodedStringToUnsignedChars(DFA214_maxS); + static final short[] DFA214_accept = DFA.unpackEncodedString(DFA214_acceptS); + static final short[] DFA214_special = DFA.unpackEncodedString(DFA214_specialS); + static final short[][] DFA214_transition; + + static { + int numStates = DFA214_transitionS.length; + DFA214_transition = new short[numStates][]; + for (int i=0; i"; + static final String[] DFA221_transitionS = { + "\12\47\1\21\1\uffff\2\47\1\uffff\1\47\1\uffff\1\47\4\uffff\1"+ + "\47\3\uffff\2\47\2\uffff\2\47\6\uffff\1\40\1\47\4\uffff\1\1"+ + "\7\uffff\1\3\1\33\1\23\1\45\1\25\2\uffff\1\24\1\15\1\46\1\uffff"+ + "\1\37\1\32\1\uffff\1\17\1\uffff\1\6\1\uffff\1\31\1\35\1\34\3"+ + "\uffff\1\27\1\16\1\30\1\10\2\47\1\uffff\1\5\1\4\1\2\1\43\1\26"+ + "\1\7\1\14\1\47\1\42\1\11\1\47\1\44\1\uffff\1\12\1\41\1\22\1"+ + "\13\1\36\1\20\4\uffff\1\47", + "\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[] DFA221_eot = DFA.unpackEncodedString(DFA221_eotS); + static final short[] DFA221_eof = DFA.unpackEncodedString(DFA221_eofS); + static final char[] DFA221_min = DFA.unpackEncodedStringToUnsignedChars(DFA221_minS); + static final char[] DFA221_max = DFA.unpackEncodedStringToUnsignedChars(DFA221_maxS); + static final short[] DFA221_accept = DFA.unpackEncodedString(DFA221_acceptS); + static final short[] DFA221_special = DFA.unpackEncodedString(DFA221_specialS); + static final short[][] DFA221_transition; + + static { + int numStates = DFA221_transitionS.length; + DFA221_transition = new short[numStates][]; + for (int i=0; i=0 ) return s; + break; + case 1 : + int LA221_2 = input.LA(1); + + + int index221_2 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred263_Java()) ) {s = 64;} + + else if ( (synpred264_Java()) ) {s = 14;} + + else if ( (synpred265_Java()) ) {s = 15;} + + else if ( (synpred266_Java()) ) {s = 65;} + + else if ( (synpred267_Java()) ) {s = 67;} + + else if ( (synpred268_Java()) ) {s = 66;} + + + input.seek(index221_2); + + if ( s>=0 ) return s; + break; + case 2 : + int LA221_3 = input.LA(1); + + + int index221_3 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred263_Java()) ) {s = 64;} + + else if ( (synpred264_Java()) ) {s = 14;} + + else if ( (synpred265_Java()) ) {s = 15;} + + else if ( (synpred266_Java()) ) {s = 65;} + + else if ( (synpred267_Java()) ) {s = 67;} + + else if ( (synpred268_Java()) ) {s = 66;} + + + input.seek(index221_3); + + if ( s>=0 ) return s; + break; + case 3 : + int LA221_4 = input.LA(1); + + + int index221_4 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred263_Java()) ) {s = 64;} + + else if ( (synpred264_Java()) ) {s = 14;} + + else if ( (synpred265_Java()) ) {s = 15;} + + else if ( (synpred266_Java()) ) {s = 65;} + + else if ( (synpred267_Java()) ) {s = 67;} + + else if ( (synpred268_Java()) ) {s = 66;} + + + input.seek(index221_4); + + if ( s>=0 ) return s; + break; + case 4 : + int LA221_5 = input.LA(1); + + + int index221_5 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred263_Java()) ) {s = 64;} + + else if ( (synpred264_Java()) ) {s = 14;} + + else if ( (synpred265_Java()) ) {s = 15;} + + else if ( (synpred266_Java()) ) {s = 65;} + + else if ( (synpred267_Java()) ) {s = 67;} + + else if ( (synpred268_Java()) ) {s = 66;} + + + input.seek(index221_5); + + if ( s>=0 ) return s; + break; + case 5 : + int LA221_6 = input.LA(1); + + + int index221_6 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred263_Java()) ) {s = 64;} + + else if ( (synpred264_Java()) ) {s = 14;} + + else if ( (synpred265_Java()) ) {s = 15;} + + else if ( (synpred266_Java()) ) {s = 65;} + + else if ( (synpred267_Java()) ) {s = 67;} + + else if ( (synpred268_Java()) ) {s = 66;} + + + input.seek(index221_6); + + if ( s>=0 ) return s; + break; + case 6 : + int LA221_7 = input.LA(1); + + + int index221_7 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred263_Java()) ) {s = 64;} + + else if ( (synpred264_Java()) ) {s = 14;} + + else if ( (synpred265_Java()) ) {s = 15;} + + else if ( (synpred266_Java()) ) {s = 65;} + + else if ( (synpred267_Java()) ) {s = 67;} + + else if ( (synpred268_Java()) ) {s = 66;} + + + input.seek(index221_7); + + if ( s>=0 ) return s; + break; + case 7 : + int LA221_8 = input.LA(1); + + + int index221_8 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred263_Java()) ) {s = 64;} + + else if ( (synpred264_Java()) ) {s = 14;} + + else if ( (synpred265_Java()) ) {s = 15;} + + else if ( (synpred266_Java()) ) {s = 65;} + + else if ( (synpred267_Java()) ) {s = 67;} + + else if ( (synpred268_Java()) ) {s = 66;} + + + input.seek(index221_8); + + if ( s>=0 ) return s; + break; + case 8 : + int LA221_9 = input.LA(1); + + + int index221_9 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred263_Java()) ) {s = 64;} + + else if ( (synpred264_Java()) ) {s = 14;} + + else if ( (synpred265_Java()) ) {s = 15;} + + else if ( (synpred266_Java()) ) {s = 65;} + + else if ( (synpred267_Java()) ) {s = 67;} + + else if ( (synpred268_Java()) ) {s = 66;} + + else if ( (synpred276_Java()) ) {s = 68;} + + + input.seek(index221_9); + + if ( s>=0 ) return s; + break; + case 9 : + int LA221_10 = input.LA(1); + + + int index221_10 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred263_Java()) ) {s = 64;} + + else if ( (synpred264_Java()) ) {s = 14;} + + else if ( (synpred265_Java()) ) {s = 15;} + + else if ( (synpred266_Java()) ) {s = 65;} + + else if ( (synpred267_Java()) ) {s = 67;} + + else if ( (synpred268_Java()) ) {s = 66;} + + + input.seek(index221_10); + + if ( s>=0 ) return s; + break; + case 10 : + int LA221_11 = input.LA(1); + + + int index221_11 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred263_Java()) ) {s = 64;} + + else if ( (synpred264_Java()) ) {s = 14;} + + else if ( (synpred265_Java()) ) {s = 15;} + + else if ( (synpred266_Java()) ) {s = 65;} + + else if ( (synpred267_Java()) ) {s = 67;} + + else if ( (synpred268_Java()) ) {s = 66;} + + + input.seek(index221_11); + + if ( s>=0 ) return s; + break; + case 11 : + int LA221_12 = input.LA(1); + + + int index221_12 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred263_Java()) ) {s = 64;} + + else if ( (synpred264_Java()) ) {s = 14;} + + else if ( (synpred265_Java()) ) {s = 15;} + + else if ( (synpred266_Java()) ) {s = 65;} + + else if ( (synpred267_Java()) ) {s = 67;} + + else if ( (synpred268_Java()) ) {s = 66;} + + + input.seek(index221_12); + + if ( s>=0 ) return s; + break; + case 12 : + int LA221_13 = input.LA(1); + + + int index221_13 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred263_Java()) ) {s = 64;} + + else if ( (true) ) {s = 39;} + + + input.seek(index221_13); + + if ( s>=0 ) return s; + break; + case 13 : + int LA221_16 = input.LA(1); + + + int index221_16 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred267_Java()) ) {s = 67;} + + else if ( (true) ) {s = 39;} + + + input.seek(index221_16); + + if ( s>=0 ) return s; + break; + case 14 : + int LA221_17 = input.LA(1); + + + int index221_17 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred268_Java()) ) {s = 66;} + + else if ( (synpred283_Java()) ) {s = 69;} + + else if ( (true) ) {s = 39;} + + + input.seek(index221_17); + + if ( s>=0 ) return s; + break; + case 15 : + int LA221_18 = input.LA(1); + + + int index221_18 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred268_Java()) ) {s = 66;} + + else if ( (true) ) {s = 39;} + + + input.seek(index221_18); + + if ( s>=0 ) return s; + break; + case 16 : + int LA221_19 = input.LA(1); + + + int index221_19 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred268_Java()) ) {s = 66;} + + else if ( (true) ) {s = 39;} + + + input.seek(index221_19); + + if ( s>=0 ) return s; + break; + case 17 : + int LA221_20 = input.LA(1); + + + int index221_20 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred268_Java()) ) {s = 66;} + + else if ( (true) ) {s = 39;} + + + input.seek(index221_20); + + if ( s>=0 ) return s; + break; + case 18 : + int LA221_21 = input.LA(1); + + + int index221_21 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred268_Java()) ) {s = 66;} + + else if ( (true) ) {s = 39;} + + + input.seek(index221_21); + + if ( s>=0 ) return s; + break; + case 19 : + int LA221_22 = input.LA(1); + + + int index221_22 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred268_Java()) ) {s = 66;} + + else if ( (true) ) {s = 39;} + + + input.seek(index221_22); + + if ( s>=0 ) return s; + break; + case 20 : + int LA221_23 = input.LA(1); + + + int index221_23 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred268_Java()) ) {s = 66;} + + else if ( (true) ) {s = 39;} + + + input.seek(index221_23); + + if ( s>=0 ) return s; + break; + case 21 : + int LA221_24 = input.LA(1); + + + int index221_24 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred268_Java()) ) {s = 66;} + + else if ( (true) ) {s = 39;} + + + input.seek(index221_24); + + if ( s>=0 ) return s; + break; + case 22 : + int LA221_25 = input.LA(1); + + + int index221_25 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred268_Java()) ) {s = 66;} + + else if ( (true) ) {s = 39;} + + + input.seek(index221_25); + + if ( s>=0 ) return s; + break; + case 23 : + int LA221_26 = input.LA(1); + + + int index221_26 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred268_Java()) ) {s = 66;} + + else if ( (true) ) {s = 39;} + + + input.seek(index221_26); + + if ( s>=0 ) return s; + break; + case 24 : + int LA221_29 = input.LA(1); + + + int index221_29 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred271_Java()) ) {s = 70;} + + else if ( (synpred272_Java()) ) {s = 71;} + + + input.seek(index221_29); + + if ( s>=0 ) return s; + break; + case 25 : + int LA221_31 = input.LA(1); + + + int index221_31 = input.index(); + input.rewind(); + + s = -1; + if ( (synpred273_Java()) ) {s = 30;} + + else if ( (synpred274_Java()) ) {s = 72;} + + + input.seek(index221_31); + + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + + NoViableAltException nvae = + new NoViableAltException(getDescription(), 221, _s, input); + error(nvae); + throw nvae; + } + + } + + + public static final BitSet FOLLOW_parse_org_emftext_language_java_containers_CompilationUnit_in_start82 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_containers_Package_in_start96 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_containers_EmptyModel_in_start110 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_start117 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_imports_Import_in_parse_org_emftext_language_java_containers_EmptyModel158 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_containers_EmptyModel186 = new BitSet(new long[]{0x0000040000000002L,0x0000000000004000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_containers_EmptyModel228 = new BitSet(new long[]{0x0000040000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_annotations_AnnotationInstance_in_parse_org_emftext_language_java_containers_Package285 = new BitSet(new long[]{0x0001000000000000L,0x0000000000400000L}); + public static final BitSet FOLLOW_86_in_parse_org_emftext_language_java_containers_Package311 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_containers_Package340 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_containers_Package373 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_containers_Package410 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_containers_Package431 = new BitSet(new long[]{0x0000040000000002L,0x0000000000004000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_containers_Package454 = new BitSet(new long[]{0x0000040000000002L,0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_imports_Import_in_parse_org_emftext_language_java_containers_Package502 = new BitSet(new long[]{0x0000040000000002L,0x0000000000004000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_containers_Package552 = new BitSet(new long[]{0x0000040000000002L}); + public static final BitSet FOLLOW_86_in_parse_org_emftext_language_java_containers_CompilationUnit609 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_containers_CompilationUnit635 = new BitSet(new long[]{0x0000042000000000L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_containers_CompilationUnit681 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_containers_CompilationUnit715 = new BitSet(new long[]{0x0000042000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_containers_CompilationUnit783 = new BitSet(new long[]{0x0101040000000000L,0x00000091338A4141L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_imports_Import_in_parse_org_emftext_language_java_containers_CompilationUnit831 = new BitSet(new long[]{0x0101040000000000L,0x00000091338A4141L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_containers_CompilationUnit881 = new BitSet(new long[]{0x0101040000000000L,0x00000091338A0141L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_ConcreteClassifier_in_parse_org_emftext_language_java_containers_CompilationUnit929 = new BitSet(new long[]{0x0105040000000002L,0x00000091338A0141L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_containers_CompilationUnit970 = new BitSet(new long[]{0x0105040000000002L,0x00000091338A0141L}); + public static final BitSet FOLLOW_50_in_parse_org_emftext_language_java_containers_CompilationUnit1041 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_parse_org_emftext_language_java_imports_ClassifierImport1089 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_imports_ClassifierImport1118 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_imports_ClassifierImport1151 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_imports_ClassifierImport1188 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_imports_ClassifierImport1209 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_parse_org_emftext_language_java_imports_PackageImport1238 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_imports_PackageImport1267 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_imports_PackageImport1300 = new BitSet(new long[]{0x0000000010004000L}); + public static final BitSet FOLLOW_28_in_parse_org_emftext_language_java_imports_PackageImport1333 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_imports_PackageImport1347 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_parse_org_emftext_language_java_imports_StaticMemberImport1376 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Static_in_parse_org_emftext_language_java_imports_StaticMemberImport1394 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_imports_StaticMemberImport1427 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_imports_StaticMemberImport1460 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_imports_StaticMemberImport1497 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_imports_StaticMemberImport1518 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_78_in_parse_org_emftext_language_java_imports_StaticClassifierImport1547 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Static_in_parse_org_emftext_language_java_imports_StaticClassifierImport1565 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_imports_StaticClassifierImport1598 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_imports_StaticClassifierImport1631 = new BitSet(new long[]{0x0000000010004000L}); + public static final BitSet FOLLOW_28_in_parse_org_emftext_language_java_imports_StaticClassifierImport1664 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_imports_StaticClassifierImport1678 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_classifiers_Class1716 = new BitSet(new long[]{0x0101000000000000L,0x0000009133880101L}); + public static final BitSet FOLLOW_64_in_parse_org_emftext_language_java_classifiers_Class1742 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_classifiers_Class1760 = new BitSet(new long[]{0x0000080000000000L,0x0000020000002080L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_classifiers_Class1790 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_classifiers_Class1816 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Class1857 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_classifiers_Class1891 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_classifiers_Class1952 = new BitSet(new long[]{0x0000000000000000L,0x0000020000002080L}); + public static final BitSet FOLLOW_71_in_parse_org_emftext_language_java_classifiers_Class1994 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Class2020 = new BitSet(new long[]{0x0000000000000000L,0x0000020000002000L}); + public static final BitSet FOLLOW_77_in_parse_org_emftext_language_java_classifiers_Class2070 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Class2103 = new BitSet(new long[]{0x0000000200000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Class2151 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Class2189 = new BitSet(new long[]{0x0000000200000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_105_in_parse_org_emftext_language_java_classifiers_Class2286 = new BitSet(new long[]{0x95010C0000004000L,0x000022D13B8F0551L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_Member_in_parse_org_emftext_language_java_classifiers_Class2315 = new BitSet(new long[]{0x95010C0000004000L,0x000022D13B8F0551L}); + public static final BitSet FOLLOW_109_in_parse_org_emftext_language_java_classifiers_Class2356 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_105_in_parse_org_emftext_language_java_classifiers_AnonymousClass2385 = new BitSet(new long[]{0x95010C0000004000L,0x000022D13B8F0551L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_Member_in_parse_org_emftext_language_java_classifiers_AnonymousClass2414 = new BitSet(new long[]{0x95010C0000004000L,0x000022D13B8F0551L}); + public static final BitSet FOLLOW_109_in_parse_org_emftext_language_java_classifiers_AnonymousClass2455 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_classifiers_Interface2493 = new BitSet(new long[]{0x0101000000000000L,0x00000091338A0100L}); + public static final BitSet FOLLOW_81_in_parse_org_emftext_language_java_classifiers_Interface2519 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_classifiers_Interface2537 = new BitSet(new long[]{0x0000080000000000L,0x0000020000000080L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_classifiers_Interface2567 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_classifiers_Interface2593 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Interface2634 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_classifiers_Interface2668 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_classifiers_Interface2729 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000080L}); + public static final BitSet FOLLOW_71_in_parse_org_emftext_language_java_classifiers_Interface2771 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Interface2804 = new BitSet(new long[]{0x0000000200000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Interface2852 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Interface2890 = new BitSet(new long[]{0x0000000200000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_105_in_parse_org_emftext_language_java_classifiers_Interface2987 = new BitSet(new long[]{0x95010C0000004000L,0x000022D13B8F0551L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_Member_in_parse_org_emftext_language_java_classifiers_Interface3016 = new BitSet(new long[]{0x95010C0000004000L,0x000022D13B8F0551L}); + public static final BitSet FOLLOW_109_in_parse_org_emftext_language_java_classifiers_Interface3057 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_classifiers_Enumeration3095 = new BitSet(new long[]{0x0101000000000000L,0x0000009133880140L}); + public static final BitSet FOLLOW_70_in_parse_org_emftext_language_java_classifiers_Enumeration3121 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_classifiers_Enumeration3139 = new BitSet(new long[]{0x0000000000000000L,0x0000020000002000L}); + public static final BitSet FOLLOW_77_in_parse_org_emftext_language_java_classifiers_Enumeration3169 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Enumeration3202 = new BitSet(new long[]{0x0000000200000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Enumeration3250 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_classifiers_Enumeration3288 = new BitSet(new long[]{0x0000000200000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_105_in_parse_org_emftext_language_java_classifiers_Enumeration3385 = new BitSet(new long[]{0x0001040200004000L,0x0000200000000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_EnumConstant_in_parse_org_emftext_language_java_classifiers_Enumeration3414 = new BitSet(new long[]{0x0000040200000000L,0x0000200000000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Enumeration3455 = new BitSet(new long[]{0x0001000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_EnumConstant_in_parse_org_emftext_language_java_classifiers_Enumeration3489 = new BitSet(new long[]{0x0000040200000000L,0x0000200000000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_classifiers_Enumeration3572 = new BitSet(new long[]{0x0000040000000000L,0x0000200000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_classifiers_Enumeration3614 = new BitSet(new long[]{0x95010C0000004000L,0x000022D13B8F0551L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_Member_in_parse_org_emftext_language_java_classifiers_Enumeration3655 = new BitSet(new long[]{0x95010C0000004000L,0x000022D13B8F0551L}); + public static final BitSet FOLLOW_109_in_parse_org_emftext_language_java_classifiers_Enumeration3729 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_classifiers_Annotation3767 = new BitSet(new long[]{0x0101000000000000L,0x0000009133880100L}); + public static final BitSet FOLLOW_48_in_parse_org_emftext_language_java_classifiers_Annotation3793 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L}); + public static final BitSet FOLLOW_81_in_parse_org_emftext_language_java_classifiers_Annotation3807 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_classifiers_Annotation3825 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_105_in_parse_org_emftext_language_java_classifiers_Annotation3846 = new BitSet(new long[]{0x95010C0000004000L,0x000022D13B8F0551L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_Member_in_parse_org_emftext_language_java_classifiers_Annotation3875 = new BitSet(new long[]{0x95010C0000004000L,0x000022D13B8F0551L}); + public static final BitSet FOLLOW_109_in_parse_org_emftext_language_java_classifiers_Annotation3916 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_48_in_parse_org_emftext_language_java_annotations_AnnotationInstance3945 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_annotations_AnnotationInstance3974 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_annotations_AnnotationInstance4007 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_annotations_AnnotationInstance4044 = new BitSet(new long[]{0x0000000004000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_annotations_AnnotationParameter_in_parse_org_emftext_language_java_annotations_AnnotationInstance4080 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_annotations_SingleAnnotationParameter4136 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_parse_org_emftext_language_java_annotations_SingleAnnotationParameter4154 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_ConditionalExpression_in_parse_org_emftext_language_java_annotations_SingleAnnotationParameter4168 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_annotations_SingleAnnotationParameter4186 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_annotations_AnnotationParameterList4215 = new BitSet(new long[]{0x0000000008004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_annotations_AnnotationAttributeSetting_in_parse_org_emftext_language_java_annotations_AnnotationParameterList4244 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_annotations_AnnotationParameterList4285 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_annotations_AnnotationAttributeSetting_in_parse_org_emftext_language_java_annotations_AnnotationParameterList4319 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_annotations_AnnotationParameterList4393 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_annotations_AnnotationAttributeSetting4426 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_44_in_parse_org_emftext_language_java_annotations_AnnotationAttributeSetting4447 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_parse_org_emftext_language_java_annotations_AnnotationAttributeSetting4465 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_ConditionalExpression_in_parse_org_emftext_language_java_annotations_AnnotationAttributeSetting4479 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_generics_TypeParameter4516 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L}); + public static final BitSet FOLLOW_71_in_parse_org_emftext_language_java_generics_TypeParameter4546 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_generics_TypeParameter4572 = new BitSet(new long[]{0x0000000001000002L}); + public static final BitSet FOLLOW_24_in_parse_org_emftext_language_java_generics_TypeParameter4613 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_generics_TypeParameter4647 = new BitSet(new long[]{0x0000000001000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_annotations_AnnotationInstance_in_parse_org_emftext_language_java_members_EnumConstant4745 = new BitSet(new long[]{0x0001000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_members_EnumConstant4775 = new BitSet(new long[]{0x0000000004000002L,0x0000020000000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_members_EnumConstant4805 = new BitSet(new long[]{0x9401080CCC2B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_members_EnumConstant4846 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_members_EnumConstant4901 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_members_EnumConstant4943 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_members_EnumConstant5047 = new BitSet(new long[]{0x0000000000000002L,0x0000020000000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_AnonymousClass_in_parse_org_emftext_language_java_members_EnumConstant5095 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Modifier_in_parse_org_emftext_language_java_statements_Block5160 = new BitSet(new long[]{0x0100000000000000L,0x0000029133880100L}); + public static final BitSet FOLLOW_105_in_parse_org_emftext_language_java_statements_Block5186 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000063F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_Block5215 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000063F7FFBF1D5BL}); + public static final BitSet FOLLOW_109_in_parse_org_emftext_language_java_statements_Block5256 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_members_Constructor5294 = new BitSet(new long[]{0x0101080000004000L,0x0000009133880100L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_members_Constructor5329 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_members_Constructor5355 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_members_Constructor5396 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_members_Constructor5430 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_members_Constructor5491 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_members_Constructor5528 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_members_Constructor5549 = new BitSet(new long[]{0x9501000008004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_members_Constructor5578 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_members_Constructor5619 = new BitSet(new long[]{0x9501000000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_members_Constructor5653 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_members_Constructor5727 = new BitSet(new long[]{0x0000000000000000L,0x0000020800000000L}); + public static final BitSet FOLLOW_99_in_parse_org_emftext_language_java_members_Constructor5750 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_members_Constructor5776 = new BitSet(new long[]{0x0000000200000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_members_Constructor5817 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_members_Constructor5851 = new BitSet(new long[]{0x0000000200000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_105_in_parse_org_emftext_language_java_members_Constructor5925 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000063F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_members_Constructor5954 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000063F7FFBF1D5BL}); + public static final BitSet FOLLOW_109_in_parse_org_emftext_language_java_members_Constructor5995 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_members_InterfaceMethod6033 = new BitSet(new long[]{0x9501080000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_members_InterfaceMethod6068 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_members_InterfaceMethod6094 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_members_InterfaceMethod6135 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_members_InterfaceMethod6169 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_members_InterfaceMethod6230 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_members_InterfaceMethod6272 = new BitSet(new long[]{0x0002000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_InterfaceMethod6306 = new BitSet(new long[]{0x0002000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_members_InterfaceMethod6350 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_members_InterfaceMethod6371 = new BitSet(new long[]{0x9501000008004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_members_InterfaceMethod6400 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_members_InterfaceMethod6441 = new BitSet(new long[]{0x9501000000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_members_InterfaceMethod6475 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_members_InterfaceMethod6549 = new BitSet(new long[]{0x0002040000000000L,0x0000000800000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_InterfaceMethod6572 = new BitSet(new long[]{0x0002040000000000L,0x0000000800000000L}); + public static final BitSet FOLLOW_99_in_parse_org_emftext_language_java_members_InterfaceMethod6607 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_members_InterfaceMethod6633 = new BitSet(new long[]{0x0000040200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_members_InterfaceMethod6674 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_members_InterfaceMethod6708 = new BitSet(new long[]{0x0000040200000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_members_InterfaceMethod6782 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_annotations_AnnotationAttribute_in_parse_org_emftext_language_java_members_InterfaceMethod6801 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_members_ClassMethod6835 = new BitSet(new long[]{0x9501080000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_members_ClassMethod6870 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_members_ClassMethod6896 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_members_ClassMethod6937 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_members_ClassMethod6971 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_members_ClassMethod7032 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_members_ClassMethod7074 = new BitSet(new long[]{0x0002000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_ClassMethod7108 = new BitSet(new long[]{0x0002000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_members_ClassMethod7152 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_members_ClassMethod7173 = new BitSet(new long[]{0x9501000008004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_members_ClassMethod7202 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_members_ClassMethod7243 = new BitSet(new long[]{0x9501000000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_members_ClassMethod7277 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_members_ClassMethod7351 = new BitSet(new long[]{0x0002000000000000L,0x0000020800000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_ClassMethod7374 = new BitSet(new long[]{0x0002000000000000L,0x0000020800000000L}); + public static final BitSet FOLLOW_99_in_parse_org_emftext_language_java_members_ClassMethod7409 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_members_ClassMethod7435 = new BitSet(new long[]{0x0000000200000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_members_ClassMethod7476 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_members_ClassMethod7510 = new BitSet(new long[]{0x0000000200000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_105_in_parse_org_emftext_language_java_members_ClassMethod7584 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000063F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_members_ClassMethod7613 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000063F7FFBF1D5BL}); + public static final BitSet FOLLOW_109_in_parse_org_emftext_language_java_members_ClassMethod7654 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7692 = new BitSet(new long[]{0x9501080000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7727 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7753 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7794 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7828 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7889 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7931 = new BitSet(new long[]{0x0002000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_annotations_AnnotationAttribute7965 = new BitSet(new long[]{0x0002000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8009 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8030 = new BitSet(new long[]{0x9501000008004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8059 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8100 = new BitSet(new long[]{0x9501000000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8134 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8208 = new BitSet(new long[]{0x0002000000000000L,0x0000000800000004L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8231 = new BitSet(new long[]{0x0002000000000000L,0x0000000800000004L}); + public static final BitSet FOLLOW_99_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8266 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8292 = new BitSet(new long[]{0x0000000200000000L,0x0000000000000004L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8333 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8367 = new BitSet(new long[]{0x0000000200000000L,0x0000000000000004L}); + public static final BitSet FOLLOW_66_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8441 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8459 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_annotations_AnnotationAttribute8477 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8515 = new BitSet(new long[]{0x9501000000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8545 = new BitSet(new long[]{0x0002080000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8572 = new BitSet(new long[]{0x0002080000004000L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8607 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8633 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8674 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8708 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8769 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8806 = new BitSet(new long[]{0x0002000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_parameters_OrdinaryParameter8836 = new BitSet(new long[]{0x0002000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_parameters_VariableLengthParameter8886 = new BitSet(new long[]{0x9501000000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_parameters_VariableLengthParameter8916 = new BitSet(new long[]{0x0002084000000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_parameters_VariableLengthParameter8943 = new BitSet(new long[]{0x0002084000000000L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_parameters_VariableLengthParameter8978 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_parameters_VariableLengthParameter9004 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_parameters_VariableLengthParameter9045 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_parameters_VariableLengthParameter9079 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_parameters_VariableLengthParameter9140 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_38_in_parse_org_emftext_language_java_parameters_VariableLengthParameter9173 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_parameters_VariableLengthParameter9191 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_variables_LocalVariable9236 = new BitSet(new long[]{0x9501000000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_variables_LocalVariable9266 = new BitSet(new long[]{0x0002080000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_variables_LocalVariable9293 = new BitSet(new long[]{0x0002080000004000L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_variables_LocalVariable9328 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_variables_LocalVariable9354 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_variables_LocalVariable9395 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_variables_LocalVariable9429 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_variables_LocalVariable9490 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_variables_LocalVariable9527 = new BitSet(new long[]{0x0002100200000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_variables_LocalVariable9557 = new BitSet(new long[]{0x0002100200000002L}); + public static final BitSet FOLLOW_44_in_parse_org_emftext_language_java_variables_LocalVariable9592 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_variables_LocalVariable9618 = new BitSet(new long[]{0x0000000200000002L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_variables_LocalVariable9668 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_variables_AdditionalLocalVariable_in_parse_org_emftext_language_java_variables_LocalVariable9694 = new BitSet(new long[]{0x0000000200000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_variables_LocalVariable_in_parse_org_emftext_language_java_statements_LocalVariableStatement9754 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_statements_LocalVariableStatement9772 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_variables_AdditionalLocalVariable9805 = new BitSet(new long[]{0x0002100000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_variables_AdditionalLocalVariable9835 = new BitSet(new long[]{0x0002100000000002L}); + public static final BitSet FOLLOW_44_in_parse_org_emftext_language_java_variables_AdditionalLocalVariable9870 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_variables_AdditionalLocalVariable9896 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_parse_org_emftext_language_java_members_Field9961 = new BitSet(new long[]{0x9501000000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_members_Field9991 = new BitSet(new long[]{0x0002080000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_Field10018 = new BitSet(new long[]{0x0002080000004000L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_members_Field10053 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_members_Field10079 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_members_Field10120 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_members_Field10154 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_members_Field10215 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_members_Field10252 = new BitSet(new long[]{0x0002140200000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_Field10282 = new BitSet(new long[]{0x0002140200000000L}); + public static final BitSet FOLLOW_44_in_parse_org_emftext_language_java_members_Field10317 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_members_Field10343 = new BitSet(new long[]{0x0000040200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_members_Field10393 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_AdditionalField_in_parse_org_emftext_language_java_members_Field10419 = new BitSet(new long[]{0x0000040200000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_members_Field10460 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_members_AdditionalField10493 = new BitSet(new long[]{0x0002100000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_members_AdditionalField10523 = new BitSet(new long[]{0x0002100000000002L}); + public static final BitSet FOLLOW_44_in_parse_org_emftext_language_java_members_AdditionalField10558 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_members_AdditionalField10584 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_members_EmptyMember10640 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10669 = new BitSet(new long[]{0x9400080000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10692 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10718 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10759 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10793 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10854 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10891 = new BitSet(new long[]{0x0000080004000000L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10918 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10944 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_instantiations_NewConstructorCall10985 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11019 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11080 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11113 = new BitSet(new long[]{0x9401080CCC2B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11142 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11183 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11217 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11291 = new BitSet(new long[]{0x0000002000000002L,0x0000020000000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_AnonymousClass_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11314 = new BitSet(new long[]{0x0000002000000002L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11349 = new BitSet(new long[]{0x9401080004084000L,0x0000024248150411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_instantiations_NewConstructorCall11375 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11440 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11466 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11507 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11541 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11602 = new BitSet(new long[]{0x0000000000000000L,0x0000000240000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_Self_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11639 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11657 = new BitSet(new long[]{0x9401080CCC2B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11686 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11727 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11761 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11835 = new BitSet(new long[]{0x0000002000000002L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11858 = new BitSet(new long[]{0x9401080004084000L,0x0000024248150411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall11884 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped11940 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped11958 = new BitSet(new long[]{0x0002000000000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped11985 = new BitSet(new long[]{0x0002000000000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped12015 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArraySelector_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped12042 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped12077 = new BitSet(new long[]{0x9401080004084000L,0x0000024248150411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped12103 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped12163 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArraySelector_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped12190 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped12225 = new BitSet(new long[]{0x9401080004084000L,0x0000024248150411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped12251 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_84_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12307 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12325 = new BitSet(new long[]{0x0002000000000000L}); + public static final BitSet FOLLOW_49_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12352 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12378 = new BitSet(new long[]{0x0020000000000000L}); + public static final BitSet FOLLOW_53_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12406 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12448 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12483 = new BitSet(new long[]{0x9401080004084000L,0x0000024248150411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize12509 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_105_in_parse_org_emftext_language_java_arrays_ArrayInitializer12565 = new BitSet(new long[]{0x9401080EC42B7FF0L,0x0000624248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_arrays_ArrayInitializer12594 = new BitSet(new long[]{0x0000000200000000L,0x0000200000000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_parse_org_emftext_language_java_arrays_ArrayInitializer12614 = new BitSet(new long[]{0x0000000200000000L,0x0000200000000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_arrays_ArrayInitializer12655 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_arrays_ArrayInitializer12689 = new BitSet(new long[]{0x0000000200000000L,0x0000200000000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_parse_org_emftext_language_java_arrays_ArrayInitializer12715 = new BitSet(new long[]{0x0000000200000000L,0x0000200000000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_arrays_ArrayInitializer12798 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L}); + public static final BitSet FOLLOW_109_in_parse_org_emftext_language_java_arrays_ArrayInitializer12831 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_parse_org_emftext_language_java_arrays_ArraySelector12860 = new BitSet(new long[]{0x9421080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_arrays_ArraySelector12883 = new BitSet(new long[]{0x0020000000000000L}); + public static final BitSet FOLLOW_53_in_parse_org_emftext_language_java_arrays_ArraySelector12909 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_types_NamespaceClassifierReference12953 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_types_NamespaceClassifierReference12986 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_ClassifierReference_in_parse_org_emftext_language_java_types_NamespaceClassifierReference13034 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_types_NamespaceClassifierReference13062 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_ClassifierReference_in_parse_org_emftext_language_java_types_NamespaceClassifierReference13099 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_types_ClassifierReference13136 = new BitSet(new long[]{0x0000080000000002L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_types_ClassifierReference13166 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_types_ClassifierReference13192 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_types_ClassifierReference13233 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_types_ClassifierReference13267 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_types_ClassifierReference13328 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_references_MethodCall13385 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_references_MethodCall13411 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_references_MethodCall13452 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_references_MethodCall13486 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_references_MethodCall13547 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_references_MethodCall13584 = new BitSet(new long[]{0x0000080004000000L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_references_MethodCall13614 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_references_MethodCall13640 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_references_MethodCall13681 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_references_MethodCall13715 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_references_MethodCall13776 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_references_MethodCall13809 = new BitSet(new long[]{0x9401080CCC2B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_references_MethodCall13838 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_references_MethodCall13879 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_references_MethodCall13913 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_references_MethodCall13987 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArraySelector_in_parse_org_emftext_language_java_references_MethodCall14010 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_references_MethodCall14045 = new BitSet(new long[]{0x9401080004084000L,0x0000024248150411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_references_MethodCall14071 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_references_IdentifierReference14131 = new BitSet(new long[]{0x0002082000000002L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_references_IdentifierReference14161 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_references_IdentifierReference14187 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_references_IdentifierReference14228 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_parse_org_emftext_language_java_references_IdentifierReference14262 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_references_IdentifierReference14323 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArraySelector_in_parse_org_emftext_language_java_references_IdentifierReference14365 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_references_IdentifierReference14400 = new BitSet(new long[]{0x9401080004084000L,0x0000024248150411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_references_IdentifierReference14426 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_parse_org_emftext_language_java_references_ReflectiveClassReference14482 = new BitSet(new long[]{0x0000002000000002L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_references_ReflectiveClassReference14505 = new BitSet(new long[]{0x9401080004084000L,0x0000024248150411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_references_ReflectiveClassReference14531 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_Self_in_parse_org_emftext_language_java_references_SelfReference14591 = new BitSet(new long[]{0x0000002000000002L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_references_SelfReference14618 = new BitSet(new long[]{0x9401080004084000L,0x0000024248150411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_references_SelfReference14644 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_PrimitiveType_in_parse_org_emftext_language_java_references_PrimitiveTypeReference14704 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArraySelector_in_parse_org_emftext_language_java_references_PrimitiveTypeReference14731 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_references_PrimitiveTypeReference14766 = new BitSet(new long[]{0x9401080004084000L,0x0000024248150411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_references_PrimitiveTypeReference14792 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_97_in_parse_org_emftext_language_java_literals_This14848 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_94_in_parse_org_emftext_language_java_literals_Super14877 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRING_LITERAL_in_parse_org_emftext_language_java_references_StringReference14910 = new BitSet(new long[]{0x0000002000000002L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_references_StringReference14940 = new BitSet(new long[]{0x9401080004084000L,0x0000024248150411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_references_StringReference14966 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_generics_QualifiedTypeArgument15026 = new BitSet(new long[]{0x0002000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_generics_QualifiedTypeArgument15053 = new BitSet(new long[]{0x0002000000000002L}); + public static final BitSet FOLLOW_47_in_parse_org_emftext_language_java_generics_UnknownTypeArgument15094 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_47_in_parse_org_emftext_language_java_generics_ExtendsTypeArgument15123 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L}); + public static final BitSet FOLLOW_71_in_parse_org_emftext_language_java_generics_ExtendsTypeArgument15137 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_generics_ExtendsTypeArgument15155 = new BitSet(new long[]{0x0002000001000002L}); + public static final BitSet FOLLOW_24_in_parse_org_emftext_language_java_generics_ExtendsTypeArgument15182 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_generics_ExtendsTypeArgument15208 = new BitSet(new long[]{0x0002000001000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_generics_ExtendsTypeArgument15258 = new BitSet(new long[]{0x0002000000000002L}); + public static final BitSet FOLLOW_47_in_parse_org_emftext_language_java_generics_SuperTypeArgument15299 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L}); + public static final BitSet FOLLOW_94_in_parse_org_emftext_language_java_generics_SuperTypeArgument15313 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_generics_SuperTypeArgument15331 = new BitSet(new long[]{0x0002000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_generics_SuperTypeArgument15358 = new BitSet(new long[]{0x0002000000000002L}); + public static final BitSet FOLLOW_57_in_parse_org_emftext_language_java_statements_Assert15399 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_Assert15417 = new BitSet(new long[]{0x0000060000000000L}); + public static final BitSet FOLLOW_41_in_parse_org_emftext_language_java_statements_Assert15444 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_Assert15470 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_statements_Assert15511 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_76_in_parse_org_emftext_language_java_statements_Condition15540 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_statements_Condition15554 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_Condition15572 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_statements_Condition15590 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000043F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_Condition15608 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L}); + public static final BitSet FOLLOW_69_in_parse_org_emftext_language_java_statements_Condition15635 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000043F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_Condition15661 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_parse_org_emftext_language_java_statements_ForLoop15717 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_statements_ForLoop15731 = new BitSet(new long[]{0x95010C0CC42B7FF0L,0x000042D37BBD0511L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_ForLoopInitializer_in_parse_org_emftext_language_java_statements_ForLoop15754 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_statements_ForLoop15780 = new BitSet(new long[]{0x94010C0CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_ForLoop15803 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_statements_ForLoop15829 = new BitSet(new long[]{0x9401080CCC2B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_ForLoop15858 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_statements_ForLoop15899 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_ForLoop15933 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_statements_ForLoop16007 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000043F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_ForLoop16025 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_75_in_parse_org_emftext_language_java_statements_ForEachLoop16058 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_statements_ForEachLoop16072 = new BitSet(new long[]{0x9501000000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_OrdinaryParameter_in_parse_org_emftext_language_java_statements_ForEachLoop16090 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_41_in_parse_org_emftext_language_java_statements_ForEachLoop16108 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_ForEachLoop16126 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_statements_ForEachLoop16144 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000043F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_ForEachLoop16162 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_104_in_parse_org_emftext_language_java_statements_WhileLoop16195 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_statements_WhileLoop16209 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_WhileLoop16227 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_statements_WhileLoop16245 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000043F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_WhileLoop16263 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_DoWhileLoop_in_parse_org_emftext_language_java_statements_WhileLoop16286 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_parse_org_emftext_language_java_statements_DoWhileLoop16311 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000043F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_DoWhileLoop16329 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L}); + public static final BitSet FOLLOW_104_in_parse_org_emftext_language_java_statements_DoWhileLoop16347 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_statements_DoWhileLoop16361 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_DoWhileLoop16379 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_statements_DoWhileLoop16397 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_statements_DoWhileLoop16411 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_statements_EmptyStatement16440 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_parse_org_emftext_language_java_statements_SynchronizedBlock16469 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_statements_SynchronizedBlock16483 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_SynchronizedBlock16501 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_statements_SynchronizedBlock16519 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_105_in_parse_org_emftext_language_java_statements_SynchronizedBlock16533 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000063F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_SynchronizedBlock16562 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000063F7FFBF1D5BL}); + public static final BitSet FOLLOW_109_in_parse_org_emftext_language_java_statements_SynchronizedBlock16603 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_101_in_parse_org_emftext_language_java_statements_TryBlock16632 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_105_in_parse_org_emftext_language_java_statements_TryBlock16646 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000063F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_TryBlock16675 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000063F7FFBF1D5BL}); + public static final BitSet FOLLOW_109_in_parse_org_emftext_language_java_statements_TryBlock16716 = new BitSet(new long[]{0x4000000000000002L,0x0000000000000200L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_CatchBlock_in_parse_org_emftext_language_java_statements_TryBlock16739 = new BitSet(new long[]{0x4000000000000002L,0x0000000000000200L}); + public static final BitSet FOLLOW_73_in_parse_org_emftext_language_java_statements_TryBlock16774 = new BitSet(new long[]{0x0100000000000000L,0x0000029133880100L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Block_in_parse_org_emftext_language_java_statements_TryBlock16800 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_62_in_parse_org_emftext_language_java_statements_CatchBlock16856 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_statements_CatchBlock16870 = new BitSet(new long[]{0x9501000000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_OrdinaryParameter_in_parse_org_emftext_language_java_statements_CatchBlock16888 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_statements_CatchBlock16906 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_105_in_parse_org_emftext_language_java_statements_CatchBlock16920 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000063F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_CatchBlock16949 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000063F7FFBF1D5BL}); + public static final BitSet FOLLOW_109_in_parse_org_emftext_language_java_statements_CatchBlock16990 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_95_in_parse_org_emftext_language_java_statements_Switch17019 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_statements_Switch17033 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_Switch17051 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_statements_Switch17069 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L}); + public static final BitSet FOLLOW_105_in_parse_org_emftext_language_java_statements_Switch17083 = new BitSet(new long[]{0x2000000000000000L,0x0000200000000004L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_SwitchCase_in_parse_org_emftext_language_java_statements_Switch17112 = new BitSet(new long[]{0x2000000000000000L,0x0000200000000004L}); + public static final BitSet FOLLOW_109_in_parse_org_emftext_language_java_statements_Switch17152 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_61_in_parse_org_emftext_language_java_statements_NormalSwitchCase17181 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_NormalSwitchCase17199 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_41_in_parse_org_emftext_language_java_statements_NormalSwitchCase17217 = new BitSet(new long[]{0x9F010C0CC42B7FF2L,0x000043F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_NormalSwitchCase17246 = new BitSet(new long[]{0x9F010C0CC42B7FF2L,0x000043F7FFBF1D5BL}); + public static final BitSet FOLLOW_66_in_parse_org_emftext_language_java_statements_DefaultSwitchCase17302 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_41_in_parse_org_emftext_language_java_statements_DefaultSwitchCase17316 = new BitSet(new long[]{0x9F010C0CC42B7FF2L,0x000043F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_DefaultSwitchCase17345 = new BitSet(new long[]{0x9F010C0CC42B7FF2L,0x000043F7FFBF1D5BL}); + public static final BitSet FOLLOW_90_in_parse_org_emftext_language_java_statements_Return17401 = new BitSet(new long[]{0x94010C0CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_Return17424 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_statements_Return17450 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_98_in_parse_org_emftext_language_java_statements_Throw17479 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_Throw17497 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_statements_Throw17515 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_59_in_parse_org_emftext_language_java_statements_Break17544 = new BitSet(new long[]{0x0000040000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_statements_Break17573 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_statements_Break17619 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_parse_org_emftext_language_java_statements_Continue17648 = new BitSet(new long[]{0x0000040000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_statements_Continue17677 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_statements_Continue17723 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_parse_org_emftext_language_java_statements_JumpLabel17756 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_41_in_parse_org_emftext_language_java_statements_JumpLabel17777 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000043F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_parse_org_emftext_language_java_statements_JumpLabel17795 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_statements_ExpressionStatement17832 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_42_in_parse_org_emftext_language_java_statements_ExpressionStatement17850 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_expressions_ExpressionList17883 = new BitSet(new long[]{0x0000000200000002L}); + public static final BitSet FOLLOW_33_in_parse_org_emftext_language_java_expressions_ExpressionList17910 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_expressions_ExpressionList17936 = new BitSet(new long[]{0x0000000200000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_ConditionalExpression_in_parse_org_emftext_language_java_expressions_AssignmentExpression17996 = new BitSet(new long[]{0x0090591122000002L,0x0000080000000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_AssignmentOperator_in_parse_org_emftext_language_java_expressions_AssignmentExpression18029 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_expressions_AssignmentExpression18063 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_ConditionalOrExpression_in_parse_org_emftext_language_java_expressions_ConditionalExpression18123 = new BitSet(new long[]{0x0000800000000002L}); + public static final BitSet FOLLOW_47_in_parse_org_emftext_language_java_expressions_ConditionalExpression18150 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_expressions_ConditionalExpression18176 = new BitSet(new long[]{0x0000020000000000L}); + public static final BitSet FOLLOW_41_in_parse_org_emftext_language_java_expressions_ConditionalExpression18204 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_ConditionalExpression_in_parse_org_emftext_language_java_expressions_ConditionalExpression18230 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_ConditionalAndExpression_in_parse_org_emftext_language_java_expressions_ConditionalOrExpression18290 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L}); + public static final BitSet FOLLOW_108_in_parse_org_emftext_language_java_expressions_ConditionalOrExpression18317 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_ConditionalAndExpression_in_parse_org_emftext_language_java_expressions_ConditionalOrExpression18343 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_InclusiveOrExpression_in_parse_org_emftext_language_java_expressions_ConditionalAndExpression18403 = new BitSet(new long[]{0x0000000000800002L}); + public static final BitSet FOLLOW_23_in_parse_org_emftext_language_java_expressions_ConditionalAndExpression18430 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_InclusiveOrExpression_in_parse_org_emftext_language_java_expressions_ConditionalAndExpression18456 = new BitSet(new long[]{0x0000000000800002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_ExclusiveOrExpression_in_parse_org_emftext_language_java_expressions_InclusiveOrExpression18516 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L}); + public static final BitSet FOLLOW_106_in_parse_org_emftext_language_java_expressions_InclusiveOrExpression18543 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_ExclusiveOrExpression_in_parse_org_emftext_language_java_expressions_InclusiveOrExpression18569 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AndExpression_in_parse_org_emftext_language_java_expressions_ExclusiveOrExpression18629 = new BitSet(new long[]{0x0040000000000002L}); + public static final BitSet FOLLOW_54_in_parse_org_emftext_language_java_expressions_ExclusiveOrExpression18656 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AndExpression_in_parse_org_emftext_language_java_expressions_ExclusiveOrExpression18682 = new BitSet(new long[]{0x0040000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_EqualityExpression_in_parse_org_emftext_language_java_expressions_AndExpression18742 = new BitSet(new long[]{0x0000000001000002L}); + public static final BitSet FOLLOW_24_in_parse_org_emftext_language_java_expressions_AndExpression18769 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_EqualityExpression_in_parse_org_emftext_language_java_expressions_AndExpression18795 = new BitSet(new long[]{0x0000000001000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_InstanceOfExpression_in_parse_org_emftext_language_java_expressions_EqualityExpression18855 = new BitSet(new long[]{0x0000200000400002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_EqualityOperator_in_parse_org_emftext_language_java_expressions_EqualityExpression18888 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_InstanceOfExpression_in_parse_org_emftext_language_java_expressions_EqualityExpression18922 = new BitSet(new long[]{0x0000200000400002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_RelationExpression_in_parse_org_emftext_language_java_expressions_InstanceOfExpression18982 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L}); + public static final BitSet FOLLOW_79_in_parse_org_emftext_language_java_expressions_InstanceOfExpression19009 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_expressions_InstanceOfExpression19035 = new BitSet(new long[]{0x0002000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_expressions_InstanceOfExpression19076 = new BitSet(new long[]{0x0002000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_ShiftExpression_in_parse_org_emftext_language_java_expressions_RelationExpression19148 = new BitSet(new long[]{0x0000480000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_RelationOperator_in_parse_org_emftext_language_java_expressions_RelationExpression19181 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_ShiftExpression_in_parse_org_emftext_language_java_expressions_RelationExpression19215 = new BitSet(new long[]{0x0000480000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AdditiveExpression_in_parse_org_emftext_language_java_expressions_ShiftExpression19275 = new BitSet(new long[]{0x0000480000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_ShiftOperator_in_parse_org_emftext_language_java_expressions_ShiftExpression19308 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AdditiveExpression_in_parse_org_emftext_language_java_expressions_ShiftExpression19342 = new BitSet(new long[]{0x0000480000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_MultiplicativeExpression_in_parse_org_emftext_language_java_expressions_AdditiveExpression19402 = new BitSet(new long[]{0x0000000440000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_AdditiveOperator_in_parse_org_emftext_language_java_expressions_AdditiveExpression19435 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_MultiplicativeExpression_in_parse_org_emftext_language_java_expressions_AdditiveExpression19469 = new BitSet(new long[]{0x0000000440000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_UnaryExpression_in_parse_org_emftext_language_java_expressions_MultiplicativeExpression19529 = new BitSet(new long[]{0x0008008010000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_MultiplicativeOperator_in_parse_org_emftext_language_java_expressions_MultiplicativeExpression19562 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_UnaryExpression_in_parse_org_emftext_language_java_expressions_MultiplicativeExpression19596 = new BitSet(new long[]{0x0008008010000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_UnaryOperator_in_parse_org_emftext_language_java_expressions_UnaryExpression19661 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_UnaryModificationExpression_in_parse_org_emftext_language_java_expressions_UnaryExpression19691 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild_in_parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression19728 = new BitSet(new long[]{0x0000000880000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_UnaryModificationOperator_in_parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression19761 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_UnaryModificationOperator_in_parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression19832 = new BitSet(new long[]{0x94010800040B7FF0L,0x0000024248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild_in_parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression19877 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_expressions_CastExpression19910 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_parse_org_emftext_language_java_expressions_CastExpression19928 = new BitSet(new long[]{0x0002000008000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_parse_org_emftext_language_java_expressions_CastExpression19955 = new BitSet(new long[]{0x0002000008000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_expressions_CastExpression19981 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_UnaryExpression_in_parse_org_emftext_language_java_expressions_CastExpression19999 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_26_in_parse_org_emftext_language_java_expressions_NestedExpression20032 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_parse_org_emftext_language_java_expressions_NestedExpression20050 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_27_in_parse_org_emftext_language_java_expressions_NestedExpression20068 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArraySelector_in_parse_org_emftext_language_java_expressions_NestedExpression20091 = new BitSet(new long[]{0x0002002000000002L}); + public static final BitSet FOLLOW_37_in_parse_org_emftext_language_java_expressions_NestedExpression20126 = new BitSet(new long[]{0x9401080004084000L,0x0000024248150411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_Reference_in_parse_org_emftext_language_java_expressions_NestedExpression20152 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_parse_org_emftext_language_java_operators_Assignment20208 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_parse_org_emftext_language_java_operators_AssignmentPlus20237 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_36_in_parse_org_emftext_language_java_operators_AssignmentMinus20266 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_parse_org_emftext_language_java_operators_AssignmentMultiplication20295 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_parse_org_emftext_language_java_operators_AssignmentDivision20324 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_25_in_parse_org_emftext_language_java_operators_AssignmentAnd20353 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_107_in_parse_org_emftext_language_java_operators_AssignmentOr20382 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_55_in_parse_org_emftext_language_java_operators_AssignmentExclusiveOr20411 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_52_in_parse_org_emftext_language_java_operators_AssignmentModulo20440 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_operators_AssignmentLeftShift20469 = new BitSet(new long[]{0x0000080000000000L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_operators_AssignmentLeftShift20483 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_44_in_parse_org_emftext_language_java_operators_AssignmentLeftShift20497 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_operators_AssignmentRightShift20526 = new BitSet(new long[]{0x0000400000000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_operators_AssignmentRightShift20540 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_44_in_parse_org_emftext_language_java_operators_AssignmentRightShift20554 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift20583 = new BitSet(new long[]{0x0000400000000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift20597 = new BitSet(new long[]{0x0000400000000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift20611 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_44_in_parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift20625 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_30_in_parse_org_emftext_language_java_operators_Addition20654 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_34_in_parse_org_emftext_language_java_operators_Subtraction20683 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_28_in_parse_org_emftext_language_java_operators_Multiplication20712 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_parse_org_emftext_language_java_operators_Division20741 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_parse_org_emftext_language_java_operators_Remainder20770 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_operators_LessThan20799 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_operators_LessThanOrEqual20828 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_44_in_parse_org_emftext_language_java_operators_LessThanOrEqual20842 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_operators_GreaterThan20871 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_operators_GreaterThanOrEqual20900 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_44_in_parse_org_emftext_language_java_operators_GreaterThanOrEqual20914 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_operators_LeftShift20943 = new BitSet(new long[]{0x0000080000000000L}); + public static final BitSet FOLLOW_43_in_parse_org_emftext_language_java_operators_LeftShift20957 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_operators_RightShift20986 = new BitSet(new long[]{0x0000400000000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_operators_RightShift21000 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_operators_UnsignedRightShift21029 = new BitSet(new long[]{0x0000400000000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_operators_UnsignedRightShift21043 = new BitSet(new long[]{0x0000400000000000L}); + public static final BitSet FOLLOW_46_in_parse_org_emftext_language_java_operators_UnsignedRightShift21057 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_45_in_parse_org_emftext_language_java_operators_Equal21086 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_22_in_parse_org_emftext_language_java_operators_NotEqual21115 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_31_in_parse_org_emftext_language_java_operators_PlusPlus21144 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_parse_org_emftext_language_java_operators_MinusMinus21173 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_110_in_parse_org_emftext_language_java_operators_Complement21202 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_21_in_parse_org_emftext_language_java_operators_Negate21231 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_parse_org_emftext_language_java_arrays_ArrayDimension21264 = new BitSet(new long[]{0x0020000000000000L}); + public static final BitSet FOLLOW_53_in_parse_org_emftext_language_java_arrays_ArrayDimension21281 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_85_in_parse_org_emftext_language_java_literals_NullLiteral21320 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_89_in_parse_org_emftext_language_java_modifiers_Public21349 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_parse_org_emftext_language_java_modifiers_Abstract21378 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_88_in_parse_org_emftext_language_java_modifiers_Protected21407 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_87_in_parse_org_emftext_language_java_modifiers_Private21436 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_72_in_parse_org_emftext_language_java_modifiers_Final21465 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_92_in_parse_org_emftext_language_java_modifiers_Static21494 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_83_in_parse_org_emftext_language_java_modifiers_Native21523 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_96_in_parse_org_emftext_language_java_modifiers_Synchronized21552 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_100_in_parse_org_emftext_language_java_modifiers_Transient21581 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_103_in_parse_org_emftext_language_java_modifiers_Volatile21610 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_93_in_parse_org_emftext_language_java_modifiers_Strictfp21639 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_102_in_parse_org_emftext_language_java_types_Void21668 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_58_in_parse_org_emftext_language_java_types_Boolean21697 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_parse_org_emftext_language_java_types_Char21726 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_parse_org_emftext_language_java_types_Byte21755 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_91_in_parse_org_emftext_language_java_types_Short21784 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_80_in_parse_org_emftext_language_java_types_Int21813 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_82_in_parse_org_emftext_language_java_types_Long21842 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_74_in_parse_org_emftext_language_java_types_Float21871 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_parse_org_emftext_language_java_types_Double21900 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DECIMAL_LONG_LITERAL_in_parse_org_emftext_language_java_literals_DecimalLongLiteral21933 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DECIMAL_FLOAT_LITERAL_in_parse_org_emftext_language_java_literals_DecimalFloatLiteral21973 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DECIMAL_INTEGER_LITERAL_in_parse_org_emftext_language_java_literals_DecimalIntegerLiteral22013 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DECIMAL_DOUBLE_LITERAL_in_parse_org_emftext_language_java_literals_DecimalDoubleLiteral22053 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_HEX_LONG_LITERAL_in_parse_org_emftext_language_java_literals_HexLongLiteral22093 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_HEX_FLOAT_LITERAL_in_parse_org_emftext_language_java_literals_HexFloatLiteral22133 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_HEX_DOUBLE_LITERAL_in_parse_org_emftext_language_java_literals_HexDoubleLiteral22173 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_HEX_INTEGER_LITERAL_in_parse_org_emftext_language_java_literals_HexIntegerLiteral22213 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_OCTAL_LONG_LITERAL_in_parse_org_emftext_language_java_literals_OctalLongLiteral22253 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_OCTAL_INTEGER_LITERAL_in_parse_org_emftext_language_java_literals_OctalIntegerLiteral22293 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CHARACTER_LITERAL_in_parse_org_emftext_language_java_literals_CharacterLiteral22333 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BOOLEAN_LITERAL_in_parse_org_emftext_language_java_literals_BooleanLiteral22373 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_imports_ClassifierImport_in_parse_org_emftext_language_java_imports_Import22405 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_imports_PackageImport_in_parse_org_emftext_language_java_imports_Import22415 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_imports_StaticMemberImport_in_parse_org_emftext_language_java_imports_Import22425 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_imports_StaticClassifierImport_in_parse_org_emftext_language_java_imports_Import22435 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Class_in_parse_org_emftext_language_java_classifiers_ConcreteClassifier22456 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Interface_in_parse_org_emftext_language_java_classifiers_ConcreteClassifier22466 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Enumeration_in_parse_org_emftext_language_java_classifiers_ConcreteClassifier22476 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Annotation_in_parse_org_emftext_language_java_classifiers_ConcreteClassifier22486 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_annotations_AnnotationInstance_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22507 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Public_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22517 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Abstract_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22527 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Protected_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22537 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Private_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22547 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Final_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22557 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Static_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22567 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Native_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22577 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Synchronized_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22587 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Transient_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22597 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Volatile_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22607 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Strictfp_in_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier22617 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_parse_org_emftext_language_java_types_TypeReference22638 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_ClassifierReference_in_parse_org_emftext_language_java_types_TypeReference22648 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Void_in_parse_org_emftext_language_java_types_TypeReference22658 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Boolean_in_parse_org_emftext_language_java_types_TypeReference22668 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Char_in_parse_org_emftext_language_java_types_TypeReference22678 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Byte_in_parse_org_emftext_language_java_types_TypeReference22688 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Short_in_parse_org_emftext_language_java_types_TypeReference22698 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Int_in_parse_org_emftext_language_java_types_TypeReference22708 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Long_in_parse_org_emftext_language_java_types_TypeReference22718 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Float_in_parse_org_emftext_language_java_types_TypeReference22728 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Double_in_parse_org_emftext_language_java_types_TypeReference22738 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Class_in_parse_org_emftext_language_java_members_Member22759 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Interface_in_parse_org_emftext_language_java_members_Member22769 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Enumeration_in_parse_org_emftext_language_java_members_Member22779 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Annotation_in_parse_org_emftext_language_java_members_Member22789 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Block_in_parse_org_emftext_language_java_members_Member22799 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_Constructor_in_parse_org_emftext_language_java_members_Member22809 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_InterfaceMethod_in_parse_org_emftext_language_java_members_Member22819 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_ClassMethod_in_parse_org_emftext_language_java_members_Member22829 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_annotations_AnnotationAttribute_in_parse_org_emftext_language_java_members_Member22839 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_Field_in_parse_org_emftext_language_java_members_Member22849 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_EmptyMember_in_parse_org_emftext_language_java_members_Member22859 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_annotations_SingleAnnotationParameter_in_parse_org_emftext_language_java_annotations_AnnotationParameter22880 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_annotations_AnnotationParameterList_in_parse_org_emftext_language_java_annotations_AnnotationParameter22890 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Public_in_parse_org_emftext_language_java_modifiers_Modifier22911 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Abstract_in_parse_org_emftext_language_java_modifiers_Modifier22921 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Protected_in_parse_org_emftext_language_java_modifiers_Modifier22931 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Private_in_parse_org_emftext_language_java_modifiers_Modifier22941 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Final_in_parse_org_emftext_language_java_modifiers_Modifier22951 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Static_in_parse_org_emftext_language_java_modifiers_Modifier22961 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Native_in_parse_org_emftext_language_java_modifiers_Modifier22971 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Synchronized_in_parse_org_emftext_language_java_modifiers_Modifier22981 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Transient_in_parse_org_emftext_language_java_modifiers_Modifier22991 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Volatile_in_parse_org_emftext_language_java_modifiers_Modifier23001 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_Strictfp_in_parse_org_emftext_language_java_modifiers_Modifier23011 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Class_in_parse_org_emftext_language_java_statements_Statement23032 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Interface_in_parse_org_emftext_language_java_statements_Statement23042 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Enumeration_in_parse_org_emftext_language_java_statements_Statement23052 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Annotation_in_parse_org_emftext_language_java_statements_Statement23062 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Block_in_parse_org_emftext_language_java_statements_Statement23072 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_LocalVariableStatement_in_parse_org_emftext_language_java_statements_Statement23082 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Assert_in_parse_org_emftext_language_java_statements_Statement23092 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Condition_in_parse_org_emftext_language_java_statements_Statement23102 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_ForLoop_in_parse_org_emftext_language_java_statements_Statement23112 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_ForEachLoop_in_parse_org_emftext_language_java_statements_Statement23122 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_WhileLoop_in_parse_org_emftext_language_java_statements_Statement23132 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_DoWhileLoop_in_parse_org_emftext_language_java_statements_Statement23142 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_EmptyStatement_in_parse_org_emftext_language_java_statements_Statement23152 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_SynchronizedBlock_in_parse_org_emftext_language_java_statements_Statement23162 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_TryBlock_in_parse_org_emftext_language_java_statements_Statement23172 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Switch_in_parse_org_emftext_language_java_statements_Statement23182 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Return_in_parse_org_emftext_language_java_statements_Statement23192 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Throw_in_parse_org_emftext_language_java_statements_Statement23202 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Break_in_parse_org_emftext_language_java_statements_Statement23212 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Continue_in_parse_org_emftext_language_java_statements_Statement23222 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_JumpLabel_in_parse_org_emftext_language_java_statements_Statement23232 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_ExpressionStatement_in_parse_org_emftext_language_java_statements_Statement23242 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_OrdinaryParameter_in_parse_org_emftext_language_java_parameters_Parameter23263 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_VariableLengthParameter_in_parse_org_emftext_language_java_parameters_Parameter23273 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_QualifiedTypeArgument_in_parse_org_emftext_language_java_generics_TypeArgument23294 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_UnknownTypeArgument_in_parse_org_emftext_language_java_generics_TypeArgument23304 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_ExtendsTypeArgument_in_parse_org_emftext_language_java_generics_TypeArgument23314 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_SuperTypeArgument_in_parse_org_emftext_language_java_generics_TypeArgument23324 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_annotations_AnnotationInstance_in_parse_org_emftext_language_java_references_Reference23345 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_instantiations_NewConstructorCall_in_parse_org_emftext_language_java_references_Reference23355 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall_in_parse_org_emftext_language_java_references_Reference23365 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped_in_parse_org_emftext_language_java_references_Reference23375 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped_in_parse_org_emftext_language_java_references_Reference23385 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize_in_parse_org_emftext_language_java_references_Reference23395 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_MethodCall_in_parse_org_emftext_language_java_references_Reference23405 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_IdentifierReference_in_parse_org_emftext_language_java_references_Reference23415 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_ReflectiveClassReference_in_parse_org_emftext_language_java_references_Reference23425 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_SelfReference_in_parse_org_emftext_language_java_references_Reference23435 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_PrimitiveTypeReference_in_parse_org_emftext_language_java_references_Reference23445 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_StringReference_in_parse_org_emftext_language_java_references_Reference23455 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_NestedExpression_in_parse_org_emftext_language_java_references_Reference23465 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_This_in_parse_org_emftext_language_java_literals_Self23486 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_Super_in_parse_org_emftext_language_java_literals_Self23496 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Void_in_parse_org_emftext_language_java_types_PrimitiveType23517 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Boolean_in_parse_org_emftext_language_java_types_PrimitiveType23527 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Char_in_parse_org_emftext_language_java_types_PrimitiveType23537 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Byte_in_parse_org_emftext_language_java_types_PrimitiveType23547 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Short_in_parse_org_emftext_language_java_types_PrimitiveType23557 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Int_in_parse_org_emftext_language_java_types_PrimitiveType23567 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Long_in_parse_org_emftext_language_java_types_PrimitiveType23577 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Float_in_parse_org_emftext_language_java_types_PrimitiveType23587 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_Double_in_parse_org_emftext_language_java_types_PrimitiveType23597 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_variables_LocalVariable_in_parse_org_emftext_language_java_statements_ForLoopInitializer23618 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_ExpressionList_in_parse_org_emftext_language_java_statements_ForLoopInitializer23628 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_NormalSwitchCase_in_parse_org_emftext_language_java_statements_SwitchCase23649 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_DefaultSwitchCase_in_parse_org_emftext_language_java_statements_SwitchCase23659 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_Assignment_in_parse_org_emftext_language_java_operators_AssignmentOperator23680 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_AssignmentPlus_in_parse_org_emftext_language_java_operators_AssignmentOperator23690 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_AssignmentMinus_in_parse_org_emftext_language_java_operators_AssignmentOperator23700 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_AssignmentMultiplication_in_parse_org_emftext_language_java_operators_AssignmentOperator23710 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_AssignmentDivision_in_parse_org_emftext_language_java_operators_AssignmentOperator23720 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_AssignmentAnd_in_parse_org_emftext_language_java_operators_AssignmentOperator23730 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_AssignmentOr_in_parse_org_emftext_language_java_operators_AssignmentOperator23740 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_AssignmentExclusiveOr_in_parse_org_emftext_language_java_operators_AssignmentOperator23750 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_AssignmentModulo_in_parse_org_emftext_language_java_operators_AssignmentOperator23760 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_AssignmentLeftShift_in_parse_org_emftext_language_java_operators_AssignmentOperator23770 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_AssignmentRightShift_in_parse_org_emftext_language_java_operators_AssignmentOperator23780 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_AssignmentUnsignedRightShift_in_parse_org_emftext_language_java_operators_AssignmentOperator23790 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_Equal_in_parse_org_emftext_language_java_operators_EqualityOperator23811 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_NotEqual_in_parse_org_emftext_language_java_operators_EqualityOperator23821 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_LessThan_in_parse_org_emftext_language_java_operators_RelationOperator23842 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_LessThanOrEqual_in_parse_org_emftext_language_java_operators_RelationOperator23852 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_GreaterThan_in_parse_org_emftext_language_java_operators_RelationOperator23862 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_GreaterThanOrEqual_in_parse_org_emftext_language_java_operators_RelationOperator23872 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_LeftShift_in_parse_org_emftext_language_java_operators_ShiftOperator23893 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_RightShift_in_parse_org_emftext_language_java_operators_ShiftOperator23903 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_UnsignedRightShift_in_parse_org_emftext_language_java_operators_ShiftOperator23913 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_Addition_in_parse_org_emftext_language_java_operators_AdditiveOperator23934 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_Subtraction_in_parse_org_emftext_language_java_operators_AdditiveOperator23944 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_Multiplication_in_parse_org_emftext_language_java_operators_MultiplicativeOperator23965 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_Division_in_parse_org_emftext_language_java_operators_MultiplicativeOperator23975 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_Remainder_in_parse_org_emftext_language_java_operators_MultiplicativeOperator23985 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_Addition_in_parse_org_emftext_language_java_operators_UnaryOperator24006 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_Subtraction_in_parse_org_emftext_language_java_operators_UnaryOperator24016 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_Complement_in_parse_org_emftext_language_java_operators_UnaryOperator24026 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_Negate_in_parse_org_emftext_language_java_operators_UnaryOperator24036 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression_in_parse_org_emftext_language_java_expressions_UnaryModificationExpression24057 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_PrefixUnaryModificationExpression_in_parse_org_emftext_language_java_expressions_UnaryModificationExpression24067 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_annotations_AnnotationInstance_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24088 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_instantiations_NewConstructorCall_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24098 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24108 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24118 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesUntyped_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24128 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24138 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_MethodCall_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24148 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_IdentifierReference_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24158 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_ReflectiveClassReference_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24168 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_SelfReference_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24178 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_PrimitiveTypeReference_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24188 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_StringReference_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24198 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_CastExpression_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24208 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_NestedExpression_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24218 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_NullLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24228 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_DecimalLongLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24238 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_DecimalFloatLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24248 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_DecimalIntegerLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24258 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_DecimalDoubleLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24268 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_HexLongLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24278 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_HexFloatLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24288 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_HexDoubleLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24298 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_HexIntegerLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24308 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_OctalLongLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24318 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_OctalIntegerLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24328 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_CharacterLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24338 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_literals_BooleanLiteral_in_parse_org_emftext_language_java_expressions_UnaryModificationExpressionChild24348 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_PlusPlus_in_parse_org_emftext_language_java_operators_UnaryModificationOperator24369 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_MinusMinus_in_parse_org_emftext_language_java_operators_UnaryModificationOperator24379 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_containers_CompilationUnit_in_synpred1_Java82 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_containers_Package_in_synpred2_Java96 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_42_in_synpred7_Java454 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_synpred47_Java4154 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInitializer_in_synpred50_Java4465 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_modifiers_AnnotationInstanceOrModifier_in_synpred77_Java6033 = new BitSet(new long[]{0x9501080000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_43_in_synpred77_Java6068 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_synpred77_Java6094 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_synpred77_Java6135 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeParameter_in_synpred77_Java6169 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_synpred77_Java6230 = new BitSet(new long[]{0x9400000000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_TypeReference_in_synpred77_Java6272 = new BitSet(new long[]{0x0002000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_synpred77_Java6306 = new BitSet(new long[]{0x0002000000004000L}); + public static final BitSet FOLLOW_IDENTIFIER_in_synpred77_Java6350 = new BitSet(new long[]{0x0000000004000000L}); + public static final BitSet FOLLOW_26_in_synpred77_Java6371 = new BitSet(new long[]{0x9501000008004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_synpred77_Java6400 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_33_in_synpred77_Java6441 = new BitSet(new long[]{0x9501000000004000L,0x000000D13B8D0510L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_Parameter_in_synpred77_Java6475 = new BitSet(new long[]{0x0000000208000000L}); + public static final BitSet FOLLOW_27_in_synpred77_Java6549 = new BitSet(new long[]{0x0002040000000000L,0x0000000800000000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayDimension_in_synpred77_Java6572 = new BitSet(new long[]{0x0002040000000000L,0x0000000800000000L}); + public static final BitSet FOLLOW_99_in_synpred77_Java6607 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_synpred77_Java6633 = new BitSet(new long[]{0x0000040200000000L}); + public static final BitSet FOLLOW_33_in_synpred77_Java6674 = new BitSet(new long[]{0x0000000000004000L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_synpred77_Java6708 = new BitSet(new long[]{0x0000040200000000L}); + public static final BitSet FOLLOW_42_in_synpred77_Java6782 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_synpred145_Java12594 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AssignmentExpression_in_synpred146_Java12689 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_synpred151_Java12953 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_37_in_synpred151_Java12986 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_ClassifierReference_in_synpred152_Java13034 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_37_in_synpred152_Java13062 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_synpred154_Java13166 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_synpred154_Java13192 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_synpred154_Java13233 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_synpred154_Java13267 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_synpred154_Java13328 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_synpred164_Java14161 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_synpred164_Java14187 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_33_in_synpred164_Java14228 = new BitSet(new long[]{0x9400800000004000L,0x0000004008050410L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_generics_TypeArgument_in_synpred164_Java14262 = new BitSet(new long[]{0x0000400200000000L}); + public static final BitSet FOLLOW_46_in_synpred164_Java14323 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_synpred177_Java15635 = new BitSet(new long[]{0x9F010C0CC42B7FF0L,0x000043F7FFBF1D5BL}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Statement_in_synpred177_Java15661 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_ShiftOperator_in_synpred206_Java19308 = new BitSet(new long[]{0x9401080CC42B7FF0L,0x0000424248350411L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_AdditiveExpression_in_synpred206_Java19342 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_operators_UnaryModificationOperator_in_synpred210_Java19761 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Class_in_synpred218_Java22456 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Interface_in_synpred219_Java22466 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Enumeration_in_synpred220_Java22476 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_NamespaceClassifierReference_in_synpred232_Java22638 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_types_ClassifierReference_in_synpred233_Java22648 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Class_in_synpred242_Java22759 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Interface_in_synpred243_Java22769 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Enumeration_in_synpred244_Java22779 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Annotation_in_synpred245_Java22789 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Block_in_synpred246_Java22799 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_Constructor_in_synpred247_Java22809 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_InterfaceMethod_in_synpred248_Java22819 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_ClassMethod_in_synpred249_Java22829 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_annotations_AnnotationAttribute_in_synpred250_Java22839 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_members_Field_in_synpred251_Java22849 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Class_in_synpred263_Java23032 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Interface_in_synpred264_Java23042 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Enumeration_in_synpred265_Java23052 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_classifiers_Annotation_in_synpred266_Java23062 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_Block_in_synpred267_Java23072 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_LocalVariableStatement_in_synpred268_Java23082 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_ForLoop_in_synpred271_Java23112 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_ForEachLoop_in_synpred272_Java23122 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_WhileLoop_in_synpred273_Java23132 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_DoWhileLoop_in_synpred274_Java23142 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_SynchronizedBlock_in_synpred276_Java23162 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_statements_JumpLabel_in_synpred283_Java23232 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_parameters_OrdinaryParameter_in_synpred284_Java23263 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_instantiations_NewConstructorCall_in_synpred289_Java23355 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall_in_synpred290_Java23365 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped_in_synpred291_Java23375 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize_in_synpred293_Java23395 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_MethodCall_in_synpred294_Java23405 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_IdentifierReference_in_synpred295_Java23415 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_SelfReference_in_synpred297_Java23435 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_variables_LocalVariable_in_synpred309_Java23618 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_SuffixUnaryModificationExpression_in_synpred334_Java24057 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_instantiations_NewConstructorCall_in_synpred336_Java24098 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_instantiations_ExplicitConstructorCall_in_synpred337_Java24108 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationByValuesTyped_in_synpred338_Java24118 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_arrays_ArrayInstantiationBySize_in_synpred340_Java24138 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_MethodCall_in_synpred341_Java24148 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_IdentifierReference_in_synpred342_Java24158 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_references_SelfReference_in_synpred344_Java24178 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_CastExpression_in_synpred347_Java24208 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_parse_org_emftext_language_java_expressions_NestedExpression_in_synpred348_Java24218 = new BitSet(new long[]{0x0000000000000002L}); + +} \ No newline at end of file