JavaParser.java
// $ANTLR 3.5.2 org/argouml/language/java/reveng/Java.g 2025-01-03 08:59:46
package org.argouml.language.java.reveng;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
/**
* This is the Java 1.5 grammar for reverse engineering Java source code
* to a UML model.
*
* <p>It is generated by the ANTLR V.3 parser generator (www.antlr.org).
* Antlr uses the Java.g grammar file to generate the JavaParser.java
* parser.
*
* <p><strong>DO NOT MODIFY JavaParser.java</strong>
*
* <p>If you need to modify how Argo parses Java files then:
* <ol>
* <li>modify <strong>Java.g</strong>. See the antlr website
* for examples of how to modify a antlr grammar file</li>
* <li>save Java.g and run argo's build script with the
* "<strong>generateparser</strong>" target.</li>
* <li>build argo again.</li>
* </ol>
*
* <pre>
* --------- original notes: -------------------------------------------
*
* This is a very close representation of the spec; the changes
* are comestic (remove left recursion) and also fixes (the spec
* isn't exactly perfect). I have run this on the 1.4.2 source
* and some nasty looking enums from 1.5, but have not really
* tested for 1.5 compatibility.
*
* I built this with: java -Xmx100M org.antlr.Tool java.g
* and got two errors that are ok (for now):
* java.g:691:9: Decision can match input such as
* "'0'..'9'{'E', 'e'}{'+', '-'}'0'..'9'{'D', 'F', 'd', 'f'}"
* using multiple alternatives: 3, 4
* As a result, alternative(s) 4 were disabled for that input
* java.g:734:35: Decision can match input such as "{'$', 'A'..'Z',
* '_', 'a'..'z', '\u00C0'..'\u00D6', '\u00D8'..'\u00F6',
* '\u00F8'..'\u1FFF', '\u3040'..'\u318F', '\u3300'..'\u337F',
* '\u3400'..'\u3D2D', '\u4E00'..'\u9FFF', '\uF900'..'\uFAFF'}"
* using multiple alternatives: 1, 2
* As a result, alternative(s) 2 were disabled for that input
*
* You can turn enum on/off as a keyword :)
*
* Version 1.0 -- initial release July 5, 2006 (requires 3.0b2 or higher)
*
* Primary author: Terence Parr, July 2006
*
* Version 1.0.1 -- corrections by Koen Vanderkimpen & Marko van Dooren,
* October 25, 2006;
* fixed normalInterfaceDeclaration: now uses typeParameters instead
* of typeParameter (according to JLS, 3rd edition)
* fixed castExpression: no longer allows expression next to type
* (according to semantics in JLS, in contrast with syntax in JLS)
*
* Version 1.0.2 -- Terence Parr, Nov 27, 2006
* java spec I built this from had some bizarre for-loop control.
* Looked weird and so I looked elsewhere...Yep, it's messed up.
* simplified.
*
* Version 1.0.3 -- Chris Hogue, Feb 26, 2007
* Factored out an annotationName rule and used it in the annotation rule.
* Not sure why, but typeName wasn't recognizing references to inner
* annotations (e.g. @InterfaceName.InnerAnnotation())
* Factored out the elementValue section of an annotation reference. Created
* elementValuePair and elementValuePairs rules, then used them in the
* annotation rule. Allows it to recognize annotation references with
* multiple, comma separated attributes.
* Updated elementValueArrayInitializer so that it allows multiple elements.
* (It was only allowing 0 or 1 element).
* Updated localVariableDeclaration to allow annotations. Interestingly the JLS
* doesn't appear to indicate this is legal, but it does work as of at least
* JDK 1.5.0_06.
* Moved the Identifier portion of annotationTypeElementRest to annotationMethodRest.
* Because annotationConstantRest already references variableDeclarator which
* has the Identifier portion in it, the parser would fail on constants in
* annotation definitions because it expected two identifiers.
* Added optional trailing ';' to the alternatives in annotationTypeElementRest.
* Wouldn't handle an inner interface that has a trailing ';'.
* Swapped the expression and type rule reference order in castExpression to
* make it check for genericized casts first. It was failing to recognize a
* statement like "Class<Byte> TYPE = (Class<Byte>)...;" because it was seeing
* 'Class<Byte' in the cast expression as a less than expression, then failing
* on the '>'.
* Changed createdName to use typeArguments instead of nonWildcardTypeArguments.
* Again, JLS doesn't seem to allow this, but java.lang.Class has an example of
* of this construct.
* Changed the 'this' alternative in primary to allow 'identifierSuffix' rather than
* just 'arguments'. The case it couldn't handle was a call to an explicit
* generic method invocation (e.g. this.<E>doSomething()). Using identifierSuffix
* may be overly aggressive--perhaps should create a more constrained thisSuffix rule?
*
* Version 1.0.4 -- Hiroaki Nakamura, May 3, 2007
*
* Fixed formalParameterDecls, localVariableDeclaration, forInit,
* and forVarControl to use variableModifier* not 'final'? (annotation)?
*
* Version 1.0.5 -- Terence, June 21, 2007
* --a[i].foo didn't work. Fixed unaryExpression
*
* Version 1.0.6 -- John Ridgway, March 17, 2008
* Made "assert" a switchable keyword like "enum".
* Fixed compilationUnit to disallow "annotation importDeclaration ...".
* Changed "Identifier ('.' Identifier)*" to "qualifiedName" in more
* places.
* Changed modifier* and/or variableModifier* to classOrInterfaceModifiers,
* modifiers or variableModifiers, as appropriate.
* Renamed "bound" to "typeBound" to better match language in the JLS.
* Added "memberDeclaration" which rewrites to methodDeclaration or
* fieldDeclaration and pulled type into memberDeclaration. So we parse
* type and then move on to decide whether we're dealing with a field
* or a method.
* Modified "constructorDeclaration" to use "constructorBody" instead of
* "methodBody". constructorBody starts with explicitConstructorInvocation,
* then goes on to blockStatement*. Pulling explicitConstructorInvocation
* out of expressions allowed me to simplify "primary".
* Changed variableDeclarator to simplify it.
* Changed type to use classOrInterfaceType, thus simplifying it; of course
* I then had to add classOrInterfaceType, but it is used in several
* places.
* Fixed annotations, old version allowed "@X(y,z)", which is illegal.
* Added optional comma to end of "elementValueArrayInitializer"; as per JLS.
* Changed annotationTypeElementRest to use normalClassDeclaration and
* normalInterfaceDeclaration rather than classDeclaration and
* interfaceDeclaration, thus getting rid of a couple of grammar ambiguities.
* Split localVariableDeclaration into localVariableDeclarationStatement
* (includes the terminating semi-colon) and localVariableDeclaration.
* This allowed me to use localVariableDeclaration in "forInit" clauses,
* simplifying them.
* Changed switchBlockStatementGroup to use multiple labels. This adds an
* ambiguity, but if one uses appropriately greedy parsing it yields the
* parse that is closest to the meaning of the switch statement.
* Renamed "forVarControl" to "enhancedForControl" -- JLS language.
* Added semantic predicates to test for shift operations rather than other
* things. Thus, for instance, the string "< <" will never be treated
* as a left-shift operator.
* In "creator" we rule out "nonWildcardTypeArguments" on arrayCreation,
* which are illegal.
* Moved "nonWildcardTypeArguments into innerCreator.
* Removed 'super' superSuffix from explicitGenericInvocation, since that
* is only used in explicitConstructorInvocation at the beginning of a
* constructorBody. (This is part of the simplification of expressions
* mentioned earlier.)
* Simplified primary (got rid of those things that are only used in
* explicitConstructorInvocation).
* Lexer -- removed "Exponent?" from FloatingPointLiteral choice 4, since it
* led to an ambiguity.
*
* This grammar successfully parses every .java file in the JDK 1.5 source
* tree (excluding those whose file names include '-', which are not
* valid Java compilation units).
*
* Known remaining problems:
* "Letter" and "JavaIDDigit" are wrong. The actual specification of
* "Letter" should be "a character for which the method
* Character.isJavaIdentifierStart(int) returns true." A "Java
* letter-or-digit is a character for which the method
* Character.isJavaIdentifierPart(int) returns true."
*
* --------- further ArgoUML notes: -----------------------------------
*
* Modified by Thomas Neustupny (April 18, 2008)
* o Added a lot of stuff for the UML Modeler from the former Antlr 2 grammar
* o Not passing typeArguments and typeParameters to the Modeler (don't how they map to UML)
* o from Tom Morris, who did this in the former Antlr 2 grammar:
* Added support to pass variableLengthParameterDeclaration to Modeler
* o from Tom Morris, who did this in the former Antlr 2 grammar:
* Added stubs for typeParameters, typeArguments, annotations and
* annotationDefinitions and so we can warn when they're skipped.
*
* This grammar is in the PUBLIC DOMAIN
* </pre>
*/
@SuppressWarnings("all")
public class JavaParser extends Parser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "ASSERT", "COMMENT", "CharacterLiteral",
"DecimalLiteral", "EMPTY_COMMENT", "ENUM", "EscapeSequence", "Exponent",
"FloatTypeSuffix", "FloatingPointLiteral", "HexDigit", "HexLiteral", "Identifier",
"IntegerTypeSuffix", "JAVADOC", "JavaIDDigit", "LINE_COMMENT", "Letter",
"OctalEscape", "OctalLiteral", "StringLiteral", "UnicodeEscape", "WS",
"'!'", "'!='", "'%'", "'%='", "'&&'", "'&'", "'&='", "'('", "')'", "'*'",
"'*='", "'+'", "'++'", "'+='", "','", "'-'", "'--'", "'-='", "'.'", "'...'",
"'/'", "'/='", "':'", "';'", "'<'", "'='", "'=='", "'>'", "'?'", "'@'",
"'['", "']'", "'^'", "'^='", "'abstract'", "'boolean'", "'break'", "'byte'",
"'case'", "'catch'", "'char'", "'class'", "'continue'", "'default'", "'do'",
"'double'", "'else'", "'extends'", "'false'", "'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'", "'true'", "'try'", "'void'", "'volatile'",
"'while'", "'{'", "'|'", "'|='", "'||'", "'}'", "'~'"
};
public static final int EOF=-1;
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 T__111=111;
public static final int T__112=112;
public static final int T__113=113;
public static final int T__114=114;
public static final int T__115=115;
public static final int ASSERT=4;
public static final int COMMENT=5;
public static final int CharacterLiteral=6;
public static final int DecimalLiteral=7;
public static final int EMPTY_COMMENT=8;
public static final int ENUM=9;
public static final int EscapeSequence=10;
public static final int Exponent=11;
public static final int FloatTypeSuffix=12;
public static final int FloatingPointLiteral=13;
public static final int HexDigit=14;
public static final int HexLiteral=15;
public static final int Identifier=16;
public static final int IntegerTypeSuffix=17;
public static final int JAVADOC=18;
public static final int JavaIDDigit=19;
public static final int LINE_COMMENT=20;
public static final int Letter=21;
public static final int OctalEscape=22;
public static final int OctalLiteral=23;
public static final int StringLiteral=24;
public static final int UnicodeEscape=25;
public static final int WS=26;
// delegates
public Parser[] getDelegates() {
return new Parser[] {};
}
// delegators
public JavaParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public JavaParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
this.state.ruleMemo = new HashMap[409+1];
}
@Override public String[] getTokenNames() { return JavaParser.tokenNames; }
@Override public String getGrammarFileName() { return "org/argouml/language/java/reveng/Java.g"; }
/**
* Counts the number of LT seen in the typeArguments production.
* It is used in semantic predicates to ensure we have seen
* enough closing '>' characters; which actually may have been
* either GT, SR or BSR tokens.
*/
private int ltCounter = 0;
// Constants for access modifiers according to the JVM specs chapter 4
public static final short ACC_PUBLIC = 0x0001;
public static final short ACC_PRIVATE = 0x0002;
public static final short ACC_PROTECTED = 0x0004;
public static final short ACC_STATIC = 0x0008;
public static final short ACC_FINAL = 0x0010;
public static final short ACC_SUPER = 0x0020;
public static final short ACC_VOLATILE = 0x0040;
public static final short ACC_TRANSIENT = 0x0080;
public static final short ACC_NATIVE = 0x0100;
public static final short ACC_INTERFACE = 0x0200;
public static final short ACC_ABSTRACT = 0x0400;
/** Parser mode for the first pass of the import from sources */
public static final int MODE_IMPORT_PASS1 = 1;
/** Parser mode for the second pass of the import from sources */
public static final int MODE_IMPORT_PASS2 = 2;
/** Parser mode for the source code generation in update mode */
public static final int MODE_GENERATION_UPDATE = 4;
/** Parser mode for the reverse engineering of a sequence diagram */
public static final int MODE_REVENG_SEQUENCE = 8;
/** The parser mode, that controls which semantic expressions will be active */
private int parserMode = 0;
/** The name of the variable to which a created object (new...) is assigned to */
private String createdObjectVarName = null;
/** Import details level */
private int level = 2;
/** Set the parser mode, to control which semantic expressions will be active */
public void setParserMode(int mode) {
parserMode = mode;
}
// This one is not(!) in the JVM specs, but required
public static final short ACC_SYNCHRONIZED = 0x0020;
/**
* To get direct access to the lexer (for the javadoc
* comments), we store a reference to it.
*/
private JavaLexer _lexer = null;
/**
* A buffer to hold the last parsed javadoc comment.
*/
String _javadocComment = null;
/**
* Return (and consume) the last available Javadoc Comment.
*
* @return The last parsed javadoc comment.
*/
protected String getJavadocComment() {
String result = _javadocComment;
_javadocComment = null; // Since we consume the comment, the buffer is reset.
return result;
}
/**
* Updates the last parsed javadoc comment.
*/
private void updateJavadocComment() {
int i = input.index();
if (i == 0) {
return;
}
Token t = (Token)input.get(--i);
while (i > 0 && t.getType()== _lexer.WS) {
t = (Token)input.get(--i);
}
if (t.getType() == _lexer.JAVADOC) {
_javadocComment = t.getText();
}
}
private Modeller _modeller;
public Modeller getModeller() {
return _modeller;
}
public void setModeller(Modeller modeller) {
_modeller = modeller;
Object lvl = modeller.getAttribute("level");
if (lvl != null) {
level = ((Integer)lvl).intValue();
}
}
// A reference to the last added Operation (here: method)
private Object _currentMethod = null;
/**
* get reference to the last added Operation (here: method)
*/
Object getMethod() {
return _currentMethod;
}
/**
* set reference to the last added Operation (here: method)
*/
void setMethod(Object method) {
_currentMethod = method;
}
// A method body
private String _methodBody = null;
/**
* get last method body
*/
String getBody() {
return _methodBody;
}
/**
* set last method body
*/
void setBody(String body) {
_methodBody = body;
}
// A flag to indicate if we are inside a compoundStatement
private boolean _inCompoundStatement = false;
/**
* set if we are inside a compoundStatement
*/
void setIsInCompoundStatement(boolean flag) {
_inCompoundStatement = flag;
}
/**
* check if we are inside a compoundStatement
*/
boolean isInCompoundStatement() {
return _inCompoundStatement;
}
/**
* Add a call that appears after a dot. This is needed for the RE of
* sequence diagrams and is currently not used. Should be called in the
* identifierSuffix rule.
*/
private void addDotCall(String id, String thisOrSuper, boolean parenths) {
StringBuffer sb = new StringBuffer();
List<String> calls = getModeller().getMethodCalls();
String prev = calls.get(calls.size() - 1);
if (thisOrSuper != null) {
sb.append(thisOrSuper);
} else if (prev != null) {
if (parenths) {
sb.append('(');
}
sb.append(prev).append("()");
if (parenths) {
sb.append(')');
}
sb.append('.');
}
sb.append(id);
getModeller().addCall(sb.toString());
}
// $ANTLR start "compilationUnit"
// org/argouml/language/java/reveng/Java.g:425:1: compilationUnit[Modeller modeller, JavaLexer lexer] : ( ( '@' )=> annotations ( packageDeclaration ( importDeclaration )* ( typeDeclaration )* | classOrInterfaceDeclaration ( typeDeclaration )* ) | ( packageDeclaration )? ( importDeclaration )* ( typeDeclaration )* );
public final void compilationUnit(Modeller modeller, JavaLexer lexer) throws RecognitionException {
int compilationUnit_StartIndex = input.index();
setModeller(modeller);
_lexer = lexer;
if (state.backtracking == 0) {
getModeller().addComponent();
}
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 1) ) { return; }
// org/argouml/language/java/reveng/Java.g:433:5: ( ( '@' )=> annotations ( packageDeclaration ( importDeclaration )* ( typeDeclaration )* | classOrInterfaceDeclaration ( typeDeclaration )* ) | ( packageDeclaration )? ( importDeclaration )* ( typeDeclaration )* )
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==56) ) {
int LA8_1 = input.LA(2);
if ( (LA8_1==85) ) {
alt8=2;
}
else if ( (LA8_1==Identifier) ) {
int LA8_17 = input.LA(3);
if ( (synpred1_Java()) ) {
alt8=1;
}
else if ( (true) ) {
alt8=2;
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 8, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA8_0==EOF||LA8_0==ENUM||LA8_0==50||LA8_0==61||LA8_0==68||LA8_0==76||LA8_0==82||LA8_0==85||(LA8_0 >= 90 && LA8_0 <= 93)||(LA8_0 >= 96 && LA8_0 <= 97)) ) {
alt8=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 8, 0, input);
throw nvae;
}
switch (alt8) {
case 1 :
// org/argouml/language/java/reveng/Java.g:433:9: ( '@' )=> annotations ( packageDeclaration ( importDeclaration )* ( typeDeclaration )* | classOrInterfaceDeclaration ( typeDeclaration )* )
{
pushFollow(FOLLOW_annotations_in_compilationUnit112);
annotations();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:434:9: ( packageDeclaration ( importDeclaration )* ( typeDeclaration )* | classOrInterfaceDeclaration ( typeDeclaration )* )
int alt4=2;
int LA4_0 = input.LA(1);
if ( (LA4_0==90) ) {
alt4=1;
}
else if ( (LA4_0==ENUM||LA4_0==56||LA4_0==61||LA4_0==68||LA4_0==76||LA4_0==85||(LA4_0 >= 91 && LA4_0 <= 93)||(LA4_0 >= 96 && LA4_0 <= 97)) ) {
alt4=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 4, 0, input);
throw nvae;
}
switch (alt4) {
case 1 :
// org/argouml/language/java/reveng/Java.g:434:13: packageDeclaration ( importDeclaration )* ( typeDeclaration )*
{
pushFollow(FOLLOW_packageDeclaration_in_compilationUnit126);
packageDeclaration();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:434:32: ( importDeclaration )*
loop1:
while (true) {
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==82) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// org/argouml/language/java/reveng/Java.g:434:32: importDeclaration
{
pushFollow(FOLLOW_importDeclaration_in_compilationUnit128);
importDeclaration();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop1;
}
}
// org/argouml/language/java/reveng/Java.g:434:51: ( typeDeclaration )*
loop2:
while (true) {
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==ENUM||LA2_0==50||LA2_0==56||LA2_0==61||LA2_0==68||LA2_0==76||LA2_0==85||(LA2_0 >= 91 && LA2_0 <= 93)||(LA2_0 >= 96 && LA2_0 <= 97)) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// org/argouml/language/java/reveng/Java.g:434:51: typeDeclaration
{
pushFollow(FOLLOW_typeDeclaration_in_compilationUnit131);
typeDeclaration();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop2;
}
}
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:435:13: classOrInterfaceDeclaration ( typeDeclaration )*
{
pushFollow(FOLLOW_classOrInterfaceDeclaration_in_compilationUnit146);
classOrInterfaceDeclaration();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:435:41: ( typeDeclaration )*
loop3:
while (true) {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==ENUM||LA3_0==50||LA3_0==56||LA3_0==61||LA3_0==68||LA3_0==76||LA3_0==85||(LA3_0 >= 91 && LA3_0 <= 93)||(LA3_0 >= 96 && LA3_0 <= 97)) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// org/argouml/language/java/reveng/Java.g:435:41: typeDeclaration
{
pushFollow(FOLLOW_typeDeclaration_in_compilationUnit148);
typeDeclaration();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop3;
}
}
}
break;
}
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:437:9: ( packageDeclaration )? ( importDeclaration )* ( typeDeclaration )*
{
// org/argouml/language/java/reveng/Java.g:437:9: ( packageDeclaration )?
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==90) ) {
alt5=1;
}
switch (alt5) {
case 1 :
// org/argouml/language/java/reveng/Java.g:437:10: packageDeclaration
{
pushFollow(FOLLOW_packageDeclaration_in_compilationUnit169);
packageDeclaration();
state._fsp--;
if (state.failed) return;
}
break;
}
// org/argouml/language/java/reveng/Java.g:437:31: ( importDeclaration )*
loop6:
while (true) {
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==82) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// org/argouml/language/java/reveng/Java.g:437:31: importDeclaration
{
pushFollow(FOLLOW_importDeclaration_in_compilationUnit173);
importDeclaration();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop6;
}
}
// org/argouml/language/java/reveng/Java.g:437:50: ( typeDeclaration )*
loop7:
while (true) {
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==ENUM||LA7_0==50||LA7_0==56||LA7_0==61||LA7_0==68||LA7_0==76||LA7_0==85||(LA7_0 >= 91 && LA7_0 <= 93)||(LA7_0 >= 96 && LA7_0 <= 97)) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// org/argouml/language/java/reveng/Java.g:437:50: typeDeclaration
{
pushFollow(FOLLOW_typeDeclaration_in_compilationUnit176);
typeDeclaration();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop7;
}
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 1, compilationUnit_StartIndex); }
}
}
// $ANTLR end "compilationUnit"
// $ANTLR start "packageDeclaration"
// org/argouml/language/java/reveng/Java.g:441:1: packageDeclaration : 'package' packageName= qualifiedName ';' ;
public final void packageDeclaration() throws RecognitionException {
int packageDeclaration_StartIndex = input.index();
ParserRuleReturnScope packageName =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 2) ) { return; }
// org/argouml/language/java/reveng/Java.g:442:5: ( 'package' packageName= qualifiedName ';' )
// org/argouml/language/java/reveng/Java.g:442:9: 'package' packageName= qualifiedName ';'
{
match(input,90,FOLLOW_90_in_packageDeclaration197); if (state.failed) return;
pushFollow(FOLLOW_qualifiedName_in_packageDeclaration201);
packageName=qualifiedName();
state._fsp--;
if (state.failed) return;
match(input,50,FOLLOW_50_in_packageDeclaration203); if (state.failed) return;
if ( state.backtracking==0 ) {
getModeller().addPackage((packageName!=null?input.toString(packageName.start,packageName.stop):null));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 2, packageDeclaration_StartIndex); }
}
}
// $ANTLR end "packageDeclaration"
// $ANTLR start "importDeclaration"
// org/argouml/language/java/reveng/Java.g:449:1: importDeclaration : 'import' ( 'static' )? importName= qualifiedName ( '.' '*' )? ';' ;
public final void importDeclaration() throws RecognitionException {
int importDeclaration_StartIndex = input.index();
ParserRuleReturnScope importName =null;
StringBuffer sb = new StringBuffer(80);
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 3) ) { return; }
// org/argouml/language/java/reveng/Java.g:453:5: ( 'import' ( 'static' )? importName= qualifiedName ( '.' '*' )? ';' )
// org/argouml/language/java/reveng/Java.g:453:9: 'import' ( 'static' )? importName= qualifiedName ( '.' '*' )? ';'
{
match(input,82,FOLLOW_82_in_importDeclaration250); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:453:18: ( 'static' )?
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==96) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// org/argouml/language/java/reveng/Java.g:453:18: 'static'
{
match(input,96,FOLLOW_96_in_importDeclaration252); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_qualifiedName_in_importDeclaration265);
importName=qualifiedName();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { sb.append((importName!=null?input.toString(importName.start,importName.stop):null)); }
// org/argouml/language/java/reveng/Java.g:455:9: ( '.' '*' )?
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==45) ) {
alt10=1;
}
switch (alt10) {
case 1 :
// org/argouml/language/java/reveng/Java.g:455:10: '.' '*'
{
match(input,45,FOLLOW_45_in_importDeclaration278); if (state.failed) return;
match(input,36,FOLLOW_36_in_importDeclaration280); if (state.failed) return;
if ( state.backtracking==0 ) { sb.append(".*"); }
}
break;
}
match(input,50,FOLLOW_50_in_importDeclaration287); if (state.failed) return;
if ( state.backtracking==0 ) {
getModeller().addImport(sb.toString(),
(parserMode == MODE_IMPORT_PASS2));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 3, importDeclaration_StartIndex); }
}
}
// $ANTLR end "importDeclaration"
// $ANTLR start "typeDeclaration"
// org/argouml/language/java/reveng/Java.g:463:1: typeDeclaration : ( classOrInterfaceDeclaration | ';' );
public final void typeDeclaration() throws RecognitionException {
int typeDeclaration_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 4) ) { return; }
// org/argouml/language/java/reveng/Java.g:464:5: ( classOrInterfaceDeclaration | ';' )
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==ENUM||LA11_0==56||LA11_0==61||LA11_0==68||LA11_0==76||LA11_0==85||(LA11_0 >= 91 && LA11_0 <= 93)||(LA11_0 >= 96 && LA11_0 <= 97)) ) {
alt11=1;
}
else if ( (LA11_0==50) ) {
alt11=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 11, 0, input);
throw nvae;
}
switch (alt11) {
case 1 :
// org/argouml/language/java/reveng/Java.g:464:9: classOrInterfaceDeclaration
{
pushFollow(FOLLOW_classOrInterfaceDeclaration_in_typeDeclaration317);
classOrInterfaceDeclaration();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:465:9: ';'
{
match(input,50,FOLLOW_50_in_typeDeclaration327); if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 4, typeDeclaration_StartIndex); }
}
}
// $ANTLR end "typeDeclaration"
// $ANTLR start "classOrInterfaceDeclaration"
// org/argouml/language/java/reveng/Java.g:468:1: classOrInterfaceDeclaration : m= classOrInterfaceModifiers ( classDeclaration[getJavadocComment(), m] | interfaceDeclaration[getJavadocComment(), m] ) ;
public final void classOrInterfaceDeclaration() throws RecognitionException {
int classOrInterfaceDeclaration_StartIndex = input.index();
short m =0;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 5) ) { return; }
// org/argouml/language/java/reveng/Java.g:469:5: (m= classOrInterfaceModifiers ( classDeclaration[getJavadocComment(), m] | interfaceDeclaration[getJavadocComment(), m] ) )
// org/argouml/language/java/reveng/Java.g:469:9: m= classOrInterfaceModifiers ( classDeclaration[getJavadocComment(), m] | interfaceDeclaration[getJavadocComment(), m] )
{
pushFollow(FOLLOW_classOrInterfaceModifiers_in_classOrInterfaceDeclaration348);
m=classOrInterfaceModifiers();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:470:9: ( classDeclaration[getJavadocComment(), m] | interfaceDeclaration[getJavadocComment(), m] )
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==ENUM||LA12_0==68) ) {
alt12=1;
}
else if ( (LA12_0==56||LA12_0==85) ) {
alt12=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 12, 0, input);
throw nvae;
}
switch (alt12) {
case 1 :
// org/argouml/language/java/reveng/Java.g:470:13: classDeclaration[getJavadocComment(), m]
{
pushFollow(FOLLOW_classDeclaration_in_classOrInterfaceDeclaration362);
classDeclaration(getJavadocComment(), m);
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:471:13: interfaceDeclaration[getJavadocComment(), m]
{
pushFollow(FOLLOW_interfaceDeclaration_in_classOrInterfaceDeclaration377);
interfaceDeclaration(getJavadocComment(), m);
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 5, classOrInterfaceDeclaration_StartIndex); }
}
}
// $ANTLR end "classOrInterfaceDeclaration"
// $ANTLR start "classOrInterfaceModifiers"
// org/argouml/language/java/reveng/Java.g:475:1: classOrInterfaceModifiers returns [short m = 0] : (sub_m= classOrInterfaceModifier )* ;
public final short classOrInterfaceModifiers() throws RecognitionException {
short m = 0;
int classOrInterfaceModifiers_StartIndex = input.index();
short sub_m =0;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 6) ) { return m; }
// org/argouml/language/java/reveng/Java.g:476:5: ( (sub_m= classOrInterfaceModifier )* )
// org/argouml/language/java/reveng/Java.g:476:9: (sub_m= classOrInterfaceModifier )*
{
if ( state.backtracking==0 ) {
updateJavadocComment();
}
// org/argouml/language/java/reveng/Java.g:479:9: (sub_m= classOrInterfaceModifier )*
loop13:
while (true) {
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==56) ) {
int LA13_4 = input.LA(2);
if ( (LA13_4==Identifier) ) {
alt13=1;
}
}
else if ( (LA13_0==61||LA13_0==76||(LA13_0 >= 91 && LA13_0 <= 93)||(LA13_0 >= 96 && LA13_0 <= 97)) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// org/argouml/language/java/reveng/Java.g:479:13: sub_m= classOrInterfaceModifier
{
pushFollow(FOLLOW_classOrInterfaceModifier_in_classOrInterfaceModifiers431);
sub_m=classOrInterfaceModifier();
state._fsp--;
if (state.failed) return m;
if ( state.backtracking==0 ) {
m |= sub_m;
}
}
break;
default :
break loop13;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 6, classOrInterfaceModifiers_StartIndex); }
}
return m;
}
// $ANTLR end "classOrInterfaceModifiers"
// $ANTLR start "classOrInterfaceModifier"
// org/argouml/language/java/reveng/Java.g:486:1: classOrInterfaceModifier returns [short m = 0] : ( annotation | 'public' | 'protected' | 'private' | 'abstract' | 'static' | 'final' | 'strictfp' );
public final short classOrInterfaceModifier() throws RecognitionException {
short m = 0;
int classOrInterfaceModifier_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 7) ) { return m; }
// org/argouml/language/java/reveng/Java.g:487:5: ( annotation | 'public' | 'protected' | 'private' | 'abstract' | 'static' | 'final' | 'strictfp' )
int alt14=8;
switch ( input.LA(1) ) {
case 56:
{
alt14=1;
}
break;
case 93:
{
alt14=2;
}
break;
case 92:
{
alt14=3;
}
break;
case 91:
{
alt14=4;
}
break;
case 61:
{
alt14=5;
}
break;
case 96:
{
alt14=6;
}
break;
case 76:
{
alt14=7;
}
break;
case 97:
{
alt14=8;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return m;}
NoViableAltException nvae =
new NoViableAltException("", 14, 0, input);
throw nvae;
}
switch (alt14) {
case 1 :
// org/argouml/language/java/reveng/Java.g:487:9: annotation
{
pushFollow(FOLLOW_annotation_in_classOrInterfaceModifier479);
annotation();
state._fsp--;
if (state.failed) return m;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:488:9: 'public'
{
match(input,93,FOLLOW_93_in_classOrInterfaceModifier489); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_PUBLIC; }
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:489:9: 'protected'
{
match(input,92,FOLLOW_92_in_classOrInterfaceModifier505); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_PROTECTED; }
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:490:9: 'private'
{
match(input,91,FOLLOW_91_in_classOrInterfaceModifier518); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_PRIVATE; }
}
break;
case 5 :
// org/argouml/language/java/reveng/Java.g:491:9: 'abstract'
{
match(input,61,FOLLOW_61_in_classOrInterfaceModifier533); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_ABSTRACT; }
}
break;
case 6 :
// org/argouml/language/java/reveng/Java.g:492:9: 'static'
{
match(input,96,FOLLOW_96_in_classOrInterfaceModifier547); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_STATIC; }
}
break;
case 7 :
// org/argouml/language/java/reveng/Java.g:493:9: 'final'
{
match(input,76,FOLLOW_76_in_classOrInterfaceModifier563); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_FINAL; }
}
break;
case 8 :
// org/argouml/language/java/reveng/Java.g:494:9: 'strictfp'
{
match(input,97,FOLLOW_97_in_classOrInterfaceModifier581); if (state.failed) return m;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 7, classOrInterfaceModifier_StartIndex); }
}
return m;
}
// $ANTLR end "classOrInterfaceModifier"
// $ANTLR start "modifiers"
// org/argouml/language/java/reveng/Java.g:497:1: modifiers returns [short m = 0] : (sub_m= modifier )* ;
public final short modifiers() throws RecognitionException {
short m = 0;
int modifiers_StartIndex = input.index();
short sub_m =0;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 8) ) { return m; }
// org/argouml/language/java/reveng/Java.g:498:5: ( (sub_m= modifier )* )
// org/argouml/language/java/reveng/Java.g:498:9: (sub_m= modifier )*
{
if ( state.backtracking==0 ) {
updateJavadocComment();
}
// org/argouml/language/java/reveng/Java.g:501:9: (sub_m= modifier )*
loop15:
while (true) {
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==56) ) {
int LA15_6 = input.LA(2);
if ( (LA15_6==Identifier) ) {
alt15=1;
}
}
else if ( (LA15_0==61||LA15_0==76||LA15_0==87||(LA15_0 >= 91 && LA15_0 <= 93)||(LA15_0 >= 96 && LA15_0 <= 97)||LA15_0==100||LA15_0==104||LA15_0==108) ) {
alt15=1;
}
switch (alt15) {
case 1 :
// org/argouml/language/java/reveng/Java.g:501:13: sub_m= modifier
{
pushFollow(FOLLOW_modifier_in_modifiers620);
sub_m=modifier();
state._fsp--;
if (state.failed) return m;
if ( state.backtracking==0 ) {
m |= sub_m;
}
}
break;
default :
break loop15;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 8, modifiers_StartIndex); }
}
return m;
}
// $ANTLR end "modifiers"
// $ANTLR start "classDeclaration"
// org/argouml/language/java/reveng/Java.g:509:1: classDeclaration[String javadoc, short modifiers] : ( normalClassDeclaration[javadoc, modifiers] | enumDeclaration[javadoc, modifiers] );
public final void classDeclaration(String javadoc, short modifiers) throws RecognitionException {
int classDeclaration_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 9) ) { return; }
// org/argouml/language/java/reveng/Java.g:510:5: ( normalClassDeclaration[javadoc, modifiers] | enumDeclaration[javadoc, modifiers] )
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==68) ) {
alt16=1;
}
else if ( (LA16_0==ENUM) ) {
alt16=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 16, 0, input);
throw nvae;
}
switch (alt16) {
case 1 :
// org/argouml/language/java/reveng/Java.g:510:9: normalClassDeclaration[javadoc, modifiers]
{
pushFollow(FOLLOW_normalClassDeclaration_in_classDeclaration666);
normalClassDeclaration(javadoc, modifiers);
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:511:9: enumDeclaration[javadoc, modifiers]
{
pushFollow(FOLLOW_enumDeclaration_in_classDeclaration677);
enumDeclaration(javadoc, modifiers);
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 9, classDeclaration_StartIndex); }
}
}
// $ANTLR end "classDeclaration"
// $ANTLR start "normalClassDeclaration"
// org/argouml/language/java/reveng/Java.g:514:1: normalClassDeclaration[String javadoc, short modifiers] : 'class' className= Identifier (tp= typeParameters )? ( 'extends' t= type )? ( 'implements' tl= typeList )? classBody ;
public final void normalClassDeclaration(String javadoc, short modifiers) throws RecognitionException {
int normalClassDeclaration_StartIndex = input.index();
Token className=null;
List<String> tp =null;
String t =null;
List<String> tl =null;
String superClassName = null;
List<String> ic = new ArrayList<String>();
List<String> tparam = new ArrayList<String>();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 10) ) { return; }
// org/argouml/language/java/reveng/Java.g:520:5: ( 'class' className= Identifier (tp= typeParameters )? ( 'extends' t= type )? ( 'implements' tl= typeList )? classBody )
// org/argouml/language/java/reveng/Java.g:520:9: 'class' className= Identifier (tp= typeParameters )? ( 'extends' t= type )? ( 'implements' tl= typeList )? classBody
{
match(input,68,FOLLOW_68_in_normalClassDeclaration710); if (state.failed) return;
className=(Token)match(input,Identifier,FOLLOW_Identifier_in_normalClassDeclaration714); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:521:9: (tp= typeParameters )?
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==51) ) {
alt17=1;
}
switch (alt17) {
case 1 :
// org/argouml/language/java/reveng/Java.g:521:10: tp= typeParameters
{
pushFollow(FOLLOW_typeParameters_in_normalClassDeclaration727);
tp=typeParameters();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { tparam = tp; }
}
break;
}
// org/argouml/language/java/reveng/Java.g:522:9: ( 'extends' t= type )?
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==74) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// org/argouml/language/java/reveng/Java.g:522:10: 'extends' t= type
{
match(input,74,FOLLOW_74_in_normalClassDeclaration743); if (state.failed) return;
pushFollow(FOLLOW_type_in_normalClassDeclaration747);
t=type();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { superClassName = t; }
}
break;
}
// org/argouml/language/java/reveng/Java.g:523:9: ( 'implements' tl= typeList )?
int alt19=2;
int LA19_0 = input.LA(1);
if ( (LA19_0==81) ) {
alt19=1;
}
switch (alt19) {
case 1 :
// org/argouml/language/java/reveng/Java.g:523:10: 'implements' tl= typeList
{
match(input,81,FOLLOW_81_in_normalClassDeclaration763); if (state.failed) return;
pushFollow(FOLLOW_typeList_in_normalClassDeclaration767);
tl=typeList();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { ic = tl; }
}
break;
}
if ( state.backtracking==0 ) {
if (!isInCompoundStatement()) {
getModeller().addClass((className!=null?className.getText():null), modifiers, tparam,
superClassName, ic, javadoc,
(parserMode == MODE_IMPORT_PASS2));
}
}
pushFollow(FOLLOW_classBody_in_normalClassDeclaration801);
classBody();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {
if (!isInCompoundStatement()) {
getModeller().popClassifier();
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 10, normalClassDeclaration_StartIndex); }
}
}
// $ANTLR end "normalClassDeclaration"
// $ANTLR start "typeParameters"
// org/argouml/language/java/reveng/Java.g:540:1: typeParameters returns [List<String> names = new ArrayList<String>()] : '<' n= typeParameter ( ',' n= typeParameter )* '>' {...}?;
public final List<String> typeParameters() throws RecognitionException {
List<String> names = new ArrayList<String>();
int typeParameters_StartIndex = input.index();
String n =null;
int currentLtLevel = ltCounter;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 11) ) { return names; }
// org/argouml/language/java/reveng/Java.g:544:5: ( '<' n= typeParameter ( ',' n= typeParameter )* '>' {...}?)
// org/argouml/language/java/reveng/Java.g:545:9: '<' n= typeParameter ( ',' n= typeParameter )* '>' {...}?
{
match(input,51,FOLLOW_51_in_typeParameters848); if (state.failed) return names;
if ( state.backtracking==0 ) { ltCounter++; }
pushFollow(FOLLOW_typeParameter_in_typeParameters879);
n=typeParameter();
state._fsp--;
if (state.failed) return names;
if ( state.backtracking==0 ) { names.add(n); }
// org/argouml/language/java/reveng/Java.g:547:9: ( ',' n= typeParameter )*
loop20:
while (true) {
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==41) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// org/argouml/language/java/reveng/Java.g:547:10: ',' n= typeParameter
{
match(input,41,FOLLOW_41_in_typeParameters897); if (state.failed) return names;
pushFollow(FOLLOW_typeParameter_in_typeParameters901);
n=typeParameter();
state._fsp--;
if (state.failed) return names;
if ( state.backtracking==0 ) { names.add(n); }
}
break;
default :
break loop20;
}
}
match(input,54,FOLLOW_54_in_typeParameters924); if (state.failed) return names;
if ( state.backtracking==0 ) { ltCounter--; }
if ( !(( currentLtLevel != 0 || ltCounter == currentLtLevel )) ) {
if (state.backtracking>0) {state.failed=true; return names;}
throw new FailedPredicateException(input, "typeParameters", " currentLtLevel != 0 || ltCounter == currentLtLevel ");
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 11, typeParameters_StartIndex); }
}
return names;
}
// $ANTLR end "typeParameters"
// $ANTLR start "typeParameter"
// org/argouml/language/java/reveng/Java.g:555:1: typeParameter returns [String type = null] : t= Identifier ( 'extends' name= typeBound )? ( 'super' name= typeBound )? ;
public final String typeParameter() throws RecognitionException {
String type = null;
int typeParameter_StartIndex = input.index();
Token t=null;
String name =null;
StringBuffer sb = new StringBuffer();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 12) ) { return type; }
// org/argouml/language/java/reveng/Java.g:559:5: (t= Identifier ( 'extends' name= typeBound )? ( 'super' name= typeBound )? )
// org/argouml/language/java/reveng/Java.g:559:9: t= Identifier ( 'extends' name= typeBound )? ( 'super' name= typeBound )?
{
t=(Token)match(input,Identifier,FOLLOW_Identifier_in_typeParameter1004); if (state.failed) return type;
if ( state.backtracking==0 ) { sb.append((t!=null?t.getText():null)); }
// org/argouml/language/java/reveng/Java.g:560:9: ( 'extends' name= typeBound )?
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==74) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// org/argouml/language/java/reveng/Java.g:560:10: 'extends' name= typeBound
{
match(input,74,FOLLOW_74_in_typeParameter1030); if (state.failed) return type;
pushFollow(FOLLOW_typeBound_in_typeParameter1034);
name=typeBound();
state._fsp--;
if (state.failed) return type;
if ( state.backtracking==0 ) { sb.append(" extends ").append(name); }
}
break;
}
// org/argouml/language/java/reveng/Java.g:562:9: ( 'super' name= typeBound )?
int alt22=2;
int LA22_0 = input.LA(1);
if ( (LA22_0==98) ) {
alt22=1;
}
switch (alt22) {
case 1 :
// org/argouml/language/java/reveng/Java.g:562:10: 'super' name= typeBound
{
match(input,98,FOLLOW_98_in_typeParameter1058); if (state.failed) return type;
pushFollow(FOLLOW_typeBound_in_typeParameter1062);
name=typeBound();
state._fsp--;
if (state.failed) return type;
if ( state.backtracking==0 ) { sb.append(" super ").append(name); }
}
break;
}
if ( state.backtracking==0 ) {
type = sb.toString();
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 12, typeParameter_StartIndex); }
}
return type;
}
// $ANTLR end "typeParameter"
// $ANTLR start "typeBound"
// org/argouml/language/java/reveng/Java.g:569:1: typeBound returns [String type = null] : name= type ( '&' name= type )* ;
public final String typeBound() throws RecognitionException {
String type = null;
int typeBound_StartIndex = input.index();
String name =null;
StringBuffer sb = new StringBuffer();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 13) ) { return type; }
// org/argouml/language/java/reveng/Java.g:573:5: (name= type ( '&' name= type )* )
// org/argouml/language/java/reveng/Java.g:573:9: name= type ( '&' name= type )*
{
pushFollow(FOLLOW_type_in_typeBound1126);
name=type();
state._fsp--;
if (state.failed) return type;
if ( state.backtracking==0 ) { sb.append(name); }
// org/argouml/language/java/reveng/Java.g:574:9: ( '&' name= type )*
loop23:
while (true) {
int alt23=2;
int LA23_0 = input.LA(1);
if ( (LA23_0==32) ) {
alt23=1;
}
switch (alt23) {
case 1 :
// org/argouml/language/java/reveng/Java.g:574:10: '&' name= type
{
match(input,32,FOLLOW_32_in_typeBound1144); if (state.failed) return type;
pushFollow(FOLLOW_type_in_typeBound1148);
name=type();
state._fsp--;
if (state.failed) return type;
if ( state.backtracking==0 ) { sb.append("&").append(name); }
}
break;
default :
break loop23;
}
}
if ( state.backtracking==0 ) {
type = sb.toString();
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 13, typeBound_StartIndex); }
}
return type;
}
// $ANTLR end "typeBound"
// $ANTLR start "enumDeclaration"
// org/argouml/language/java/reveng/Java.g:582:1: enumDeclaration[String javadoc, short modifiers] : ENUM enumName= Identifier ( 'implements' tl= typeList )? enumBody ;
public final void enumDeclaration(String javadoc, short modifiers) throws RecognitionException {
int enumDeclaration_StartIndex = input.index();
Token enumName=null;
List<String> tl =null;
List<String> ic = new ArrayList<String>();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 14) ) { return; }
// org/argouml/language/java/reveng/Java.g:586:5: ( ENUM enumName= Identifier ( 'implements' tl= typeList )? enumBody )
// org/argouml/language/java/reveng/Java.g:586:9: ENUM enumName= Identifier ( 'implements' tl= typeList )? enumBody
{
match(input,ENUM,FOLLOW_ENUM_in_enumDeclaration1200); if (state.failed) return;
enumName=(Token)match(input,Identifier,FOLLOW_Identifier_in_enumDeclaration1204); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:586:34: ( 'implements' tl= typeList )?
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==81) ) {
alt24=1;
}
switch (alt24) {
case 1 :
// org/argouml/language/java/reveng/Java.g:586:35: 'implements' tl= typeList
{
match(input,81,FOLLOW_81_in_enumDeclaration1207); if (state.failed) return;
pushFollow(FOLLOW_typeList_in_enumDeclaration1211);
tl=typeList();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { ic = tl; }
}
break;
}
if ( state.backtracking==0 ) {
if (!isInCompoundStatement()) {
getModeller().addEnumeration((enumName!=null?enumName.getText():null), modifiers,
ic, javadoc, (parserMode == MODE_IMPORT_PASS2));
}
}
pushFollow(FOLLOW_enumBody_in_enumDeclaration1245);
enumBody();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {
getModeller().popClassifier();
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 14, enumDeclaration_StartIndex); }
}
}
// $ANTLR end "enumDeclaration"
// $ANTLR start "enumBody"
// org/argouml/language/java/reveng/Java.g:600:1: enumBody : '{' ( enumConstants )? ( ',' )? ( enumBodyDeclarations )? '}' ;
public final void enumBody() throws RecognitionException {
int enumBody_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 15) ) { return; }
// org/argouml/language/java/reveng/Java.g:601:5: ( '{' ( enumConstants )? ( ',' )? ( enumBodyDeclarations )? '}' )
// org/argouml/language/java/reveng/Java.g:601:9: '{' ( enumConstants )? ( ',' )? ( enumBodyDeclarations )? '}'
{
match(input,110,FOLLOW_110_in_enumBody1274); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:601:13: ( enumConstants )?
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==Identifier||LA25_0==56) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// org/argouml/language/java/reveng/Java.g:601:13: enumConstants
{
pushFollow(FOLLOW_enumConstants_in_enumBody1276);
enumConstants();
state._fsp--;
if (state.failed) return;
}
break;
}
// org/argouml/language/java/reveng/Java.g:601:28: ( ',' )?
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==41) ) {
alt26=1;
}
switch (alt26) {
case 1 :
// org/argouml/language/java/reveng/Java.g:601:28: ','
{
match(input,41,FOLLOW_41_in_enumBody1279); if (state.failed) return;
}
break;
}
// org/argouml/language/java/reveng/Java.g:601:33: ( enumBodyDeclarations )?
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==50) ) {
alt27=1;
}
switch (alt27) {
case 1 :
// org/argouml/language/java/reveng/Java.g:601:33: enumBodyDeclarations
{
pushFollow(FOLLOW_enumBodyDeclarations_in_enumBody1282);
enumBodyDeclarations();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,114,FOLLOW_114_in_enumBody1285); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 15, enumBody_StartIndex); }
}
}
// $ANTLR end "enumBody"
// $ANTLR start "enumConstants"
// org/argouml/language/java/reveng/Java.g:604:1: enumConstants : enumConstant ( ',' enumConstant )* ;
public final void enumConstants() throws RecognitionException {
int enumConstants_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 16) ) { return; }
// org/argouml/language/java/reveng/Java.g:605:5: ( enumConstant ( ',' enumConstant )* )
// org/argouml/language/java/reveng/Java.g:605:9: enumConstant ( ',' enumConstant )*
{
pushFollow(FOLLOW_enumConstant_in_enumConstants1304);
enumConstant();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:605:22: ( ',' enumConstant )*
loop28:
while (true) {
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==41) ) {
int LA28_1 = input.LA(2);
if ( (LA28_1==Identifier||LA28_1==56) ) {
alt28=1;
}
}
switch (alt28) {
case 1 :
// org/argouml/language/java/reveng/Java.g:605:23: ',' enumConstant
{
match(input,41,FOLLOW_41_in_enumConstants1307); if (state.failed) return;
pushFollow(FOLLOW_enumConstant_in_enumConstants1309);
enumConstant();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop28;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 16, enumConstants_StartIndex); }
}
}
// $ANTLR end "enumConstants"
// $ANTLR start "enumConstant"
// org/argouml/language/java/reveng/Java.g:608:1: enumConstant : ( annotations )? name= Identifier ( arguments )? ( classBody )? ;
public final void enumConstant() throws RecognitionException {
int enumConstant_StartIndex = input.index();
Token name=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 17) ) { return; }
// org/argouml/language/java/reveng/Java.g:609:5: ( ( annotations )? name= Identifier ( arguments )? ( classBody )? )
// org/argouml/language/java/reveng/Java.g:609:9: ( annotations )? name= Identifier ( arguments )? ( classBody )?
{
// org/argouml/language/java/reveng/Java.g:609:9: ( annotations )?
int alt29=2;
int LA29_0 = input.LA(1);
if ( (LA29_0==56) ) {
alt29=1;
}
switch (alt29) {
case 1 :
// org/argouml/language/java/reveng/Java.g:609:9: annotations
{
pushFollow(FOLLOW_annotations_in_enumConstant1330);
annotations();
state._fsp--;
if (state.failed) return;
}
break;
}
name=(Token)match(input,Identifier,FOLLOW_Identifier_in_enumConstant1343); if (state.failed) return;
if ( state.backtracking==0 ) {
getModeller().addEnumerationLiteral((name!=null?name.getText():null));
}
// org/argouml/language/java/reveng/Java.g:616:9: ( arguments )?
int alt30=2;
int LA30_0 = input.LA(1);
if ( (LA30_0==34) ) {
alt30=1;
}
switch (alt30) {
case 1 :
// org/argouml/language/java/reveng/Java.g:616:10: arguments
{
pushFollow(FOLLOW_arguments_in_enumConstant1382);
arguments();
state._fsp--;
if (state.failed) return;
}
break;
}
// org/argouml/language/java/reveng/Java.g:617:9: ( classBody )?
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==110) ) {
alt31=1;
}
switch (alt31) {
case 1 :
// org/argouml/language/java/reveng/Java.g:617:10: classBody
{
pushFollow(FOLLOW_classBody_in_enumConstant1395);
classBody();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 17, enumConstant_StartIndex); }
}
}
// $ANTLR end "enumConstant"
// $ANTLR start "enumBodyDeclarations"
// org/argouml/language/java/reveng/Java.g:620:1: enumBodyDeclarations : ';' ( classBodyDeclaration )* ;
public final void enumBodyDeclarations() throws RecognitionException {
int enumBodyDeclarations_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 18) ) { return; }
// org/argouml/language/java/reveng/Java.g:621:5: ( ';' ( classBodyDeclaration )* )
// org/argouml/language/java/reveng/Java.g:621:9: ';' ( classBodyDeclaration )*
{
match(input,50,FOLLOW_50_in_enumBodyDeclarations1416); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:621:13: ( classBodyDeclaration )*
loop32:
while (true) {
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==ENUM||LA32_0==Identifier||(LA32_0 >= 50 && LA32_0 <= 51)||LA32_0==56||(LA32_0 >= 61 && LA32_0 <= 62)||LA32_0==64||(LA32_0 >= 67 && LA32_0 <= 68)||LA32_0==72||LA32_0==76||LA32_0==78||(LA32_0 >= 84 && LA32_0 <= 87)||(LA32_0 >= 91 && LA32_0 <= 93)||(LA32_0 >= 95 && LA32_0 <= 97)||LA32_0==100||LA32_0==104||(LA32_0 >= 107 && LA32_0 <= 108)||LA32_0==110) ) {
alt32=1;
}
switch (alt32) {
case 1 :
// org/argouml/language/java/reveng/Java.g:621:14: classBodyDeclaration
{
pushFollow(FOLLOW_classBodyDeclaration_in_enumBodyDeclarations1419);
classBodyDeclaration();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop32;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 18, enumBodyDeclarations_StartIndex); }
}
}
// $ANTLR end "enumBodyDeclarations"
// $ANTLR start "interfaceDeclaration"
// org/argouml/language/java/reveng/Java.g:625:1: interfaceDeclaration[String javadoc, short modifiers] : ( normalInterfaceDeclaration[javadoc, modifiers] | annotationTypeDeclaration[javadoc, modifiers] );
public final void interfaceDeclaration(String javadoc, short modifiers) throws RecognitionException {
int interfaceDeclaration_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 19) ) { return; }
// org/argouml/language/java/reveng/Java.g:626:5: ( normalInterfaceDeclaration[javadoc, modifiers] | annotationTypeDeclaration[javadoc, modifiers] )
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==85) ) {
alt33=1;
}
else if ( (LA33_0==56) ) {
alt33=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 33, 0, input);
throw nvae;
}
switch (alt33) {
case 1 :
// org/argouml/language/java/reveng/Java.g:626:9: normalInterfaceDeclaration[javadoc, modifiers]
{
pushFollow(FOLLOW_normalInterfaceDeclaration_in_interfaceDeclaration1446);
normalInterfaceDeclaration(javadoc, modifiers);
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:627:9: annotationTypeDeclaration[javadoc, modifiers]
{
pushFollow(FOLLOW_annotationTypeDeclaration_in_interfaceDeclaration1457);
annotationTypeDeclaration(javadoc, modifiers);
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 19, interfaceDeclaration_StartIndex); }
}
}
// $ANTLR end "interfaceDeclaration"
// $ANTLR start "normalInterfaceDeclaration"
// org/argouml/language/java/reveng/Java.g:630:1: normalInterfaceDeclaration[String javadoc, short modifiers] : 'interface' interfaceName= Identifier (tparam= typeParameters )? ( 'extends' ie= typeList )? interfaceBody ;
public final void normalInterfaceDeclaration(String javadoc, short modifiers) throws RecognitionException {
int normalInterfaceDeclaration_StartIndex = input.index();
Token interfaceName=null;
List<String> tparam =null;
List<String> ie =null;
List<String> names = new ArrayList<String>();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 20) ) { return; }
// org/argouml/language/java/reveng/Java.g:634:5: ( 'interface' interfaceName= Identifier (tparam= typeParameters )? ( 'extends' ie= typeList )? interfaceBody )
// org/argouml/language/java/reveng/Java.g:634:9: 'interface' interfaceName= Identifier (tparam= typeParameters )? ( 'extends' ie= typeList )? interfaceBody
{
match(input,85,FOLLOW_85_in_normalInterfaceDeclaration1486); if (state.failed) return;
interfaceName=(Token)match(input,Identifier,FOLLOW_Identifier_in_normalInterfaceDeclaration1490); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:634:46: (tparam= typeParameters )?
int alt34=2;
int LA34_0 = input.LA(1);
if ( (LA34_0==51) ) {
alt34=1;
}
switch (alt34) {
case 1 :
// org/argouml/language/java/reveng/Java.g:634:47: tparam= typeParameters
{
pushFollow(FOLLOW_typeParameters_in_normalInterfaceDeclaration1495);
tparam=typeParameters();
state._fsp--;
if (state.failed) return;
}
break;
}
// org/argouml/language/java/reveng/Java.g:635:9: ( 'extends' ie= typeList )?
int alt35=2;
int LA35_0 = input.LA(1);
if ( (LA35_0==74) ) {
alt35=1;
}
switch (alt35) {
case 1 :
// org/argouml/language/java/reveng/Java.g:635:10: 'extends' ie= typeList
{
match(input,74,FOLLOW_74_in_normalInterfaceDeclaration1508); if (state.failed) return;
pushFollow(FOLLOW_typeList_in_normalInterfaceDeclaration1512);
ie=typeList();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { names = ie; }
}
break;
}
if ( state.backtracking==0 ) {
getModeller().addInterface((interfaceName!=null?interfaceName.getText():null), modifiers,
tparam, names, javadoc, (parserMode == MODE_IMPORT_PASS2));
}
pushFollow(FOLLOW_interfaceBody_in_normalInterfaceDeclaration1546);
interfaceBody();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {
getModeller().popClassifier();
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 20, normalInterfaceDeclaration_StartIndex); }
}
}
// $ANTLR end "normalInterfaceDeclaration"
// $ANTLR start "typeList"
// org/argouml/language/java/reveng/Java.g:647:1: typeList returns [List<String> names = new ArrayList<String>()] : n= type ( ',' n= type )* ;
public final List<String> typeList() throws RecognitionException {
List<String> names = new ArrayList<String>();
int typeList_StartIndex = input.index();
String n =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return names; }
// org/argouml/language/java/reveng/Java.g:648:5: (n= type ( ',' n= type )* )
// org/argouml/language/java/reveng/Java.g:648:9: n= type ( ',' n= type )*
{
pushFollow(FOLLOW_type_in_typeList1581);
n=type();
state._fsp--;
if (state.failed) return names;
if ( state.backtracking==0 ) { names.add(n); }
// org/argouml/language/java/reveng/Java.g:649:9: ( ',' n= type )*
loop36:
while (true) {
int alt36=2;
int LA36_0 = input.LA(1);
if ( (LA36_0==41) ) {
alt36=1;
}
switch (alt36) {
case 1 :
// org/argouml/language/java/reveng/Java.g:649:11: ',' n= type
{
match(input,41,FOLLOW_41_in_typeList1601); if (state.failed) return names;
pushFollow(FOLLOW_type_in_typeList1605);
n=type();
state._fsp--;
if (state.failed) return names;
if ( state.backtracking==0 ) { names.add(n); }
}
break;
default :
break loop36;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 21, typeList_StartIndex); }
}
return names;
}
// $ANTLR end "typeList"
// $ANTLR start "classBody"
// org/argouml/language/java/reveng/Java.g:654:1: classBody : '{' ( classBodyDeclaration )* '}' ;
public final void classBody() throws RecognitionException {
int classBody_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 22) ) { return; }
// org/argouml/language/java/reveng/Java.g:655:5: ( '{' ( classBodyDeclaration )* '}' )
// org/argouml/language/java/reveng/Java.g:655:9: '{' ( classBodyDeclaration )* '}'
{
match(input,110,FOLLOW_110_in_classBody1638); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:655:13: ( classBodyDeclaration )*
loop37:
while (true) {
int alt37=2;
int LA37_0 = input.LA(1);
if ( (LA37_0==ENUM||LA37_0==Identifier||(LA37_0 >= 50 && LA37_0 <= 51)||LA37_0==56||(LA37_0 >= 61 && LA37_0 <= 62)||LA37_0==64||(LA37_0 >= 67 && LA37_0 <= 68)||LA37_0==72||LA37_0==76||LA37_0==78||(LA37_0 >= 84 && LA37_0 <= 87)||(LA37_0 >= 91 && LA37_0 <= 93)||(LA37_0 >= 95 && LA37_0 <= 97)||LA37_0==100||LA37_0==104||(LA37_0 >= 107 && LA37_0 <= 108)||LA37_0==110) ) {
alt37=1;
}
switch (alt37) {
case 1 :
// org/argouml/language/java/reveng/Java.g:655:13: classBodyDeclaration
{
pushFollow(FOLLOW_classBodyDeclaration_in_classBody1640);
classBodyDeclaration();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop37;
}
}
match(input,114,FOLLOW_114_in_classBody1643); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 22, classBody_StartIndex); }
}
}
// $ANTLR end "classBody"
// $ANTLR start "interfaceBody"
// org/argouml/language/java/reveng/Java.g:658:1: interfaceBody : '{' ( interfaceBodyDeclaration )* '}' ;
public final void interfaceBody() throws RecognitionException {
int interfaceBody_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 23) ) { return; }
// org/argouml/language/java/reveng/Java.g:659:5: ( '{' ( interfaceBodyDeclaration )* '}' )
// org/argouml/language/java/reveng/Java.g:659:9: '{' ( interfaceBodyDeclaration )* '}'
{
match(input,110,FOLLOW_110_in_interfaceBody1666); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:659:13: ( interfaceBodyDeclaration )*
loop38:
while (true) {
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==ENUM||LA38_0==Identifier||(LA38_0 >= 50 && LA38_0 <= 51)||LA38_0==56||(LA38_0 >= 61 && LA38_0 <= 62)||LA38_0==64||(LA38_0 >= 67 && LA38_0 <= 68)||LA38_0==72||LA38_0==76||LA38_0==78||(LA38_0 >= 84 && LA38_0 <= 87)||(LA38_0 >= 91 && LA38_0 <= 93)||(LA38_0 >= 95 && LA38_0 <= 97)||LA38_0==100||LA38_0==104||(LA38_0 >= 107 && LA38_0 <= 108)) ) {
alt38=1;
}
switch (alt38) {
case 1 :
// org/argouml/language/java/reveng/Java.g:659:13: interfaceBodyDeclaration
{
pushFollow(FOLLOW_interfaceBodyDeclaration_in_interfaceBody1668);
interfaceBodyDeclaration();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop38;
}
}
match(input,114,FOLLOW_114_in_interfaceBody1671); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 23, interfaceBody_StartIndex); }
}
}
// $ANTLR end "interfaceBody"
// $ANTLR start "classBodyDeclaration"
// org/argouml/language/java/reveng/Java.g:662:1: classBodyDeclaration : ( ';' | ( 'static' )? block |m= modifiers memberDecl[m] );
public final void classBodyDeclaration() throws RecognitionException {
int classBodyDeclaration_StartIndex = input.index();
short m =0;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 24) ) { return; }
// org/argouml/language/java/reveng/Java.g:663:5: ( ';' | ( 'static' )? block |m= modifiers memberDecl[m] )
int alt40=3;
switch ( input.LA(1) ) {
case 50:
{
alt40=1;
}
break;
case 96:
{
int LA40_2 = input.LA(2);
if ( (LA40_2==110) ) {
alt40=2;
}
else if ( (LA40_2==ENUM||LA40_2==Identifier||LA40_2==51||LA40_2==56||(LA40_2 >= 61 && LA40_2 <= 62)||LA40_2==64||(LA40_2 >= 67 && LA40_2 <= 68)||LA40_2==72||LA40_2==76||LA40_2==78||(LA40_2 >= 84 && LA40_2 <= 87)||(LA40_2 >= 91 && LA40_2 <= 93)||(LA40_2 >= 95 && LA40_2 <= 97)||LA40_2==100||LA40_2==104||(LA40_2 >= 107 && LA40_2 <= 108)) ) {
alt40=3;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 40, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case 110:
{
alt40=2;
}
break;
case ENUM:
case Identifier:
case 51:
case 56:
case 61:
case 62:
case 64:
case 67:
case 68:
case 72:
case 76:
case 78:
case 84:
case 85:
case 86:
case 87:
case 91:
case 92:
case 93:
case 95:
case 97:
case 100:
case 104:
case 107:
case 108:
{
alt40=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 40, 0, input);
throw nvae;
}
switch (alt40) {
case 1 :
// org/argouml/language/java/reveng/Java.g:663:9: ';'
{
match(input,50,FOLLOW_50_in_classBodyDeclaration1690); if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:664:9: ( 'static' )? block
{
// org/argouml/language/java/reveng/Java.g:664:9: ( 'static' )?
int alt39=2;
int LA39_0 = input.LA(1);
if ( (LA39_0==96) ) {
alt39=1;
}
switch (alt39) {
case 1 :
// org/argouml/language/java/reveng/Java.g:664:9: 'static'
{
match(input,96,FOLLOW_96_in_classBodyDeclaration1700); if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_block_in_classBodyDeclaration1703);
block();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:665:9: m= modifiers memberDecl[m]
{
pushFollow(FOLLOW_modifiers_in_classBodyDeclaration1715);
m=modifiers();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_memberDecl_in_classBodyDeclaration1717);
memberDecl(m);
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 24, classBodyDeclaration_StartIndex); }
}
}
// $ANTLR end "classBodyDeclaration"
// $ANTLR start "memberDecl"
// org/argouml/language/java/reveng/Java.g:668:1: memberDecl[short modifiers] : ( genericMethodOrConstructorDecl[modifiers] | memberDeclaration[modifiers] | 'void' name= Identifier voidMethodDeclaratorRest[$name.text, modifiers] |name= Identifier constructorDeclaratorRest[$name.text, modifiers] | interfaceDeclaration[getJavadocComment(), modifiers] | classDeclaration[getJavadocComment(), modifiers] );
public final void memberDecl(short modifiers) throws RecognitionException {
int memberDecl_StartIndex = input.index();
Token name=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 25) ) { return; }
// org/argouml/language/java/reveng/Java.g:669:5: ( genericMethodOrConstructorDecl[modifiers] | memberDeclaration[modifiers] | 'void' name= Identifier voidMethodDeclaratorRest[$name.text, modifiers] |name= Identifier constructorDeclaratorRest[$name.text, modifiers] | interfaceDeclaration[getJavadocComment(), modifiers] | classDeclaration[getJavadocComment(), modifiers] )
int alt41=6;
switch ( input.LA(1) ) {
case 51:
{
alt41=1;
}
break;
case Identifier:
{
int LA41_2 = input.LA(2);
if ( (LA41_2==Identifier||LA41_2==45||LA41_2==51||LA41_2==57) ) {
alt41=2;
}
else if ( (LA41_2==34) ) {
alt41=4;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 41, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case 62:
case 64:
case 67:
case 72:
case 78:
case 84:
case 86:
case 95:
{
alt41=2;
}
break;
case 107:
{
alt41=3;
}
break;
case 56:
case 85:
{
alt41=5;
}
break;
case ENUM:
case 68:
{
alt41=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 41, 0, input);
throw nvae;
}
switch (alt41) {
case 1 :
// org/argouml/language/java/reveng/Java.g:669:9: genericMethodOrConstructorDecl[modifiers]
{
pushFollow(FOLLOW_genericMethodOrConstructorDecl_in_memberDecl1742);
genericMethodOrConstructorDecl(modifiers);
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:670:9: memberDeclaration[modifiers]
{
pushFollow(FOLLOW_memberDeclaration_in_memberDecl1753);
memberDeclaration(modifiers);
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:671:9: 'void' name= Identifier voidMethodDeclaratorRest[$name.text, modifiers]
{
match(input,107,FOLLOW_107_in_memberDecl1764); if (state.failed) return;
name=(Token)match(input,Identifier,FOLLOW_Identifier_in_memberDecl1768); if (state.failed) return;
pushFollow(FOLLOW_voidMethodDeclaratorRest_in_memberDecl1770);
voidMethodDeclaratorRest((name!=null?name.getText():null), modifiers);
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:672:9: name= Identifier constructorDeclaratorRest[$name.text, modifiers]
{
name=(Token)match(input,Identifier,FOLLOW_Identifier_in_memberDecl1783); if (state.failed) return;
pushFollow(FOLLOW_constructorDeclaratorRest_in_memberDecl1785);
constructorDeclaratorRest((name!=null?name.getText():null), modifiers);
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// org/argouml/language/java/reveng/Java.g:673:9: interfaceDeclaration[getJavadocComment(), modifiers]
{
pushFollow(FOLLOW_interfaceDeclaration_in_memberDecl1796);
interfaceDeclaration(getJavadocComment(), modifiers);
state._fsp--;
if (state.failed) return;
}
break;
case 6 :
// org/argouml/language/java/reveng/Java.g:674:9: classDeclaration[getJavadocComment(), modifiers]
{
pushFollow(FOLLOW_classDeclaration_in_memberDecl1807);
classDeclaration(getJavadocComment(), modifiers);
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 25, memberDecl_StartIndex); }
}
}
// $ANTLR end "memberDecl"
// $ANTLR start "memberDeclaration"
// org/argouml/language/java/reveng/Java.g:677:1: memberDeclaration[short modifiers] : t= type ( methodDeclaration[modifiers, null, t] | fieldDeclaration[modifiers, t] ) ;
public final void memberDeclaration(short modifiers) throws RecognitionException {
int memberDeclaration_StartIndex = input.index();
String t =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 26) ) { return; }
// org/argouml/language/java/reveng/Java.g:678:5: (t= type ( methodDeclaration[modifiers, null, t] | fieldDeclaration[modifiers, t] ) )
// org/argouml/language/java/reveng/Java.g:678:9: t= type ( methodDeclaration[modifiers, null, t] | fieldDeclaration[modifiers, t] )
{
pushFollow(FOLLOW_type_in_memberDeclaration1834);
t=type();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:679:9: ( methodDeclaration[modifiers, null, t] | fieldDeclaration[modifiers, t] )
int alt42=2;
int LA42_0 = input.LA(1);
if ( (LA42_0==Identifier) ) {
int LA42_1 = input.LA(2);
if ( (LA42_1==34) ) {
alt42=1;
}
else if ( (LA42_1==41||LA42_1==50||LA42_1==52||LA42_1==57) ) {
alt42=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 42, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 42, 0, input);
throw nvae;
}
switch (alt42) {
case 1 :
// org/argouml/language/java/reveng/Java.g:679:13: methodDeclaration[modifiers, null, t]
{
pushFollow(FOLLOW_methodDeclaration_in_memberDeclaration1848);
methodDeclaration(modifiers, null, t);
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:680:13: fieldDeclaration[modifiers, t]
{
pushFollow(FOLLOW_fieldDeclaration_in_memberDeclaration1863);
fieldDeclaration(modifiers, t);
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 26, memberDeclaration_StartIndex); }
}
}
// $ANTLR end "memberDeclaration"
// $ANTLR start "genericMethodOrConstructorDecl"
// org/argouml/language/java/reveng/Java.g:684:1: genericMethodOrConstructorDecl[short modifiers] : tparam= typeParameters genericMethodOrConstructorRest[modifiers, tparam] ;
public final void genericMethodOrConstructorDecl(short modifiers) throws RecognitionException {
int genericMethodOrConstructorDecl_StartIndex = input.index();
List<String> tparam =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 27) ) { return; }
// org/argouml/language/java/reveng/Java.g:685:5: (tparam= typeParameters genericMethodOrConstructorRest[modifiers, tparam] )
// org/argouml/language/java/reveng/Java.g:685:9: tparam= typeParameters genericMethodOrConstructorRest[modifiers, tparam]
{
pushFollow(FOLLOW_typeParameters_in_genericMethodOrConstructorDecl1896);
tparam=typeParameters();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_genericMethodOrConstructorRest_in_genericMethodOrConstructorDecl1898);
genericMethodOrConstructorRest(modifiers, tparam);
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 27, genericMethodOrConstructorDecl_StartIndex); }
}
}
// $ANTLR end "genericMethodOrConstructorDecl"
// $ANTLR start "genericMethodOrConstructorRest"
// org/argouml/language/java/reveng/Java.g:688:1: genericMethodOrConstructorRest[short modifiers, List<String> tparam] : ( (ty= type | 'void' ) name= Identifier methodDeclaratorRest[$name.text, modifiers, tparam, t] |name= Identifier constructorDeclaratorRest[$name.text, modifiers] );
public final void genericMethodOrConstructorRest(short modifiers, List<String> tparam) throws RecognitionException {
int genericMethodOrConstructorRest_StartIndex = input.index();
Token name=null;
String ty =null;
String t = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 28) ) { return; }
// org/argouml/language/java/reveng/Java.g:692:5: ( (ty= type | 'void' ) name= Identifier methodDeclaratorRest[$name.text, modifiers, tparam, t] |name= Identifier constructorDeclaratorRest[$name.text, modifiers] )
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==Identifier) ) {
int LA44_1 = input.LA(2);
if ( (LA44_1==Identifier||LA44_1==45||LA44_1==51||LA44_1==57) ) {
alt44=1;
}
else if ( (LA44_1==34) ) {
alt44=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 44, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA44_0==62||LA44_0==64||LA44_0==67||LA44_0==72||LA44_0==78||LA44_0==84||LA44_0==86||LA44_0==95||LA44_0==107) ) {
alt44=1;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 44, 0, input);
throw nvae;
}
switch (alt44) {
case 1 :
// org/argouml/language/java/reveng/Java.g:692:9: (ty= type | 'void' ) name= Identifier methodDeclaratorRest[$name.text, modifiers, tparam, t]
{
// org/argouml/language/java/reveng/Java.g:692:9: (ty= type | 'void' )
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==Identifier||LA43_0==62||LA43_0==64||LA43_0==67||LA43_0==72||LA43_0==78||LA43_0==84||LA43_0==86||LA43_0==95) ) {
alt43=1;
}
else if ( (LA43_0==107) ) {
alt43=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 43, 0, input);
throw nvae;
}
switch (alt43) {
case 1 :
// org/argouml/language/java/reveng/Java.g:692:10: ty= type
{
pushFollow(FOLLOW_type_in_genericMethodOrConstructorRest1930);
ty=type();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { t = ty; }
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:692:32: 'void'
{
match(input,107,FOLLOW_107_in_genericMethodOrConstructorRest1936); if (state.failed) return;
if ( state.backtracking==0 ) { t = "void"; }
}
break;
}
name=(Token)match(input,Identifier,FOLLOW_Identifier_in_genericMethodOrConstructorRest1952); if (state.failed) return;
pushFollow(FOLLOW_methodDeclaratorRest_in_genericMethodOrConstructorRest1962);
methodDeclaratorRest((name!=null?name.getText():null), modifiers, tparam, t);
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:695:9: name= Identifier constructorDeclaratorRest[$name.text, modifiers]
{
name=(Token)match(input,Identifier,FOLLOW_Identifier_in_genericMethodOrConstructorRest1975); if (state.failed) return;
pushFollow(FOLLOW_constructorDeclaratorRest_in_genericMethodOrConstructorRest1985);
constructorDeclaratorRest((name!=null?name.getText():null), modifiers);
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 28, genericMethodOrConstructorRest_StartIndex); }
}
}
// $ANTLR end "genericMethodOrConstructorRest"
// $ANTLR start "methodDeclaration"
// org/argouml/language/java/reveng/Java.g:699:1: methodDeclaration[short modifiers, List<String> tparam, String t] : name= Identifier methodDeclaratorRest[$name.text, modifiers, tparam, t] ;
public final void methodDeclaration(short modifiers, List<String> tparam, String t) throws RecognitionException {
int methodDeclaration_StartIndex = input.index();
Token name=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 29) ) { return; }
// org/argouml/language/java/reveng/Java.g:700:5: (name= Identifier methodDeclaratorRest[$name.text, modifiers, tparam, t] )
// org/argouml/language/java/reveng/Java.g:700:9: name= Identifier methodDeclaratorRest[$name.text, modifiers, tparam, t]
{
name=(Token)match(input,Identifier,FOLLOW_Identifier_in_methodDeclaration2008); if (state.failed) return;
pushFollow(FOLLOW_methodDeclaratorRest_in_methodDeclaration2010);
methodDeclaratorRest((name!=null?name.getText():null), modifiers, tparam, t);
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 29, methodDeclaration_StartIndex); }
}
}
// $ANTLR end "methodDeclaration"
// $ANTLR start "fieldDeclaration"
// org/argouml/language/java/reveng/Java.g:703:1: fieldDeclaration[short modifiers, String t] : variableDeclarators[getJavadocComment(), modifiers, t] ';' ;
public final void fieldDeclaration(short modifiers, String t) throws RecognitionException {
int fieldDeclaration_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 30) ) { return; }
// org/argouml/language/java/reveng/Java.g:704:5: ( variableDeclarators[getJavadocComment(), modifiers, t] ';' )
// org/argouml/language/java/reveng/Java.g:704:9: variableDeclarators[getJavadocComment(), modifiers, t] ';'
{
pushFollow(FOLLOW_variableDeclarators_in_fieldDeclaration2031);
variableDeclarators(getJavadocComment(), modifiers, t);
state._fsp--;
if (state.failed) return;
match(input,50,FOLLOW_50_in_fieldDeclaration2034); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 30, fieldDeclaration_StartIndex); }
}
}
// $ANTLR end "fieldDeclaration"
// $ANTLR start "interfaceBodyDeclaration"
// org/argouml/language/java/reveng/Java.g:707:1: interfaceBodyDeclaration : (m= modifiers interfaceMemberDecl[m] | ';' );
public final void interfaceBodyDeclaration() throws RecognitionException {
int interfaceBodyDeclaration_StartIndex = input.index();
short m =0;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 31) ) { return; }
// org/argouml/language/java/reveng/Java.g:708:5: (m= modifiers interfaceMemberDecl[m] | ';' )
int alt45=2;
int LA45_0 = input.LA(1);
if ( (LA45_0==ENUM||LA45_0==Identifier||LA45_0==51||LA45_0==56||(LA45_0 >= 61 && LA45_0 <= 62)||LA45_0==64||(LA45_0 >= 67 && LA45_0 <= 68)||LA45_0==72||LA45_0==76||LA45_0==78||(LA45_0 >= 84 && LA45_0 <= 87)||(LA45_0 >= 91 && LA45_0 <= 93)||(LA45_0 >= 95 && LA45_0 <= 97)||LA45_0==100||LA45_0==104||(LA45_0 >= 107 && LA45_0 <= 108)) ) {
alt45=1;
}
else if ( (LA45_0==50) ) {
alt45=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 45, 0, input);
throw nvae;
}
switch (alt45) {
case 1 :
// org/argouml/language/java/reveng/Java.g:708:9: m= modifiers interfaceMemberDecl[m]
{
pushFollow(FOLLOW_modifiers_in_interfaceBodyDeclaration2063);
m=modifiers();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_interfaceMemberDecl_in_interfaceBodyDeclaration2065);
interfaceMemberDecl(m);
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:709:9: ';'
{
match(input,50,FOLLOW_50_in_interfaceBodyDeclaration2076); if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 31, interfaceBodyDeclaration_StartIndex); }
}
}
// $ANTLR end "interfaceBodyDeclaration"
// $ANTLR start "interfaceMemberDecl"
// org/argouml/language/java/reveng/Java.g:712:1: interfaceMemberDecl[short modifiers] : ( interfaceMethodOrFieldDecl[modifiers] | interfaceGenericMethodDecl[modifiers] | 'void' name= Identifier voidInterfaceMethodDeclaratorRest[$name.text, modifiers] | interfaceDeclaration[getJavadocComment(), modifiers] | classDeclaration[getJavadocComment(), modifiers] );
public final void interfaceMemberDecl(short modifiers) throws RecognitionException {
int interfaceMemberDecl_StartIndex = input.index();
Token name=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 32) ) { return; }
// org/argouml/language/java/reveng/Java.g:713:5: ( interfaceMethodOrFieldDecl[modifiers] | interfaceGenericMethodDecl[modifiers] | 'void' name= Identifier voidInterfaceMethodDeclaratorRest[$name.text, modifiers] | interfaceDeclaration[getJavadocComment(), modifiers] | classDeclaration[getJavadocComment(), modifiers] )
int alt46=5;
switch ( input.LA(1) ) {
case Identifier:
case 62:
case 64:
case 67:
case 72:
case 78:
case 84:
case 86:
case 95:
{
alt46=1;
}
break;
case 51:
{
alt46=2;
}
break;
case 107:
{
alt46=3;
}
break;
case 56:
case 85:
{
alt46=4;
}
break;
case ENUM:
case 68:
{
alt46=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 46, 0, input);
throw nvae;
}
switch (alt46) {
case 1 :
// org/argouml/language/java/reveng/Java.g:713:9: interfaceMethodOrFieldDecl[modifiers]
{
pushFollow(FOLLOW_interfaceMethodOrFieldDecl_in_interfaceMemberDecl2096);
interfaceMethodOrFieldDecl(modifiers);
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:714:9: interfaceGenericMethodDecl[modifiers]
{
pushFollow(FOLLOW_interfaceGenericMethodDecl_in_interfaceMemberDecl2107);
interfaceGenericMethodDecl(modifiers);
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:715:9: 'void' name= Identifier voidInterfaceMethodDeclaratorRest[$name.text, modifiers]
{
match(input,107,FOLLOW_107_in_interfaceMemberDecl2118); if (state.failed) return;
name=(Token)match(input,Identifier,FOLLOW_Identifier_in_interfaceMemberDecl2122); if (state.failed) return;
pushFollow(FOLLOW_voidInterfaceMethodDeclaratorRest_in_interfaceMemberDecl2132);
voidInterfaceMethodDeclaratorRest((name!=null?name.getText():null), modifiers);
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:717:9: interfaceDeclaration[getJavadocComment(), modifiers]
{
pushFollow(FOLLOW_interfaceDeclaration_in_interfaceMemberDecl2143);
interfaceDeclaration(getJavadocComment(), modifiers);
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// org/argouml/language/java/reveng/Java.g:718:9: classDeclaration[getJavadocComment(), modifiers]
{
pushFollow(FOLLOW_classDeclaration_in_interfaceMemberDecl2154);
classDeclaration(getJavadocComment(), modifiers);
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 32, interfaceMemberDecl_StartIndex); }
}
}
// $ANTLR end "interfaceMemberDecl"
// $ANTLR start "interfaceMethodOrFieldDecl"
// org/argouml/language/java/reveng/Java.g:721:1: interfaceMethodOrFieldDecl[short modifiers] : t= type name= Identifier interfaceMethodOrFieldRest[$name.text, modifiers, t] ;
public final void interfaceMethodOrFieldDecl(short modifiers) throws RecognitionException {
int interfaceMethodOrFieldDecl_StartIndex = input.index();
Token name=null;
String t =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 33) ) { return; }
// org/argouml/language/java/reveng/Java.g:722:5: (t= type name= Identifier interfaceMethodOrFieldRest[$name.text, modifiers, t] )
// org/argouml/language/java/reveng/Java.g:722:9: t= type name= Identifier interfaceMethodOrFieldRest[$name.text, modifiers, t]
{
pushFollow(FOLLOW_type_in_interfaceMethodOrFieldDecl2177);
t=type();
state._fsp--;
if (state.failed) return;
name=(Token)match(input,Identifier,FOLLOW_Identifier_in_interfaceMethodOrFieldDecl2181); if (state.failed) return;
pushFollow(FOLLOW_interfaceMethodOrFieldRest_in_interfaceMethodOrFieldDecl2191);
interfaceMethodOrFieldRest((name!=null?name.getText():null), modifiers, t);
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 33, interfaceMethodOrFieldDecl_StartIndex); }
}
}
// $ANTLR end "interfaceMethodOrFieldDecl"
// $ANTLR start "interfaceMethodOrFieldRest"
// org/argouml/language/java/reveng/Java.g:726:1: interfaceMethodOrFieldRest[String name, short modifiers, String t] : ( constantDeclaratorsRest[getJavadocComment(), name, modifiers, t] ';' | interfaceMethodDeclaratorRest[name, modifiers, null, t] );
public final void interfaceMethodOrFieldRest(String name, short modifiers, String t) throws RecognitionException {
int interfaceMethodOrFieldRest_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 34) ) { return; }
// org/argouml/language/java/reveng/Java.g:727:5: ( constantDeclaratorsRest[getJavadocComment(), name, modifiers, t] ';' | interfaceMethodDeclaratorRest[name, modifiers, null, t] )
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==52||LA47_0==57) ) {
alt47=1;
}
else if ( (LA47_0==34) ) {
alt47=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 47, 0, input);
throw nvae;
}
switch (alt47) {
case 1 :
// org/argouml/language/java/reveng/Java.g:727:9: constantDeclaratorsRest[getJavadocComment(), name, modifiers, t] ';'
{
pushFollow(FOLLOW_constantDeclaratorsRest_in_interfaceMethodOrFieldRest2212);
constantDeclaratorsRest(getJavadocComment(), name, modifiers, t);
state._fsp--;
if (state.failed) return;
match(input,50,FOLLOW_50_in_interfaceMethodOrFieldRest2215); if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:728:9: interfaceMethodDeclaratorRest[name, modifiers, null, t]
{
pushFollow(FOLLOW_interfaceMethodDeclaratorRest_in_interfaceMethodOrFieldRest2225);
interfaceMethodDeclaratorRest(name, modifiers, null, t);
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 34, interfaceMethodOrFieldRest_StartIndex); }
}
}
// $ANTLR end "interfaceMethodOrFieldRest"
// $ANTLR start "methodDeclaratorRest"
// org/argouml/language/java/reveng/Java.g:731:1: methodDeclaratorRest[String name, short modifiers, List<String> tparam, String t] : param= formalParameters ( '[' ']' )* ( 'throws' qualifiedNameList )? ( methodBody | ';' ) ;
public final void methodDeclaratorRest(String name, short modifiers, List<String> tparam, String t) throws RecognitionException {
int methodDeclaratorRest_StartIndex = input.index();
List<ParameterDeclaration> param =null;
StringBuffer sb = new StringBuffer(80);
if (t != null) {
sb.append(t);
}
boolean isOutestCompStat = !isInCompoundStatement();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 35) ) { return; }
// org/argouml/language/java/reveng/Java.g:739:5: (param= formalParameters ( '[' ']' )* ( 'throws' qualifiedNameList )? ( methodBody | ';' ) )
// org/argouml/language/java/reveng/Java.g:739:9: param= formalParameters ( '[' ']' )* ( 'throws' qualifiedNameList )? ( methodBody | ';' )
{
pushFollow(FOLLOW_formalParameters_in_methodDeclaratorRest2256);
param=formalParameters();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:739:32: ( '[' ']' )*
loop48:
while (true) {
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==57) ) {
alt48=1;
}
switch (alt48) {
case 1 :
// org/argouml/language/java/reveng/Java.g:739:33: '[' ']'
{
match(input,57,FOLLOW_57_in_methodDeclaratorRest2259); if (state.failed) return;
match(input,58,FOLLOW_58_in_methodDeclaratorRest2261); if (state.failed) return;
if ( state.backtracking==0 ) { sb.append("[]"); }
}
break;
default :
break loop48;
}
}
// org/argouml/language/java/reveng/Java.g:740:9: ( 'throws' qualifiedNameList )?
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==103) ) {
alt49=1;
}
switch (alt49) {
case 1 :
// org/argouml/language/java/reveng/Java.g:740:10: 'throws' qualifiedNameList
{
match(input,103,FOLLOW_103_in_methodDeclaratorRest2277); if (state.failed) return;
pushFollow(FOLLOW_qualifiedNameList_in_methodDeclaratorRest2279);
qualifiedNameList();
state._fsp--;
if (state.failed) return;
}
break;
}
// org/argouml/language/java/reveng/Java.g:741:9: ( methodBody | ';' )
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==110) ) {
alt50=1;
}
else if ( (LA50_0==50) ) {
alt50=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 50, 0, input);
throw nvae;
}
switch (alt50) {
case 1 :
// org/argouml/language/java/reveng/Java.g:741:13: methodBody
{
pushFollow(FOLLOW_methodBody_in_methodDeclaratorRest2295);
methodBody();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:742:13: ';'
{
match(input,50,FOLLOW_50_in_methodDeclaratorRest2309); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
if (isOutestCompStat && level > 0) {
setMethod(getModeller().addOperation(modifiers, tparam,
sb.toString(), name, param, getJavadocComment(),
(parserMode == MODE_IMPORT_PASS2)));
getModeller().addBodyToOperation(getMethod(),
(level > 1 ? getBody() : ""));
setMethod(null);
setBody(null);
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 35, methodDeclaratorRest_StartIndex); }
}
}
// $ANTLR end "methodDeclaratorRest"
// $ANTLR start "voidMethodDeclaratorRest"
// org/argouml/language/java/reveng/Java.g:758:1: voidMethodDeclaratorRest[String name, short modifiers] : param= formalParameters ( 'throws' qualifiedNameList )? ( methodBody | ';' ) ;
public final void voidMethodDeclaratorRest(String name, short modifiers) throws RecognitionException {
int voidMethodDeclaratorRest_StartIndex = input.index();
List<ParameterDeclaration> param =null;
boolean isOutestCompStat = !isInCompoundStatement();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 36) ) { return; }
// org/argouml/language/java/reveng/Java.g:762:5: (param= formalParameters ( 'throws' qualifiedNameList )? ( methodBody | ';' ) )
// org/argouml/language/java/reveng/Java.g:762:9: param= formalParameters ( 'throws' qualifiedNameList )? ( methodBody | ';' )
{
pushFollow(FOLLOW_formalParameters_in_voidMethodDeclaratorRest2368);
param=formalParameters();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:762:32: ( 'throws' qualifiedNameList )?
int alt51=2;
int LA51_0 = input.LA(1);
if ( (LA51_0==103) ) {
alt51=1;
}
switch (alt51) {
case 1 :
// org/argouml/language/java/reveng/Java.g:762:33: 'throws' qualifiedNameList
{
match(input,103,FOLLOW_103_in_voidMethodDeclaratorRest2371); if (state.failed) return;
pushFollow(FOLLOW_qualifiedNameList_in_voidMethodDeclaratorRest2373);
qualifiedNameList();
state._fsp--;
if (state.failed) return;
}
break;
}
// org/argouml/language/java/reveng/Java.g:763:9: ( methodBody | ';' )
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==110) ) {
alt52=1;
}
else if ( (LA52_0==50) ) {
alt52=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 52, 0, input);
throw nvae;
}
switch (alt52) {
case 1 :
// org/argouml/language/java/reveng/Java.g:763:13: methodBody
{
pushFollow(FOLLOW_methodBody_in_voidMethodDeclaratorRest2389);
methodBody();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:764:13: ';'
{
match(input,50,FOLLOW_50_in_voidMethodDeclaratorRest2403); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
if (isOutestCompStat && level > 0) {
setMethod(getModeller().addOperation(modifiers, null,
"void", name, param, getJavadocComment(),
(parserMode == MODE_IMPORT_PASS2)));
getModeller().addBodyToOperation(getMethod(),
(level > 1 ? getBody() : ""));
setMethod(null);
setBody(null);
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 36, voidMethodDeclaratorRest_StartIndex); }
}
}
// $ANTLR end "voidMethodDeclaratorRest"
// $ANTLR start "interfaceMethodDeclaratorRest"
// org/argouml/language/java/reveng/Java.g:780:1: interfaceMethodDeclaratorRest[String name, short modifiers, List<String> tparam, String t] : param= formalParameters ( '[' ']' )* ( 'throws' qualifiedNameList )? ';' ;
public final void interfaceMethodDeclaratorRest(String name, short modifiers, List<String> tparam, String t) throws RecognitionException {
int interfaceMethodDeclaratorRest_StartIndex = input.index();
List<ParameterDeclaration> param =null;
StringBuffer sb = new StringBuffer(80);
if (t != null) {
sb.append(t);
}
boolean isOutestCompStat = !isInCompoundStatement();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 37) ) { return; }
// org/argouml/language/java/reveng/Java.g:788:5: (param= formalParameters ( '[' ']' )* ( 'throws' qualifiedNameList )? ';' )
// org/argouml/language/java/reveng/Java.g:788:9: param= formalParameters ( '[' ']' )* ( 'throws' qualifiedNameList )? ';'
{
pushFollow(FOLLOW_formalParameters_in_interfaceMethodDeclaratorRest2462);
param=formalParameters();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:788:32: ( '[' ']' )*
loop53:
while (true) {
int alt53=2;
int LA53_0 = input.LA(1);
if ( (LA53_0==57) ) {
alt53=1;
}
switch (alt53) {
case 1 :
// org/argouml/language/java/reveng/Java.g:788:33: '[' ']'
{
match(input,57,FOLLOW_57_in_interfaceMethodDeclaratorRest2465); if (state.failed) return;
match(input,58,FOLLOW_58_in_interfaceMethodDeclaratorRest2467); if (state.failed) return;
if ( state.backtracking==0 ) { sb.append("[]"); }
}
break;
default :
break loop53;
}
}
// org/argouml/language/java/reveng/Java.g:789:9: ( 'throws' qualifiedNameList )?
int alt54=2;
int LA54_0 = input.LA(1);
if ( (LA54_0==103) ) {
alt54=1;
}
switch (alt54) {
case 1 :
// org/argouml/language/java/reveng/Java.g:789:10: 'throws' qualifiedNameList
{
match(input,103,FOLLOW_103_in_interfaceMethodDeclaratorRest2483); if (state.failed) return;
pushFollow(FOLLOW_qualifiedNameList_in_interfaceMethodDeclaratorRest2485);
qualifiedNameList();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,50,FOLLOW_50_in_interfaceMethodDeclaratorRest2497); if (state.failed) return;
if ( state.backtracking==0 ) {
if (isOutestCompStat && level > 0) {
setMethod(getModeller().addOperation(modifiers, tparam,
sb.toString(), name, param, getJavadocComment(),
(parserMode == MODE_IMPORT_PASS2)));
setMethod(null);
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 37, interfaceMethodDeclaratorRest_StartIndex); }
}
}
// $ANTLR end "interfaceMethodDeclaratorRest"
// $ANTLR start "interfaceGenericMethodDecl"
// org/argouml/language/java/reveng/Java.g:802:1: interfaceGenericMethodDecl[short modifiers] : tparam= typeParameters (ty= type | 'void' ) name= Identifier interfaceMethodDeclaratorRest[$name.text, modifiers, tparam, t] ;
public final void interfaceGenericMethodDecl(short modifiers) throws RecognitionException {
int interfaceGenericMethodDecl_StartIndex = input.index();
Token name=null;
List<String> tparam =null;
String ty =null;
String t = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 38) ) { return; }
// org/argouml/language/java/reveng/Java.g:806:5: (tparam= typeParameters (ty= type | 'void' ) name= Identifier interfaceMethodDeclaratorRest[$name.text, modifiers, tparam, t] )
// org/argouml/language/java/reveng/Java.g:806:9: tparam= typeParameters (ty= type | 'void' ) name= Identifier interfaceMethodDeclaratorRest[$name.text, modifiers, tparam, t]
{
pushFollow(FOLLOW_typeParameters_in_interfaceGenericMethodDecl2546);
tparam=typeParameters();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:806:31: (ty= type | 'void' )
int alt55=2;
int LA55_0 = input.LA(1);
if ( (LA55_0==Identifier||LA55_0==62||LA55_0==64||LA55_0==67||LA55_0==72||LA55_0==78||LA55_0==84||LA55_0==86||LA55_0==95) ) {
alt55=1;
}
else if ( (LA55_0==107) ) {
alt55=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 55, 0, input);
throw nvae;
}
switch (alt55) {
case 1 :
// org/argouml/language/java/reveng/Java.g:806:32: ty= type
{
pushFollow(FOLLOW_type_in_interfaceGenericMethodDecl2551);
ty=type();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { t = ty; }
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:806:54: 'void'
{
match(input,107,FOLLOW_107_in_interfaceGenericMethodDecl2557); if (state.failed) return;
if ( state.backtracking==0 ) { t = "void"; }
}
break;
}
name=(Token)match(input,Identifier,FOLLOW_Identifier_in_interfaceGenericMethodDecl2573); if (state.failed) return;
pushFollow(FOLLOW_interfaceMethodDeclaratorRest_in_interfaceGenericMethodDecl2583);
interfaceMethodDeclaratorRest((name!=null?name.getText():null), modifiers, tparam, t);
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 38, interfaceGenericMethodDecl_StartIndex); }
}
}
// $ANTLR end "interfaceGenericMethodDecl"
// $ANTLR start "voidInterfaceMethodDeclaratorRest"
// org/argouml/language/java/reveng/Java.g:811:1: voidInterfaceMethodDeclaratorRest[String name, short modifiers] : param= formalParameters ( 'throws' qualifiedNameList )? ';' ;
public final void voidInterfaceMethodDeclaratorRest(String name, short modifiers) throws RecognitionException {
int voidInterfaceMethodDeclaratorRest_StartIndex = input.index();
List<ParameterDeclaration> param =null;
boolean isOutestCompStat = !isInCompoundStatement();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 39) ) { return; }
// org/argouml/language/java/reveng/Java.g:815:5: (param= formalParameters ( 'throws' qualifiedNameList )? ';' )
// org/argouml/language/java/reveng/Java.g:815:9: param= formalParameters ( 'throws' qualifiedNameList )? ';'
{
pushFollow(FOLLOW_formalParameters_in_voidInterfaceMethodDeclaratorRest2614);
param=formalParameters();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:815:32: ( 'throws' qualifiedNameList )?
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==103) ) {
alt56=1;
}
switch (alt56) {
case 1 :
// org/argouml/language/java/reveng/Java.g:815:33: 'throws' qualifiedNameList
{
match(input,103,FOLLOW_103_in_voidInterfaceMethodDeclaratorRest2617); if (state.failed) return;
pushFollow(FOLLOW_qualifiedNameList_in_voidInterfaceMethodDeclaratorRest2619);
qualifiedNameList();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,50,FOLLOW_50_in_voidInterfaceMethodDeclaratorRest2631); if (state.failed) return;
if ( state.backtracking==0 ) {
if (isOutestCompStat && level > 0) {
setMethod(getModeller().addOperation(modifiers, null,
"void", name, param, getJavadocComment(),
(parserMode == MODE_IMPORT_PASS2)));
setMethod(null);
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 39, voidInterfaceMethodDeclaratorRest_StartIndex); }
}
}
// $ANTLR end "voidInterfaceMethodDeclaratorRest"
// $ANTLR start "constructorDeclaratorRest"
// org/argouml/language/java/reveng/Java.g:828:1: constructorDeclaratorRest[String name, short modifiers] : param= formalParameters ( 'throws' qualifiedNameList )? constructorBody ;
public final void constructorDeclaratorRest(String name, short modifiers) throws RecognitionException {
int constructorDeclaratorRest_StartIndex = input.index();
List<ParameterDeclaration> param =null;
boolean isOutestCompStat = !isInCompoundStatement();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 40) ) { return; }
// org/argouml/language/java/reveng/Java.g:832:5: (param= formalParameters ( 'throws' qualifiedNameList )? constructorBody )
// org/argouml/language/java/reveng/Java.g:832:9: param= formalParameters ( 'throws' qualifiedNameList )? constructorBody
{
pushFollow(FOLLOW_formalParameters_in_constructorDeclaratorRest2680);
param=formalParameters();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {
if (isOutestCompStat && level > 0) {
setMethod(getModeller().addOperation(modifiers,
null, null, name, param, getJavadocComment(),
(parserMode == MODE_IMPORT_PASS2)));
}
}
// org/argouml/language/java/reveng/Java.g:840:9: ( 'throws' qualifiedNameList )?
int alt57=2;
int LA57_0 = input.LA(1);
if ( (LA57_0==103) ) {
alt57=1;
}
switch (alt57) {
case 1 :
// org/argouml/language/java/reveng/Java.g:840:10: 'throws' qualifiedNameList
{
match(input,103,FOLLOW_103_in_constructorDeclaratorRest2701); if (state.failed) return;
pushFollow(FOLLOW_qualifiedNameList_in_constructorDeclaratorRest2703);
qualifiedNameList();
state._fsp--;
if (state.failed) return;
}
break;
}
pushFollow(FOLLOW_constructorBody_in_constructorDeclaratorRest2715);
constructorBody();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {
if (isOutestCompStat && level > 0) {
getModeller().addBodyToOperation(getMethod(),
level > 1 ? getBody() : "");
setMethod(null);
setBody(null);
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 40, constructorDeclaratorRest_StartIndex); }
}
}
// $ANTLR end "constructorDeclaratorRest"
// $ANTLR start "constantDeclarator"
// org/argouml/language/java/reveng/Java.g:853:1: constantDeclarator[String javadoc, short modifiers, String t] : id= Identifier constantDeclaratorRest[javadoc, name, modifiers, t] ;
public final void constantDeclarator(String javadoc, short modifiers, String t) throws RecognitionException {
int constantDeclarator_StartIndex = input.index();
Token id=null;
String name = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 41) ) { return; }
// org/argouml/language/java/reveng/Java.g:857:5: (id= Identifier constantDeclaratorRest[javadoc, name, modifiers, t] )
// org/argouml/language/java/reveng/Java.g:857:9: id= Identifier constantDeclaratorRest[javadoc, name, modifiers, t]
{
id=(Token)match(input,Identifier,FOLLOW_Identifier_in_constantDeclarator2764); if (state.failed) return;
if ( state.backtracking==0 ) { name = (id!=null?id.getText():null); }
pushFollow(FOLLOW_constantDeclaratorRest_in_constantDeclarator2776);
constantDeclaratorRest(javadoc, name, modifiers, t);
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 41, constantDeclarator_StartIndex); }
}
}
// $ANTLR end "constantDeclarator"
// $ANTLR start "variableDeclarators"
// org/argouml/language/java/reveng/Java.g:861:1: variableDeclarators[String javadoc, short modifiers, String t] : variableDeclarator[javadoc, modifiers, t] ( ',' variableDeclarator[javadoc, modifiers, t] )* ;
public final void variableDeclarators(String javadoc, short modifiers, String t) throws RecognitionException {
int variableDeclarators_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 42) ) { return; }
// org/argouml/language/java/reveng/Java.g:862:5: ( variableDeclarator[javadoc, modifiers, t] ( ',' variableDeclarator[javadoc, modifiers, t] )* )
// org/argouml/language/java/reveng/Java.g:862:9: variableDeclarator[javadoc, modifiers, t] ( ',' variableDeclarator[javadoc, modifiers, t] )*
{
pushFollow(FOLLOW_variableDeclarator_in_variableDeclarators2797);
variableDeclarator(javadoc, modifiers, t);
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:863:9: ( ',' variableDeclarator[javadoc, modifiers, t] )*
loop58:
while (true) {
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==41) ) {
alt58=1;
}
switch (alt58) {
case 1 :
// org/argouml/language/java/reveng/Java.g:863:10: ',' variableDeclarator[javadoc, modifiers, t]
{
match(input,41,FOLLOW_41_in_variableDeclarators2809); if (state.failed) return;
pushFollow(FOLLOW_variableDeclarator_in_variableDeclarators2811);
variableDeclarator(javadoc, modifiers, t);
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop58;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 42, variableDeclarators_StartIndex); }
}
}
// $ANTLR end "variableDeclarators"
// $ANTLR start "variableDeclarator"
// org/argouml/language/java/reveng/Java.g:866:1: variableDeclarator[String javadoc, short modifiers, String t] : vdi= variableDeclaratorId (eqvi= equalsVariableInitializer )? ;
public final void variableDeclarator(String javadoc, short modifiers, String t) throws RecognitionException {
int variableDeclarator_StartIndex = input.index();
ParserRuleReturnScope vdi =null;
ParserRuleReturnScope eqvi =null;
String b = "";
String id = null;
int ix;
String init = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 43) ) { return; }
// org/argouml/language/java/reveng/Java.g:873:5: (vdi= variableDeclaratorId (eqvi= equalsVariableInitializer )? )
// org/argouml/language/java/reveng/Java.g:873:9: vdi= variableDeclaratorId (eqvi= equalsVariableInitializer )?
{
pushFollow(FOLLOW_variableDeclaratorId_in_variableDeclarator2844);
vdi=variableDeclaratorId();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {
id = (vdi!=null?input.toString(vdi.start,vdi.stop):null);
ix = id.indexOf('[');
if (ix > 0) {
b = id.substring(ix);
id = id.substring(0, ix - 1);
}
}
// org/argouml/language/java/reveng/Java.g:882:9: (eqvi= equalsVariableInitializer )?
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==52) ) {
alt59=1;
}
switch (alt59) {
case 1 :
// org/argouml/language/java/reveng/Java.g:883:13: eqvi= equalsVariableInitializer
{
if ( state.backtracking==0 ) {
if ((parserMode & MODE_REVENG_SEQUENCE) != 0
&& "new".equals(input.LT(2).getText())) {
createdObjectVarName = input.LT(0).getText();
}
}
pushFollow(FOLLOW_equalsVariableInitializer_in_variableDeclarator2896);
eqvi=equalsVariableInitializer();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {
init = (eqvi!=null?input.toString(eqvi.start,eqvi.stop):null).substring(1);
createdObjectVarName = null;
}
}
break;
}
if ( state.backtracking==0 ) {
if (!isInCompoundStatement() && level > 0) {
getModeller().addAttribute(modifiers, t + b, id, init, javadoc,
(parserMode == MODE_IMPORT_PASS2));
}
if ((parserMode & MODE_REVENG_SEQUENCE) != 0) {
getModeller().addLocalVariableDeclaration(t + b, id);
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 43, variableDeclarator_StartIndex); }
}
}
// $ANTLR end "variableDeclarator"
// $ANTLR start "constantDeclaratorsRest"
// org/argouml/language/java/reveng/Java.g:906:1: constantDeclaratorsRest[String javadoc, String name, short modifiers, String t] : constantDeclaratorRest[javadoc, name, modifiers, t] ( ',' constantDeclarator[javadoc, modifiers, t] )* ;
public final void constantDeclaratorsRest(String javadoc, String name, short modifiers, String t) throws RecognitionException {
int constantDeclaratorsRest_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 44) ) { return; }
// org/argouml/language/java/reveng/Java.g:907:5: ( constantDeclaratorRest[javadoc, name, modifiers, t] ( ',' constantDeclarator[javadoc, modifiers, t] )* )
// org/argouml/language/java/reveng/Java.g:907:9: constantDeclaratorRest[javadoc, name, modifiers, t] ( ',' constantDeclarator[javadoc, modifiers, t] )*
{
pushFollow(FOLLOW_constantDeclaratorRest_in_constantDeclaratorsRest2951);
constantDeclaratorRest(javadoc, name, modifiers, t);
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:908:9: ( ',' constantDeclarator[javadoc, modifiers, t] )*
loop60:
while (true) {
int alt60=2;
int LA60_0 = input.LA(1);
if ( (LA60_0==41) ) {
alt60=1;
}
switch (alt60) {
case 1 :
// org/argouml/language/java/reveng/Java.g:908:10: ',' constantDeclarator[javadoc, modifiers, t]
{
match(input,41,FOLLOW_41_in_constantDeclaratorsRest2963); if (state.failed) return;
pushFollow(FOLLOW_constantDeclarator_in_constantDeclaratorsRest2965);
constantDeclarator(javadoc, modifiers, t);
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop60;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 44, constantDeclaratorsRest_StartIndex); }
}
}
// $ANTLR end "constantDeclaratorsRest"
// $ANTLR start "constantDeclaratorRest"
// org/argouml/language/java/reveng/Java.g:911:1: constantDeclaratorRest[String javadoc, String name, short modifiers, String t] : ( '[' ']' )* eqvi= equalsVariableInitializer ;
public final void constantDeclaratorRest(String javadoc, String name, short modifiers, String t) throws RecognitionException {
int constantDeclaratorRest_StartIndex = input.index();
ParserRuleReturnScope eqvi =null;
StringBuffer sb = new StringBuffer(80);
if (t != null) {
sb.append(t);
}
String trackedSoFar = null;
String init = null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 45) ) { return; }
// org/argouml/language/java/reveng/Java.g:920:5: ( ( '[' ']' )* eqvi= equalsVariableInitializer )
// org/argouml/language/java/reveng/Java.g:920:9: ( '[' ']' )* eqvi= equalsVariableInitializer
{
// org/argouml/language/java/reveng/Java.g:920:9: ( '[' ']' )*
loop61:
while (true) {
int alt61=2;
int LA61_0 = input.LA(1);
if ( (LA61_0==57) ) {
alt61=1;
}
switch (alt61) {
case 1 :
// org/argouml/language/java/reveng/Java.g:920:10: '[' ']'
{
match(input,57,FOLLOW_57_in_constantDeclaratorRest2997); if (state.failed) return;
match(input,58,FOLLOW_58_in_constantDeclaratorRest2999); if (state.failed) return;
if ( state.backtracking==0 ) { sb.append("[]"); }
}
break;
default :
break loop61;
}
}
if ( state.backtracking==0 ) {
if ((parserMode & MODE_REVENG_SEQUENCE) != 0
&& "new".equals(input.LT(2).getText())) {
createdObjectVarName = input.LT(0).getText();
}
}
pushFollow(FOLLOW_equalsVariableInitializer_in_constantDeclaratorRest3028);
eqvi=equalsVariableInitializer();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {
init = (eqvi!=null?input.toString(eqvi.start,eqvi.stop):null).substring(1);
createdObjectVarName = null;
if (!isInCompoundStatement() && level > 0) {
getModeller().addAttribute(modifiers, sb.toString(), name,
init, javadoc, (parserMode == MODE_IMPORT_PASS2));
}
if ((parserMode & MODE_REVENG_SEQUENCE) != 0) {
getModeller().addLocalVariableDeclaration(sb.toString(), name);
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 45, constantDeclaratorRest_StartIndex); }
}
}
// $ANTLR end "constantDeclaratorRest"
public static class variableDeclaratorId_return extends ParserRuleReturnScope {
};
// $ANTLR start "variableDeclaratorId"
// org/argouml/language/java/reveng/Java.g:941:1: variableDeclaratorId : Identifier ( '[' ']' )* ;
public final JavaParser.variableDeclaratorId_return variableDeclaratorId() throws RecognitionException {
JavaParser.variableDeclaratorId_return retval = new JavaParser.variableDeclaratorId_return();
retval.start = input.LT(1);
int variableDeclaratorId_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 46) ) { return retval; }
// org/argouml/language/java/reveng/Java.g:942:5: ( Identifier ( '[' ']' )* )
// org/argouml/language/java/reveng/Java.g:942:9: Identifier ( '[' ']' )*
{
match(input,Identifier,FOLLOW_Identifier_in_variableDeclaratorId3057); if (state.failed) return retval;
// org/argouml/language/java/reveng/Java.g:942:20: ( '[' ']' )*
loop62:
while (true) {
int alt62=2;
int LA62_0 = input.LA(1);
if ( (LA62_0==57) ) {
alt62=1;
}
switch (alt62) {
case 1 :
// org/argouml/language/java/reveng/Java.g:942:21: '[' ']'
{
match(input,57,FOLLOW_57_in_variableDeclaratorId3060); if (state.failed) return retval;
match(input,58,FOLLOW_58_in_variableDeclaratorId3062); if (state.failed) return retval;
}
break;
default :
break loop62;
}
}
}
retval.stop = input.LT(-1);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 46, variableDeclaratorId_StartIndex); }
}
return retval;
}
// $ANTLR end "variableDeclaratorId"
public static class equalsVariableInitializer_return extends ParserRuleReturnScope {
};
// $ANTLR start "equalsVariableInitializer"
// org/argouml/language/java/reveng/Java.g:945:1: equalsVariableInitializer : '=' variableInitializer ;
public final JavaParser.equalsVariableInitializer_return equalsVariableInitializer() throws RecognitionException {
JavaParser.equalsVariableInitializer_return retval = new JavaParser.equalsVariableInitializer_return();
retval.start = input.LT(1);
int equalsVariableInitializer_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 47) ) { return retval; }
// org/argouml/language/java/reveng/Java.g:946:5: ( '=' variableInitializer )
// org/argouml/language/java/reveng/Java.g:947:9: '=' variableInitializer
{
match(input,52,FOLLOW_52_in_equalsVariableInitializer3092); if (state.failed) return retval;
pushFollow(FOLLOW_variableInitializer_in_equalsVariableInitializer3094);
variableInitializer();
state._fsp--;
if (state.failed) return retval;
}
retval.stop = input.LT(-1);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 47, equalsVariableInitializer_StartIndex); }
}
return retval;
}
// $ANTLR end "equalsVariableInitializer"
// $ANTLR start "variableInitializer"
// org/argouml/language/java/reveng/Java.g:950:1: variableInitializer : ( arrayInitializer | expression );
public final void variableInitializer() throws RecognitionException {
int variableInitializer_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 48) ) { return; }
// org/argouml/language/java/reveng/Java.g:951:5: ( arrayInitializer | expression )
int alt63=2;
int LA63_0 = input.LA(1);
if ( (LA63_0==110) ) {
alt63=1;
}
else if ( ((LA63_0 >= CharacterLiteral && LA63_0 <= DecimalLiteral)||LA63_0==FloatingPointLiteral||(LA63_0 >= HexLiteral && LA63_0 <= Identifier)||(LA63_0 >= OctalLiteral && LA63_0 <= StringLiteral)||LA63_0==27||LA63_0==34||(LA63_0 >= 38 && LA63_0 <= 39)||(LA63_0 >= 42 && LA63_0 <= 43)||LA63_0==62||LA63_0==64||LA63_0==67||LA63_0==72||LA63_0==75||LA63_0==78||LA63_0==84||LA63_0==86||(LA63_0 >= 88 && LA63_0 <= 89)||LA63_0==95||LA63_0==98||LA63_0==101||LA63_0==105||LA63_0==107||LA63_0==115) ) {
alt63=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 63, 0, input);
throw nvae;
}
switch (alt63) {
case 1 :
// org/argouml/language/java/reveng/Java.g:951:9: arrayInitializer
{
pushFollow(FOLLOW_arrayInitializer_in_variableInitializer3113);
arrayInitializer();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:952:9: expression
{
pushFollow(FOLLOW_expression_in_variableInitializer3123);
expression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 48, variableInitializer_StartIndex); }
}
}
// $ANTLR end "variableInitializer"
// $ANTLR start "arrayInitializer"
// org/argouml/language/java/reveng/Java.g:955:1: arrayInitializer : '{' ( variableInitializer ( ',' variableInitializer )* ( ',' )? )? '}' ;
public final void arrayInitializer() throws RecognitionException {
int arrayInitializer_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 49) ) { return; }
// org/argouml/language/java/reveng/Java.g:956:5: ( '{' ( variableInitializer ( ',' variableInitializer )* ( ',' )? )? '}' )
// org/argouml/language/java/reveng/Java.g:956:9: '{' ( variableInitializer ( ',' variableInitializer )* ( ',' )? )? '}'
{
match(input,110,FOLLOW_110_in_arrayInitializer3150); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:956:13: ( variableInitializer ( ',' variableInitializer )* ( ',' )? )?
int alt66=2;
int LA66_0 = input.LA(1);
if ( ((LA66_0 >= CharacterLiteral && LA66_0 <= DecimalLiteral)||LA66_0==FloatingPointLiteral||(LA66_0 >= HexLiteral && LA66_0 <= Identifier)||(LA66_0 >= OctalLiteral && LA66_0 <= StringLiteral)||LA66_0==27||LA66_0==34||(LA66_0 >= 38 && LA66_0 <= 39)||(LA66_0 >= 42 && LA66_0 <= 43)||LA66_0==62||LA66_0==64||LA66_0==67||LA66_0==72||LA66_0==75||LA66_0==78||LA66_0==84||LA66_0==86||(LA66_0 >= 88 && LA66_0 <= 89)||LA66_0==95||LA66_0==98||LA66_0==101||LA66_0==105||LA66_0==107||LA66_0==110||LA66_0==115) ) {
alt66=1;
}
switch (alt66) {
case 1 :
// org/argouml/language/java/reveng/Java.g:956:14: variableInitializer ( ',' variableInitializer )* ( ',' )?
{
pushFollow(FOLLOW_variableInitializer_in_arrayInitializer3153);
variableInitializer();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:956:34: ( ',' variableInitializer )*
loop64:
while (true) {
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==41) ) {
int LA64_1 = input.LA(2);
if ( ((LA64_1 >= CharacterLiteral && LA64_1 <= DecimalLiteral)||LA64_1==FloatingPointLiteral||(LA64_1 >= HexLiteral && LA64_1 <= Identifier)||(LA64_1 >= OctalLiteral && LA64_1 <= StringLiteral)||LA64_1==27||LA64_1==34||(LA64_1 >= 38 && LA64_1 <= 39)||(LA64_1 >= 42 && LA64_1 <= 43)||LA64_1==62||LA64_1==64||LA64_1==67||LA64_1==72||LA64_1==75||LA64_1==78||LA64_1==84||LA64_1==86||(LA64_1 >= 88 && LA64_1 <= 89)||LA64_1==95||LA64_1==98||LA64_1==101||LA64_1==105||LA64_1==107||LA64_1==110||LA64_1==115) ) {
alt64=1;
}
}
switch (alt64) {
case 1 :
// org/argouml/language/java/reveng/Java.g:956:35: ',' variableInitializer
{
match(input,41,FOLLOW_41_in_arrayInitializer3156); if (state.failed) return;
pushFollow(FOLLOW_variableInitializer_in_arrayInitializer3158);
variableInitializer();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop64;
}
}
// org/argouml/language/java/reveng/Java.g:956:61: ( ',' )?
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==41) ) {
alt65=1;
}
switch (alt65) {
case 1 :
// org/argouml/language/java/reveng/Java.g:956:62: ','
{
match(input,41,FOLLOW_41_in_arrayInitializer3163); if (state.failed) return;
}
break;
}
}
break;
}
match(input,114,FOLLOW_114_in_arrayInitializer3170); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 49, arrayInitializer_StartIndex); }
}
}
// $ANTLR end "arrayInitializer"
// $ANTLR start "modifier"
// org/argouml/language/java/reveng/Java.g:959:1: modifier returns [short m = 0] : ( annotation | 'public' | 'protected' | 'private' | 'static' | 'abstract' | 'final' | 'native' | 'synchronized' | 'transient' | 'volatile' | 'strictfp' );
public final short modifier() throws RecognitionException {
short m = 0;
int modifier_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 50) ) { return m; }
// org/argouml/language/java/reveng/Java.g:960:5: ( annotation | 'public' | 'protected' | 'private' | 'static' | 'abstract' | 'final' | 'native' | 'synchronized' | 'transient' | 'volatile' | 'strictfp' )
int alt67=12;
switch ( input.LA(1) ) {
case 56:
{
alt67=1;
}
break;
case 93:
{
alt67=2;
}
break;
case 92:
{
alt67=3;
}
break;
case 91:
{
alt67=4;
}
break;
case 96:
{
alt67=5;
}
break;
case 61:
{
alt67=6;
}
break;
case 76:
{
alt67=7;
}
break;
case 87:
{
alt67=8;
}
break;
case 100:
{
alt67=9;
}
break;
case 104:
{
alt67=10;
}
break;
case 108:
{
alt67=11;
}
break;
case 97:
{
alt67=12;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return m;}
NoViableAltException nvae =
new NoViableAltException("", 67, 0, input);
throw nvae;
}
switch (alt67) {
case 1 :
// org/argouml/language/java/reveng/Java.g:960:9: annotation
{
pushFollow(FOLLOW_annotation_in_modifier3193);
annotation();
state._fsp--;
if (state.failed) return m;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:961:9: 'public'
{
match(input,93,FOLLOW_93_in_modifier3203); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_PUBLIC; }
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:962:9: 'protected'
{
match(input,92,FOLLOW_92_in_modifier3221); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_PROTECTED; }
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:963:9: 'private'
{
match(input,91,FOLLOW_91_in_modifier3236); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_PRIVATE; }
}
break;
case 5 :
// org/argouml/language/java/reveng/Java.g:964:9: 'static'
{
match(input,96,FOLLOW_96_in_modifier3253); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_STATIC; }
}
break;
case 6 :
// org/argouml/language/java/reveng/Java.g:965:9: 'abstract'
{
match(input,61,FOLLOW_61_in_modifier3271); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_ABSTRACT; }
}
break;
case 7 :
// org/argouml/language/java/reveng/Java.g:966:9: 'final'
{
match(input,76,FOLLOW_76_in_modifier3287); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_FINAL; }
}
break;
case 8 :
// org/argouml/language/java/reveng/Java.g:967:9: 'native'
{
match(input,87,FOLLOW_87_in_modifier3306); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_NATIVE; }
}
break;
case 9 :
// org/argouml/language/java/reveng/Java.g:968:9: 'synchronized'
{
match(input,100,FOLLOW_100_in_modifier3324); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_SYNCHRONIZED; }
}
break;
case 10 :
// org/argouml/language/java/reveng/Java.g:969:9: 'transient'
{
match(input,104,FOLLOW_104_in_modifier3336); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_TRANSIENT; }
}
break;
case 11 :
// org/argouml/language/java/reveng/Java.g:970:9: 'volatile'
{
match(input,108,FOLLOW_108_in_modifier3351); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_VOLATILE; }
}
break;
case 12 :
// org/argouml/language/java/reveng/Java.g:971:9: 'strictfp'
{
match(input,97,FOLLOW_97_in_modifier3367); if (state.failed) return m;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 50, modifier_StartIndex); }
}
return m;
}
// $ANTLR end "modifier"
// $ANTLR start "packageOrTypeName"
// org/argouml/language/java/reveng/Java.g:974:1: packageOrTypeName : qualifiedName ;
public final void packageOrTypeName() throws RecognitionException {
int packageOrTypeName_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 51) ) { return; }
// org/argouml/language/java/reveng/Java.g:975:5: ( qualifiedName )
// org/argouml/language/java/reveng/Java.g:975:9: qualifiedName
{
pushFollow(FOLLOW_qualifiedName_in_packageOrTypeName3386);
qualifiedName();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 51, packageOrTypeName_StartIndex); }
}
}
// $ANTLR end "packageOrTypeName"
// $ANTLR start "enumConstantName"
// org/argouml/language/java/reveng/Java.g:978:1: enumConstantName : Identifier ;
public final void enumConstantName() throws RecognitionException {
int enumConstantName_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 52) ) { return; }
// org/argouml/language/java/reveng/Java.g:979:5: ( Identifier )
// org/argouml/language/java/reveng/Java.g:979:9: Identifier
{
match(input,Identifier,FOLLOW_Identifier_in_enumConstantName3405); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 52, enumConstantName_StartIndex); }
}
}
// $ANTLR end "enumConstantName"
// $ANTLR start "typeName"
// org/argouml/language/java/reveng/Java.g:982:1: typeName : qualifiedName ;
public final void typeName() throws RecognitionException {
int typeName_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 53) ) { return; }
// org/argouml/language/java/reveng/Java.g:983:5: ( qualifiedName )
// org/argouml/language/java/reveng/Java.g:983:9: qualifiedName
{
pushFollow(FOLLOW_qualifiedName_in_typeName3424);
qualifiedName();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 53, typeName_StartIndex); }
}
}
// $ANTLR end "typeName"
// $ANTLR start "type"
// org/argouml/language/java/reveng/Java.g:986:1: type returns [String t = null] : (coit= classOrInterfaceType ( '[' ']' )* |pt= primitiveType ( '[' ']' )* ) ;
public final String type() throws RecognitionException {
String t = null;
int type_StartIndex = input.index();
String coit =null;
ParserRuleReturnScope pt =null;
StringBuffer sb = new StringBuffer();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 54) ) { return t; }
// org/argouml/language/java/reveng/Java.g:990:5: ( (coit= classOrInterfaceType ( '[' ']' )* |pt= primitiveType ( '[' ']' )* ) )
// org/argouml/language/java/reveng/Java.g:990:9: (coit= classOrInterfaceType ( '[' ']' )* |pt= primitiveType ( '[' ']' )* )
{
// org/argouml/language/java/reveng/Java.g:990:9: (coit= classOrInterfaceType ( '[' ']' )* |pt= primitiveType ( '[' ']' )* )
int alt70=2;
int LA70_0 = input.LA(1);
if ( (LA70_0==Identifier) ) {
alt70=1;
}
else if ( (LA70_0==62||LA70_0==64||LA70_0==67||LA70_0==72||LA70_0==78||LA70_0==84||LA70_0==86||LA70_0==95) ) {
alt70=2;
}
else {
if (state.backtracking>0) {state.failed=true; return t;}
NoViableAltException nvae =
new NoViableAltException("", 70, 0, input);
throw nvae;
}
switch (alt70) {
case 1 :
// org/argouml/language/java/reveng/Java.g:991:13: coit= classOrInterfaceType ( '[' ']' )*
{
pushFollow(FOLLOW_classOrInterfaceType_in_type3471);
coit=classOrInterfaceType();
state._fsp--;
if (state.failed) return t;
if ( state.backtracking==0 ) { sb.append(coit); }
// org/argouml/language/java/reveng/Java.g:992:13: ( '[' ']' )*
loop68:
while (true) {
int alt68=2;
int LA68_0 = input.LA(1);
if ( (LA68_0==57) ) {
alt68=1;
}
switch (alt68) {
case 1 :
// org/argouml/language/java/reveng/Java.g:992:14: '[' ']'
{
match(input,57,FOLLOW_57_in_type3488); if (state.failed) return t;
match(input,58,FOLLOW_58_in_type3490); if (state.failed) return t;
if ( state.backtracking==0 ) { sb.append("[]"); }
}
break;
default :
break loop68;
}
}
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:994:13: pt= primitiveType ( '[' ']' )*
{
pushFollow(FOLLOW_primitiveType_in_type3540);
pt=primitiveType();
state._fsp--;
if (state.failed) return t;
if ( state.backtracking==0 ) { sb.append((pt!=null?input.toString(pt.start,pt.stop):null)); }
// org/argouml/language/java/reveng/Java.g:995:13: ( '[' ']' )*
loop69:
while (true) {
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==57) ) {
alt69=1;
}
switch (alt69) {
case 1 :
// org/argouml/language/java/reveng/Java.g:995:14: '[' ']'
{
match(input,57,FOLLOW_57_in_type3566); if (state.failed) return t;
match(input,58,FOLLOW_58_in_type3568); if (state.failed) return t;
if ( state.backtracking==0 ) { sb.append("[]"); }
}
break;
default :
break loop69;
}
}
}
break;
}
if ( state.backtracking==0 ) {
t = sb.toString();
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 54, type_StartIndex); }
}
return t;
}
// $ANTLR end "type"
// $ANTLR start "classOrInterfaceType"
// org/argouml/language/java/reveng/Java.g:1003:1: classOrInterfaceType returns [String t = null] : t1= Identifier (ta= typeArguments )? ( '.' t3= Identifier (ta= typeArguments )? )* ;
public final String classOrInterfaceType() throws RecognitionException {
String t = null;
int classOrInterfaceType_StartIndex = input.index();
Token t1=null;
Token t3=null;
ParserRuleReturnScope ta =null;
StringBuffer sb = new StringBuffer();
// TODO: type arguments not currently returned
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 55) ) { return t; }
// org/argouml/language/java/reveng/Java.g:1008:5: (t1= Identifier (ta= typeArguments )? ( '.' t3= Identifier (ta= typeArguments )? )* )
// org/argouml/language/java/reveng/Java.g:1008:9: t1= Identifier (ta= typeArguments )? ( '.' t3= Identifier (ta= typeArguments )? )*
{
t1=(Token)match(input,Identifier,FOLLOW_Identifier_in_classOrInterfaceType3655); if (state.failed) return t;
// org/argouml/language/java/reveng/Java.g:1008:23: (ta= typeArguments )?
int alt71=2;
int LA71_0 = input.LA(1);
if ( (LA71_0==51) ) {
int LA71_1 = input.LA(2);
if ( (LA71_1==Identifier||LA71_1==55||LA71_1==62||LA71_1==64||LA71_1==67||LA71_1==72||LA71_1==78||LA71_1==84||LA71_1==86||LA71_1==95) ) {
alt71=1;
}
}
switch (alt71) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1008:24: ta= typeArguments
{
pushFollow(FOLLOW_typeArguments_in_classOrInterfaceType3660);
ta=typeArguments();
state._fsp--;
if (state.failed) return t;
}
break;
}
if ( state.backtracking==0 ) { sb.append((t1!=null?t1.getText():null)); }
// org/argouml/language/java/reveng/Java.g:1009:9: ( '.' t3= Identifier (ta= typeArguments )? )*
loop73:
while (true) {
int alt73=2;
int LA73_0 = input.LA(1);
if ( (LA73_0==45) ) {
alt73=1;
}
switch (alt73) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1009:13: '.' t3= Identifier (ta= typeArguments )?
{
match(input,45,FOLLOW_45_in_classOrInterfaceType3681); if (state.failed) return t;
t3=(Token)match(input,Identifier,FOLLOW_Identifier_in_classOrInterfaceType3685); if (state.failed) return t;
if ( state.backtracking==0 ) { sb.append('.').append((t3!=null?t3.getText():null)); }
// org/argouml/language/java/reveng/Java.g:1010:13: (ta= typeArguments )?
int alt72=2;
int LA72_0 = input.LA(1);
if ( (LA72_0==51) ) {
int LA72_1 = input.LA(2);
if ( (LA72_1==Identifier||LA72_1==55||LA72_1==62||LA72_1==64||LA72_1==67||LA72_1==72||LA72_1==78||LA72_1==84||LA72_1==86||LA72_1==95) ) {
alt72=1;
}
}
switch (alt72) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1010:14: ta= typeArguments
{
pushFollow(FOLLOW_typeArguments_in_classOrInterfaceType3704);
ta=typeArguments();
state._fsp--;
if (state.failed) return t;
}
break;
}
}
break;
default :
break loop73;
}
}
if ( state.backtracking==0 ) {
t = sb.toString()+((ta!=null?input.toString(ta.start,ta.stop):null) != null ? (ta!=null?input.toString(ta.start,ta.stop):null) : "");
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 55, classOrInterfaceType_StartIndex); }
}
return t;
}
// $ANTLR end "classOrInterfaceType"
public static class primitiveType_return extends ParserRuleReturnScope {
};
// $ANTLR start "primitiveType"
// org/argouml/language/java/reveng/Java.g:1017:1: primitiveType : ( 'boolean' | 'char' | 'byte' | 'short' | 'int' | 'long' | 'float' | 'double' );
public final JavaParser.primitiveType_return primitiveType() throws RecognitionException {
JavaParser.primitiveType_return retval = new JavaParser.primitiveType_return();
retval.start = input.LT(1);
int primitiveType_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 56) ) { return retval; }
// org/argouml/language/java/reveng/Java.g:1018:5: ( 'boolean' | 'char' | 'byte' | 'short' | 'int' | 'long' | 'float' | 'double' )
// org/argouml/language/java/reveng/Java.g:
{
if ( input.LA(1)==62||input.LA(1)==64||input.LA(1)==67||input.LA(1)==72||input.LA(1)==78||input.LA(1)==84||input.LA(1)==86||input.LA(1)==95 ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 56, primitiveType_StartIndex); }
}
return retval;
}
// $ANTLR end "primitiveType"
// $ANTLR start "variableModifier"
// org/argouml/language/java/reveng/Java.g:1028:1: variableModifier returns [short m = 0] : ( 'final' | annotation );
public final short variableModifier() throws RecognitionException {
short m = 0;
int variableModifier_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 57) ) { return m; }
// org/argouml/language/java/reveng/Java.g:1029:5: ( 'final' | annotation )
int alt74=2;
int LA74_0 = input.LA(1);
if ( (LA74_0==76) ) {
alt74=1;
}
else if ( (LA74_0==56) ) {
alt74=2;
}
else {
if (state.backtracking>0) {state.failed=true; return m;}
NoViableAltException nvae =
new NoViableAltException("", 74, 0, input);
throw nvae;
}
switch (alt74) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1029:9: 'final'
{
match(input,76,FOLLOW_76_in_variableModifier3839); if (state.failed) return m;
if ( state.backtracking==0 ) { m = ACC_FINAL; }
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1030:9: annotation
{
pushFollow(FOLLOW_annotation_in_variableModifier3851);
annotation();
state._fsp--;
if (state.failed) return m;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 57, variableModifier_StartIndex); }
}
return m;
}
// $ANTLR end "variableModifier"
public static class typeArguments_return extends ParserRuleReturnScope {
};
// $ANTLR start "typeArguments"
// org/argouml/language/java/reveng/Java.g:1033:1: typeArguments : '<' typeArgument ( ',' typeArgument )* '>' ;
public final JavaParser.typeArguments_return typeArguments() throws RecognitionException {
JavaParser.typeArguments_return retval = new JavaParser.typeArguments_return();
retval.start = input.LT(1);
int typeArguments_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 58) ) { return retval; }
// org/argouml/language/java/reveng/Java.g:1034:5: ( '<' typeArgument ( ',' typeArgument )* '>' )
// org/argouml/language/java/reveng/Java.g:1034:9: '<' typeArgument ( ',' typeArgument )* '>'
{
match(input,51,FOLLOW_51_in_typeArguments3870); if (state.failed) return retval;
pushFollow(FOLLOW_typeArgument_in_typeArguments3872);
typeArgument();
state._fsp--;
if (state.failed) return retval;
// org/argouml/language/java/reveng/Java.g:1034:26: ( ',' typeArgument )*
loop75:
while (true) {
int alt75=2;
int LA75_0 = input.LA(1);
if ( (LA75_0==41) ) {
alt75=1;
}
switch (alt75) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1034:27: ',' typeArgument
{
match(input,41,FOLLOW_41_in_typeArguments3875); if (state.failed) return retval;
pushFollow(FOLLOW_typeArgument_in_typeArguments3877);
typeArgument();
state._fsp--;
if (state.failed) return retval;
}
break;
default :
break loop75;
}
}
match(input,54,FOLLOW_54_in_typeArguments3881); if (state.failed) return retval;
}
retval.stop = input.LT(-1);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 58, typeArguments_StartIndex); }
}
return retval;
}
// $ANTLR end "typeArguments"
// $ANTLR start "typeArgument"
// org/argouml/language/java/reveng/Java.g:1037:1: typeArgument : ( type | '?' ( ( 'extends' | 'super' ) type )? );
public final void typeArgument() throws RecognitionException {
int typeArgument_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 59) ) { return; }
// org/argouml/language/java/reveng/Java.g:1038:5: ( type | '?' ( ( 'extends' | 'super' ) type )? )
int alt77=2;
int LA77_0 = input.LA(1);
if ( (LA77_0==Identifier||LA77_0==62||LA77_0==64||LA77_0==67||LA77_0==72||LA77_0==78||LA77_0==84||LA77_0==86||LA77_0==95) ) {
alt77=1;
}
else if ( (LA77_0==55) ) {
alt77=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 77, 0, input);
throw nvae;
}
switch (alt77) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1038:9: type
{
pushFollow(FOLLOW_type_in_typeArgument3904);
type();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1039:9: '?' ( ( 'extends' | 'super' ) type )?
{
match(input,55,FOLLOW_55_in_typeArgument3914); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1039:13: ( ( 'extends' | 'super' ) type )?
int alt76=2;
int LA76_0 = input.LA(1);
if ( (LA76_0==74||LA76_0==98) ) {
alt76=1;
}
switch (alt76) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1039:14: ( 'extends' | 'super' ) type
{
if ( input.LA(1)==74||input.LA(1)==98 ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_type_in_typeArgument3925);
type();
state._fsp--;
if (state.failed) return;
}
break;
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 59, typeArgument_StartIndex); }
}
}
// $ANTLR end "typeArgument"
// $ANTLR start "qualifiedNameList"
// org/argouml/language/java/reveng/Java.g:1042:1: qualifiedNameList : qualifiedName ( ',' qualifiedName )* ;
public final void qualifiedNameList() throws RecognitionException {
int qualifiedNameList_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 60) ) { return; }
// org/argouml/language/java/reveng/Java.g:1043:5: ( qualifiedName ( ',' qualifiedName )* )
// org/argouml/language/java/reveng/Java.g:1043:9: qualifiedName ( ',' qualifiedName )*
{
pushFollow(FOLLOW_qualifiedName_in_qualifiedNameList3950);
qualifiedName();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1043:23: ( ',' qualifiedName )*
loop78:
while (true) {
int alt78=2;
int LA78_0 = input.LA(1);
if ( (LA78_0==41) ) {
alt78=1;
}
switch (alt78) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1043:24: ',' qualifiedName
{
match(input,41,FOLLOW_41_in_qualifiedNameList3953); if (state.failed) return;
pushFollow(FOLLOW_qualifiedName_in_qualifiedNameList3955);
qualifiedName();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop78;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 60, qualifiedNameList_StartIndex); }
}
}
// $ANTLR end "qualifiedNameList"
// $ANTLR start "formalParameters"
// org/argouml/language/java/reveng/Java.g:1046:1: formalParameters returns [List<ParameterDeclaration> paramList=new ArrayList<ParameterDeclaration>()] : '(' ( formalParameterDecls[paramList] )? ')' ;
public final List<ParameterDeclaration> formalParameters() throws RecognitionException {
List<ParameterDeclaration> paramList = new ArrayList<ParameterDeclaration>();
int formalParameters_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 61) ) { return paramList; }
// org/argouml/language/java/reveng/Java.g:1047:5: ( '(' ( formalParameterDecls[paramList] )? ')' )
// org/argouml/language/java/reveng/Java.g:1047:9: '(' ( formalParameterDecls[paramList] )? ')'
{
match(input,34,FOLLOW_34_in_formalParameters3980); if (state.failed) return paramList;
// org/argouml/language/java/reveng/Java.g:1047:13: ( formalParameterDecls[paramList] )?
int alt79=2;
int LA79_0 = input.LA(1);
if ( (LA79_0==Identifier||LA79_0==56||LA79_0==62||LA79_0==64||LA79_0==67||LA79_0==72||LA79_0==76||LA79_0==78||LA79_0==84||LA79_0==86||LA79_0==95) ) {
alt79=1;
}
switch (alt79) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1047:14: formalParameterDecls[paramList]
{
pushFollow(FOLLOW_formalParameterDecls_in_formalParameters3983);
formalParameterDecls(paramList);
state._fsp--;
if (state.failed) return paramList;
}
break;
}
match(input,35,FOLLOW_35_in_formalParameters3988); if (state.failed) return paramList;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 61, formalParameters_StartIndex); }
}
return paramList;
}
// $ANTLR end "formalParameters"
// $ANTLR start "formalParameterDecls"
// org/argouml/language/java/reveng/Java.g:1050:1: formalParameterDecls[List<ParameterDeclaration> paramList] : mods= variableModifiers t= type formalParameterDeclsRest[mods, t, paramList] ;
public final void formalParameterDecls(List<ParameterDeclaration> paramList) throws RecognitionException {
int formalParameterDecls_StartIndex = input.index();
short mods =0;
String t =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 62) ) { return; }
// org/argouml/language/java/reveng/Java.g:1051:5: (mods= variableModifiers t= type formalParameterDeclsRest[mods, t, paramList] )
// org/argouml/language/java/reveng/Java.g:1051:9: mods= variableModifiers t= type formalParameterDeclsRest[mods, t, paramList]
{
pushFollow(FOLLOW_variableModifiers_in_formalParameterDecls4014);
mods=variableModifiers();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_type_in_formalParameterDecls4018);
t=type();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_formalParameterDeclsRest_in_formalParameterDecls4020);
formalParameterDeclsRest(mods, t, paramList);
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 62, formalParameterDecls_StartIndex); }
}
}
// $ANTLR end "formalParameterDecls"
// $ANTLR start "formalParameterDeclsRest"
// org/argouml/language/java/reveng/Java.g:1054:1: formalParameterDeclsRest[short mods, String t, List<ParameterDeclaration> paramList] : (vdi= variableDeclaratorId ( ',' formalParameterDecls[paramList] )? | '...' vdi= variableDeclaratorId );
public final void formalParameterDeclsRest(short mods, String t, List<ParameterDeclaration> paramList) throws RecognitionException {
int formalParameterDeclsRest_StartIndex = input.index();
ParserRuleReturnScope vdi =null;
String pdb = "";
String id = null;
int ix;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 63) ) { return; }
// org/argouml/language/java/reveng/Java.g:1060:5: (vdi= variableDeclaratorId ( ',' formalParameterDecls[paramList] )? | '...' vdi= variableDeclaratorId )
int alt81=2;
int LA81_0 = input.LA(1);
if ( (LA81_0==Identifier) ) {
alt81=1;
}
else if ( (LA81_0==46) ) {
alt81=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 81, 0, input);
throw nvae;
}
switch (alt81) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1060:9: vdi= variableDeclaratorId ( ',' formalParameterDecls[paramList] )?
{
pushFollow(FOLLOW_variableDeclaratorId_in_formalParameterDeclsRest4051);
vdi=variableDeclaratorId();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {
id = (vdi!=null?input.toString(vdi.start,vdi.stop):null);
ix = id.indexOf('[');
if (ix > 0) {
pdb = id.substring(ix);
id = id.substring(0, ix - 1);
}
paramList.add(new ParameterDeclaration(mods, t + pdb, id));
}
// org/argouml/language/java/reveng/Java.g:1070:9: ( ',' formalParameterDecls[paramList] )?
int alt80=2;
int LA80_0 = input.LA(1);
if ( (LA80_0==41) ) {
alt80=1;
}
switch (alt80) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1070:10: ',' formalParameterDecls[paramList]
{
match(input,41,FOLLOW_41_in_formalParameterDeclsRest4072); if (state.failed) return;
pushFollow(FOLLOW_formalParameterDecls_in_formalParameterDeclsRest4074);
formalParameterDecls(paramList);
state._fsp--;
if (state.failed) return;
}
break;
}
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1071:9: '...' vdi= variableDeclaratorId
{
match(input,46,FOLLOW_46_in_formalParameterDeclsRest4087); if (state.failed) return;
pushFollow(FOLLOW_variableDeclaratorId_in_formalParameterDeclsRest4091);
vdi=variableDeclaratorId();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {
id = (vdi!=null?input.toString(vdi.start,vdi.stop):null);
ix = id.indexOf('[');
if (ix > 0) {
pdb = id.substring(ix);
id = id.substring(0, ix - 1);
}
paramList.add(new ParameterDeclaration(mods, t + "..." + pdb, id));
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 63, formalParameterDeclsRest_StartIndex); }
}
}
// $ANTLR end "formalParameterDeclsRest"
// $ANTLR start "methodBody"
// org/argouml/language/java/reveng/Java.g:1083:1: methodBody : block ;
public final void methodBody() throws RecognitionException {
int methodBody_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 64) ) { return; }
// org/argouml/language/java/reveng/Java.g:1084:5: ( block )
// org/argouml/language/java/reveng/Java.g:1084:9: block
{
pushFollow(FOLLOW_block_in_methodBody4124);
block();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 64, methodBody_StartIndex); }
}
}
// $ANTLR end "methodBody"
public static class constructorBody_return extends ParserRuleReturnScope {
};
// $ANTLR start "constructorBody"
// org/argouml/language/java/reveng/Java.g:1087:1: constructorBody : '{' ( explicitConstructorInvocation )? ( blockStatement )* '}' ;
public final JavaParser.constructorBody_return constructorBody() throws RecognitionException {
JavaParser.constructorBody_return retval = new JavaParser.constructorBody_return();
retval.start = input.LT(1);
int constructorBody_StartIndex = input.index();
boolean isOutestCompStat = !isInCompoundStatement();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 65) ) { return retval; }
// org/argouml/language/java/reveng/Java.g:1091:5: ( '{' ( explicitConstructorInvocation )? ( blockStatement )* '}' )
// org/argouml/language/java/reveng/Java.g:1091:9: '{' ( explicitConstructorInvocation )? ( blockStatement )* '}'
{
if ( state.backtracking==0 ) {
if (isOutestCompStat) {
setIsInCompoundStatement(true);
}
}
match(input,110,FOLLOW_110_in_constructorBody4161); if (state.failed) return retval;
// org/argouml/language/java/reveng/Java.g:1096:13: ( explicitConstructorInvocation )?
int alt82=2;
alt82 = dfa82.predict(input);
switch (alt82) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1096:13: explicitConstructorInvocation
{
pushFollow(FOLLOW_explicitConstructorInvocation_in_constructorBody4163);
explicitConstructorInvocation();
state._fsp--;
if (state.failed) return retval;
}
break;
}
// org/argouml/language/java/reveng/Java.g:1096:44: ( blockStatement )*
loop83:
while (true) {
int alt83=2;
int LA83_0 = input.LA(1);
if ( (LA83_0==ASSERT||(LA83_0 >= CharacterLiteral && LA83_0 <= DecimalLiteral)||LA83_0==ENUM||LA83_0==FloatingPointLiteral||(LA83_0 >= HexLiteral && LA83_0 <= Identifier)||(LA83_0 >= OctalLiteral && LA83_0 <= StringLiteral)||LA83_0==27||LA83_0==34||(LA83_0 >= 38 && LA83_0 <= 39)||(LA83_0 >= 42 && LA83_0 <= 43)||LA83_0==50||LA83_0==56||(LA83_0 >= 61 && LA83_0 <= 64)||(LA83_0 >= 67 && LA83_0 <= 69)||(LA83_0 >= 71 && LA83_0 <= 72)||(LA83_0 >= 75 && LA83_0 <= 76)||(LA83_0 >= 78 && LA83_0 <= 80)||(LA83_0 >= 84 && LA83_0 <= 86)||(LA83_0 >= 88 && LA83_0 <= 89)||(LA83_0 >= 91 && LA83_0 <= 102)||(LA83_0 >= 105 && LA83_0 <= 107)||(LA83_0 >= 109 && LA83_0 <= 110)||LA83_0==115) ) {
alt83=1;
}
switch (alt83) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1096:44: blockStatement
{
pushFollow(FOLLOW_blockStatement_in_constructorBody4166);
blockStatement();
state._fsp--;
if (state.failed) return retval;
}
break;
default :
break loop83;
}
}
match(input,114,FOLLOW_114_in_constructorBody4169); if (state.failed) return retval;
if ( state.backtracking==0 ) {
if (isOutestCompStat) {
String b = input.toString(retval.start,input.LT(-1));
// the body is everything between { and }, but for
// compatibility reasons the last ws's get stripped off
// and a newline is added
b = b.substring(0, b.length() - 1).trim();
setBody(b.substring(1) + '\n');
setIsInCompoundStatement(false);
}
}
}
retval.stop = input.LT(-1);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 65, constructorBody_StartIndex); }
}
return retval;
}
// $ANTLR end "constructorBody"
// $ANTLR start "explicitConstructorInvocation"
// org/argouml/language/java/reveng/Java.g:1110:1: explicitConstructorInvocation : ( ( nonWildcardTypeArguments )? ( 'this' | 'super' ) arguments ';' | primary '.' ( nonWildcardTypeArguments )? 'super' arguments ';' );
public final void explicitConstructorInvocation() throws RecognitionException {
int explicitConstructorInvocation_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 66) ) { return; }
// org/argouml/language/java/reveng/Java.g:1111:5: ( ( nonWildcardTypeArguments )? ( 'this' | 'super' ) arguments ';' | primary '.' ( nonWildcardTypeArguments )? 'super' arguments ';' )
int alt86=2;
switch ( input.LA(1) ) {
case 51:
{
alt86=1;
}
break;
case 101:
{
int LA86_2 = input.LA(2);
if ( (LA86_2==34) ) {
int LA86_15 = input.LA(3);
if ( (synpred118_Java()) ) {
alt86=1;
}
else if ( (true) ) {
alt86=2;
}
}
else if ( (LA86_2==45||LA86_2==57) ) {
alt86=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 86, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CharacterLiteral:
case DecimalLiteral:
case FloatingPointLiteral:
case HexLiteral:
case Identifier:
case OctalLiteral:
case StringLiteral:
case 34:
case 62:
case 64:
case 67:
case 72:
case 75:
case 78:
case 84:
case 86:
case 88:
case 89:
case 95:
case 105:
case 107:
{
alt86=2;
}
break;
case 98:
{
int LA86_4 = input.LA(2);
if ( (LA86_4==34) ) {
int LA86_18 = input.LA(3);
if ( (synpred118_Java()) ) {
alt86=1;
}
else if ( (true) ) {
alt86=2;
}
}
else if ( (LA86_4==45) ) {
alt86=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 86, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 86, 0, input);
throw nvae;
}
switch (alt86) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1111:9: ( nonWildcardTypeArguments )? ( 'this' | 'super' ) arguments ';'
{
// org/argouml/language/java/reveng/Java.g:1111:9: ( nonWildcardTypeArguments )?
int alt84=2;
int LA84_0 = input.LA(1);
if ( (LA84_0==51) ) {
alt84=1;
}
switch (alt84) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1111:10: nonWildcardTypeArguments
{
pushFollow(FOLLOW_nonWildcardTypeArguments_in_explicitConstructorInvocation4199);
nonWildcardTypeArguments();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( input.LA(1)==98||input.LA(1)==101 ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_arguments_in_explicitConstructorInvocation4211);
arguments();
state._fsp--;
if (state.failed) return;
match(input,50,FOLLOW_50_in_explicitConstructorInvocation4213); if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1112:9: primary '.' ( nonWildcardTypeArguments )? 'super' arguments ';'
{
pushFollow(FOLLOW_primary_in_explicitConstructorInvocation4223);
primary();
state._fsp--;
if (state.failed) return;
match(input,45,FOLLOW_45_in_explicitConstructorInvocation4225); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1112:21: ( nonWildcardTypeArguments )?
int alt85=2;
int LA85_0 = input.LA(1);
if ( (LA85_0==51) ) {
alt85=1;
}
switch (alt85) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1112:21: nonWildcardTypeArguments
{
pushFollow(FOLLOW_nonWildcardTypeArguments_in_explicitConstructorInvocation4227);
nonWildcardTypeArguments();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,98,FOLLOW_98_in_explicitConstructorInvocation4230); if (state.failed) return;
pushFollow(FOLLOW_arguments_in_explicitConstructorInvocation4232);
arguments();
state._fsp--;
if (state.failed) return;
match(input,50,FOLLOW_50_in_explicitConstructorInvocation4234); if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 66, explicitConstructorInvocation_StartIndex); }
}
}
// $ANTLR end "explicitConstructorInvocation"
public static class qualifiedName_return extends ParserRuleReturnScope {
};
// $ANTLR start "qualifiedName"
// org/argouml/language/java/reveng/Java.g:1116:1: qualifiedName : Identifier ( '.' Identifier )* ;
public final JavaParser.qualifiedName_return qualifiedName() throws RecognitionException {
JavaParser.qualifiedName_return retval = new JavaParser.qualifiedName_return();
retval.start = input.LT(1);
int qualifiedName_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 67) ) { return retval; }
// org/argouml/language/java/reveng/Java.g:1117:5: ( Identifier ( '.' Identifier )* )
// org/argouml/language/java/reveng/Java.g:1117:9: Identifier ( '.' Identifier )*
{
match(input,Identifier,FOLLOW_Identifier_in_qualifiedName4254); if (state.failed) return retval;
// org/argouml/language/java/reveng/Java.g:1117:20: ( '.' Identifier )*
loop87:
while (true) {
int alt87=2;
int LA87_0 = input.LA(1);
if ( (LA87_0==45) ) {
int LA87_2 = input.LA(2);
if ( (LA87_2==Identifier) ) {
alt87=1;
}
}
switch (alt87) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1117:21: '.' Identifier
{
match(input,45,FOLLOW_45_in_qualifiedName4257); if (state.failed) return retval;
match(input,Identifier,FOLLOW_Identifier_in_qualifiedName4259); if (state.failed) return retval;
}
break;
default :
break loop87;
}
}
}
retval.stop = input.LT(-1);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 67, qualifiedName_StartIndex); }
}
return retval;
}
// $ANTLR end "qualifiedName"
// $ANTLR start "literal"
// org/argouml/language/java/reveng/Java.g:1120:1: literal : ( integerLiteral | FloatingPointLiteral | CharacterLiteral | StringLiteral | booleanLiteral | 'null' );
public final void literal() throws RecognitionException {
int literal_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 68) ) { return; }
// org/argouml/language/java/reveng/Java.g:1121:5: ( integerLiteral | FloatingPointLiteral | CharacterLiteral | StringLiteral | booleanLiteral | 'null' )
int alt88=6;
switch ( input.LA(1) ) {
case DecimalLiteral:
case HexLiteral:
case OctalLiteral:
{
alt88=1;
}
break;
case FloatingPointLiteral:
{
alt88=2;
}
break;
case CharacterLiteral:
{
alt88=3;
}
break;
case StringLiteral:
{
alt88=4;
}
break;
case 75:
case 105:
{
alt88=5;
}
break;
case 89:
{
alt88=6;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 88, 0, input);
throw nvae;
}
switch (alt88) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1121:9: integerLiteral
{
pushFollow(FOLLOW_integerLiteral_in_literal4285);
integerLiteral();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1122:9: FloatingPointLiteral
{
match(input,FloatingPointLiteral,FOLLOW_FloatingPointLiteral_in_literal4295); if (state.failed) return;
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1123:9: CharacterLiteral
{
match(input,CharacterLiteral,FOLLOW_CharacterLiteral_in_literal4305); if (state.failed) return;
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:1124:9: StringLiteral
{
match(input,StringLiteral,FOLLOW_StringLiteral_in_literal4315); if (state.failed) return;
}
break;
case 5 :
// org/argouml/language/java/reveng/Java.g:1125:9: booleanLiteral
{
pushFollow(FOLLOW_booleanLiteral_in_literal4325);
booleanLiteral();
state._fsp--;
if (state.failed) return;
}
break;
case 6 :
// org/argouml/language/java/reveng/Java.g:1126:9: 'null'
{
match(input,89,FOLLOW_89_in_literal4335); if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 68, literal_StartIndex); }
}
}
// $ANTLR end "literal"
// $ANTLR start "integerLiteral"
// org/argouml/language/java/reveng/Java.g:1129:1: integerLiteral : ( HexLiteral | OctalLiteral | DecimalLiteral );
public final void integerLiteral() throws RecognitionException {
int integerLiteral_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 69) ) { return; }
// org/argouml/language/java/reveng/Java.g:1130:5: ( HexLiteral | OctalLiteral | DecimalLiteral )
// org/argouml/language/java/reveng/Java.g:
{
if ( input.LA(1)==DecimalLiteral||input.LA(1)==HexLiteral||input.LA(1)==OctalLiteral ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 69, integerLiteral_StartIndex); }
}
}
// $ANTLR end "integerLiteral"
// $ANTLR start "booleanLiteral"
// org/argouml/language/java/reveng/Java.g:1135:1: booleanLiteral : ( 'true' | 'false' );
public final void booleanLiteral() throws RecognitionException {
int booleanLiteral_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 70) ) { return; }
// org/argouml/language/java/reveng/Java.g:1136:5: ( 'true' | 'false' )
// org/argouml/language/java/reveng/Java.g:
{
if ( input.LA(1)==75||input.LA(1)==105 ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 70, booleanLiteral_StartIndex); }
}
}
// $ANTLR end "booleanLiteral"
// $ANTLR start "annotations"
// org/argouml/language/java/reveng/Java.g:1142:1: annotations : ( annotation )+ ;
public final void annotations() throws RecognitionException {
int annotations_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 71) ) { return; }
// org/argouml/language/java/reveng/Java.g:1143:5: ( ( annotation )+ )
// org/argouml/language/java/reveng/Java.g:1143:9: ( annotation )+
{
// org/argouml/language/java/reveng/Java.g:1143:9: ( annotation )+
int cnt89=0;
loop89:
while (true) {
int alt89=2;
int LA89_0 = input.LA(1);
if ( (LA89_0==56) ) {
int LA89_2 = input.LA(2);
if ( (LA89_2==Identifier) ) {
int LA89_16 = input.LA(3);
if ( (synpred129_Java()) ) {
alt89=1;
}
}
}
switch (alt89) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1143:9: annotation
{
pushFollow(FOLLOW_annotation_in_annotations4424);
annotation();
state._fsp--;
if (state.failed) return;
}
break;
default :
if ( cnt89 >= 1 ) break loop89;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(89, input);
throw eee;
}
cnt89++;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 71, annotations_StartIndex); }
}
}
// $ANTLR end "annotations"
// $ANTLR start "annotation"
// org/argouml/language/java/reveng/Java.g:1146:1: annotation : '@' an= annotationName ( '(' ( elementValuePairs | elementValue )? ')' )? ;
public final void annotation() throws RecognitionException {
int annotation_StartIndex = input.index();
ParserRuleReturnScope an =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 72) ) { return; }
// org/argouml/language/java/reveng/Java.g:1147:5: ( '@' an= annotationName ( '(' ( elementValuePairs | elementValue )? ')' )? )
// org/argouml/language/java/reveng/Java.g:1147:9: '@' an= annotationName ( '(' ( elementValuePairs | elementValue )? ')' )?
{
match(input,56,FOLLOW_56_in_annotation4444); if (state.failed) return;
pushFollow(FOLLOW_annotationName_in_annotation4448);
an=annotationName();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {
getModeller().addAnnotation((an!=null?input.toString(an.start,an.stop):null));
}
// org/argouml/language/java/reveng/Java.g:1151:9: ( '(' ( elementValuePairs | elementValue )? ')' )?
int alt91=2;
int LA91_0 = input.LA(1);
if ( (LA91_0==34) ) {
alt91=1;
}
switch (alt91) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1151:11: '(' ( elementValuePairs | elementValue )? ')'
{
match(input,34,FOLLOW_34_in_annotation4470); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1151:15: ( elementValuePairs | elementValue )?
int alt90=3;
int LA90_0 = input.LA(1);
if ( (LA90_0==Identifier) ) {
int LA90_1 = input.LA(2);
if ( (LA90_1==52) ) {
alt90=1;
}
else if ( ((LA90_1 >= 28 && LA90_1 <= 29)||(LA90_1 >= 31 && LA90_1 <= 32)||(LA90_1 >= 34 && LA90_1 <= 36)||(LA90_1 >= 38 && LA90_1 <= 39)||(LA90_1 >= 42 && LA90_1 <= 43)||LA90_1==45||LA90_1==47||LA90_1==51||(LA90_1 >= 53 && LA90_1 <= 55)||LA90_1==57||LA90_1==59||LA90_1==83||LA90_1==111||LA90_1==113) ) {
alt90=2;
}
}
else if ( ((LA90_0 >= CharacterLiteral && LA90_0 <= DecimalLiteral)||LA90_0==FloatingPointLiteral||LA90_0==HexLiteral||(LA90_0 >= OctalLiteral && LA90_0 <= StringLiteral)||LA90_0==27||LA90_0==34||(LA90_0 >= 38 && LA90_0 <= 39)||(LA90_0 >= 42 && LA90_0 <= 43)||LA90_0==56||LA90_0==62||LA90_0==64||LA90_0==67||LA90_0==72||LA90_0==75||LA90_0==78||LA90_0==84||LA90_0==86||(LA90_0 >= 88 && LA90_0 <= 89)||LA90_0==95||LA90_0==98||LA90_0==101||LA90_0==105||LA90_0==107||LA90_0==110||LA90_0==115) ) {
alt90=2;
}
switch (alt90) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1151:17: elementValuePairs
{
pushFollow(FOLLOW_elementValuePairs_in_annotation4474);
elementValuePairs();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1151:37: elementValue
{
pushFollow(FOLLOW_elementValue_in_annotation4478);
elementValue();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,35,FOLLOW_35_in_annotation4483); if (state.failed) return;
}
break;
}
if ( state.backtracking==0 ) {
getModeller().endAnnotation();
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 72, annotation_StartIndex); }
}
}
// $ANTLR end "annotation"
public static class annotationName_return extends ParserRuleReturnScope {
};
// $ANTLR start "annotationName"
// org/argouml/language/java/reveng/Java.g:1157:1: annotationName : Identifier ( '.' Identifier )* ;
public final JavaParser.annotationName_return annotationName() throws RecognitionException {
JavaParser.annotationName_return retval = new JavaParser.annotationName_return();
retval.start = input.LT(1);
int annotationName_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 73) ) { return retval; }
// org/argouml/language/java/reveng/Java.g:1158:5: ( Identifier ( '.' Identifier )* )
// org/argouml/language/java/reveng/Java.g:1158:7: Identifier ( '.' Identifier )*
{
match(input,Identifier,FOLLOW_Identifier_in_annotationName4513); if (state.failed) return retval;
// org/argouml/language/java/reveng/Java.g:1158:18: ( '.' Identifier )*
loop92:
while (true) {
int alt92=2;
int LA92_0 = input.LA(1);
if ( (LA92_0==45) ) {
alt92=1;
}
switch (alt92) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1158:19: '.' Identifier
{
match(input,45,FOLLOW_45_in_annotationName4516); if (state.failed) return retval;
match(input,Identifier,FOLLOW_Identifier_in_annotationName4518); if (state.failed) return retval;
}
break;
default :
break loop92;
}
}
}
retval.stop = input.LT(-1);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 73, annotationName_StartIndex); }
}
return retval;
}
// $ANTLR end "annotationName"
// $ANTLR start "elementValuePairs"
// org/argouml/language/java/reveng/Java.g:1161:1: elementValuePairs : elementValuePair ( ',' elementValuePair )* ;
public final void elementValuePairs() throws RecognitionException {
int elementValuePairs_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 74) ) { return; }
// org/argouml/language/java/reveng/Java.g:1162:5: ( elementValuePair ( ',' elementValuePair )* )
// org/argouml/language/java/reveng/Java.g:1162:9: elementValuePair ( ',' elementValuePair )*
{
pushFollow(FOLLOW_elementValuePair_in_elementValuePairs4539);
elementValuePair();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1162:26: ( ',' elementValuePair )*
loop93:
while (true) {
int alt93=2;
int LA93_0 = input.LA(1);
if ( (LA93_0==41) ) {
alt93=1;
}
switch (alt93) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1162:27: ',' elementValuePair
{
match(input,41,FOLLOW_41_in_elementValuePairs4542); if (state.failed) return;
pushFollow(FOLLOW_elementValuePair_in_elementValuePairs4544);
elementValuePair();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop93;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 74, elementValuePairs_StartIndex); }
}
}
// $ANTLR end "elementValuePairs"
// $ANTLR start "elementValuePair"
// org/argouml/language/java/reveng/Java.g:1165:1: elementValuePair : Identifier '=' elementValue ;
public final void elementValuePair() throws RecognitionException {
int elementValuePair_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 75) ) { return; }
// org/argouml/language/java/reveng/Java.g:1166:5: ( Identifier '=' elementValue )
// org/argouml/language/java/reveng/Java.g:1166:9: Identifier '=' elementValue
{
match(input,Identifier,FOLLOW_Identifier_in_elementValuePair4565); if (state.failed) return;
match(input,52,FOLLOW_52_in_elementValuePair4567); if (state.failed) return;
pushFollow(FOLLOW_elementValue_in_elementValuePair4569);
elementValue();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 75, elementValuePair_StartIndex); }
}
}
// $ANTLR end "elementValuePair"
// $ANTLR start "elementValue"
// org/argouml/language/java/reveng/Java.g:1169:1: elementValue : ( conditionalExpression | annotation | elementValueArrayInitializer );
public final void elementValue() throws RecognitionException {
int elementValue_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 76) ) { return; }
// org/argouml/language/java/reveng/Java.g:1170:5: ( conditionalExpression | annotation | elementValueArrayInitializer )
int alt94=3;
switch ( input.LA(1) ) {
case CharacterLiteral:
case DecimalLiteral:
case FloatingPointLiteral:
case HexLiteral:
case Identifier:
case OctalLiteral:
case StringLiteral:
case 27:
case 34:
case 38:
case 39:
case 42:
case 43:
case 62:
case 64:
case 67:
case 72:
case 75:
case 78:
case 84:
case 86:
case 88:
case 89:
case 95:
case 98:
case 101:
case 105:
case 107:
case 115:
{
alt94=1;
}
break;
case 56:
{
alt94=2;
}
break;
case 110:
{
alt94=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 94, 0, input);
throw nvae;
}
switch (alt94) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1170:9: conditionalExpression
{
pushFollow(FOLLOW_conditionalExpression_in_elementValue4592);
conditionalExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1171:9: annotation
{
pushFollow(FOLLOW_annotation_in_elementValue4602);
annotation();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1172:9: elementValueArrayInitializer
{
pushFollow(FOLLOW_elementValueArrayInitializer_in_elementValue4612);
elementValueArrayInitializer();
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 76, elementValue_StartIndex); }
}
}
// $ANTLR end "elementValue"
// $ANTLR start "elementValueArrayInitializer"
// org/argouml/language/java/reveng/Java.g:1175:1: elementValueArrayInitializer : '{' ( elementValue ( ',' elementValue )* )? ( ',' )? '}' ;
public final void elementValueArrayInitializer() throws RecognitionException {
int elementValueArrayInitializer_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 77) ) { return; }
// org/argouml/language/java/reveng/Java.g:1176:5: ( '{' ( elementValue ( ',' elementValue )* )? ( ',' )? '}' )
// org/argouml/language/java/reveng/Java.g:1176:9: '{' ( elementValue ( ',' elementValue )* )? ( ',' )? '}'
{
match(input,110,FOLLOW_110_in_elementValueArrayInitializer4631); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1176:13: ( elementValue ( ',' elementValue )* )?
int alt96=2;
int LA96_0 = input.LA(1);
if ( ((LA96_0 >= CharacterLiteral && LA96_0 <= DecimalLiteral)||LA96_0==FloatingPointLiteral||(LA96_0 >= HexLiteral && LA96_0 <= Identifier)||(LA96_0 >= OctalLiteral && LA96_0 <= StringLiteral)||LA96_0==27||LA96_0==34||(LA96_0 >= 38 && LA96_0 <= 39)||(LA96_0 >= 42 && LA96_0 <= 43)||LA96_0==56||LA96_0==62||LA96_0==64||LA96_0==67||LA96_0==72||LA96_0==75||LA96_0==78||LA96_0==84||LA96_0==86||(LA96_0 >= 88 && LA96_0 <= 89)||LA96_0==95||LA96_0==98||LA96_0==101||LA96_0==105||LA96_0==107||LA96_0==110||LA96_0==115) ) {
alt96=1;
}
switch (alt96) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1176:14: elementValue ( ',' elementValue )*
{
pushFollow(FOLLOW_elementValue_in_elementValueArrayInitializer4634);
elementValue();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1176:27: ( ',' elementValue )*
loop95:
while (true) {
int alt95=2;
int LA95_0 = input.LA(1);
if ( (LA95_0==41) ) {
int LA95_1 = input.LA(2);
if ( ((LA95_1 >= CharacterLiteral && LA95_1 <= DecimalLiteral)||LA95_1==FloatingPointLiteral||(LA95_1 >= HexLiteral && LA95_1 <= Identifier)||(LA95_1 >= OctalLiteral && LA95_1 <= StringLiteral)||LA95_1==27||LA95_1==34||(LA95_1 >= 38 && LA95_1 <= 39)||(LA95_1 >= 42 && LA95_1 <= 43)||LA95_1==56||LA95_1==62||LA95_1==64||LA95_1==67||LA95_1==72||LA95_1==75||LA95_1==78||LA95_1==84||LA95_1==86||(LA95_1 >= 88 && LA95_1 <= 89)||LA95_1==95||LA95_1==98||LA95_1==101||LA95_1==105||LA95_1==107||LA95_1==110||LA95_1==115) ) {
alt95=1;
}
}
switch (alt95) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1176:28: ',' elementValue
{
match(input,41,FOLLOW_41_in_elementValueArrayInitializer4637); if (state.failed) return;
pushFollow(FOLLOW_elementValue_in_elementValueArrayInitializer4639);
elementValue();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop95;
}
}
}
break;
}
// org/argouml/language/java/reveng/Java.g:1176:49: ( ',' )?
int alt97=2;
int LA97_0 = input.LA(1);
if ( (LA97_0==41) ) {
alt97=1;
}
switch (alt97) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1176:50: ','
{
match(input,41,FOLLOW_41_in_elementValueArrayInitializer4646); if (state.failed) return;
}
break;
}
match(input,114,FOLLOW_114_in_elementValueArrayInitializer4650); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 77, elementValueArrayInitializer_StartIndex); }
}
}
// $ANTLR end "elementValueArrayInitializer"
// $ANTLR start "annotationTypeDeclaration"
// org/argouml/language/java/reveng/Java.g:1179:1: annotationTypeDeclaration[String javadoc, short modifiers] : '@' 'interface' name= Identifier annotationTypeBody ;
public final void annotationTypeDeclaration(String javadoc, short modifiers) throws RecognitionException {
int annotationTypeDeclaration_StartIndex = input.index();
Token name=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 78) ) { return; }
// org/argouml/language/java/reveng/Java.g:1180:5: ( '@' 'interface' name= Identifier annotationTypeBody )
// org/argouml/language/java/reveng/Java.g:1180:9: '@' 'interface' name= Identifier annotationTypeBody
{
match(input,56,FOLLOW_56_in_annotationTypeDeclaration4670); if (state.failed) return;
match(input,85,FOLLOW_85_in_annotationTypeDeclaration4672); if (state.failed) return;
name=(Token)match(input,Identifier,FOLLOW_Identifier_in_annotationTypeDeclaration4676); if (state.failed) return;
if ( state.backtracking==0 ) {
getModeller().addAnnotationDefinition(name.getText(), modifiers,
javadoc, (parserMode == MODE_IMPORT_PASS2));
}
pushFollow(FOLLOW_annotationTypeBody_in_annotationTypeDeclaration4696);
annotationTypeBody();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 78, annotationTypeDeclaration_StartIndex); }
}
}
// $ANTLR end "annotationTypeDeclaration"
// $ANTLR start "annotationTypeBody"
// org/argouml/language/java/reveng/Java.g:1189:1: annotationTypeBody : '{' ( annotationTypeElementDeclaration )* '}' ;
public final void annotationTypeBody() throws RecognitionException {
int annotationTypeBody_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 79) ) { return; }
// org/argouml/language/java/reveng/Java.g:1190:5: ( '{' ( annotationTypeElementDeclaration )* '}' )
// org/argouml/language/java/reveng/Java.g:1190:9: '{' ( annotationTypeElementDeclaration )* '}'
{
match(input,110,FOLLOW_110_in_annotationTypeBody4724); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1190:13: ( annotationTypeElementDeclaration )*
loop98:
while (true) {
int alt98=2;
int LA98_0 = input.LA(1);
if ( (LA98_0==ENUM||LA98_0==Identifier||LA98_0==56||(LA98_0 >= 61 && LA98_0 <= 62)||LA98_0==64||(LA98_0 >= 67 && LA98_0 <= 68)||LA98_0==72||LA98_0==76||LA98_0==78||(LA98_0 >= 84 && LA98_0 <= 87)||(LA98_0 >= 91 && LA98_0 <= 93)||(LA98_0 >= 95 && LA98_0 <= 97)||LA98_0==100||LA98_0==104||LA98_0==108) ) {
alt98=1;
}
switch (alt98) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1190:14: annotationTypeElementDeclaration
{
pushFollow(FOLLOW_annotationTypeElementDeclaration_in_annotationTypeBody4727);
annotationTypeElementDeclaration();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop98;
}
}
match(input,114,FOLLOW_114_in_annotationTypeBody4731); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 79, annotationTypeBody_StartIndex); }
}
}
// $ANTLR end "annotationTypeBody"
// $ANTLR start "annotationTypeElementDeclaration"
// org/argouml/language/java/reveng/Java.g:1193:1: annotationTypeElementDeclaration : modifiers annotationTypeElementRest ;
public final void annotationTypeElementDeclaration() throws RecognitionException {
int annotationTypeElementDeclaration_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 80) ) { return; }
// org/argouml/language/java/reveng/Java.g:1194:5: ( modifiers annotationTypeElementRest )
// org/argouml/language/java/reveng/Java.g:1194:9: modifiers annotationTypeElementRest
{
pushFollow(FOLLOW_modifiers_in_annotationTypeElementDeclaration4750);
modifiers();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_annotationTypeElementRest_in_annotationTypeElementDeclaration4752);
annotationTypeElementRest();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 80, annotationTypeElementDeclaration_StartIndex); }
}
}
// $ANTLR end "annotationTypeElementDeclaration"
// $ANTLR start "annotationTypeElementRest"
// org/argouml/language/java/reveng/Java.g:1197:1: annotationTypeElementRest : ( type annotationMethodOrConstantRest ';' | normalClassDeclaration[null, (short)0] ( ';' )? | normalInterfaceDeclaration[null, (short)0] ( ';' )? | enumDeclaration[null, (short)0] ( ';' )? | annotationTypeDeclaration[null, (short)0] ( ';' )? );
public final void annotationTypeElementRest() throws RecognitionException {
int annotationTypeElementRest_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 81) ) { return; }
// org/argouml/language/java/reveng/Java.g:1198:5: ( type annotationMethodOrConstantRest ';' | normalClassDeclaration[null, (short)0] ( ';' )? | normalInterfaceDeclaration[null, (short)0] ( ';' )? | enumDeclaration[null, (short)0] ( ';' )? | annotationTypeDeclaration[null, (short)0] ( ';' )? )
int alt103=5;
switch ( input.LA(1) ) {
case Identifier:
case 62:
case 64:
case 67:
case 72:
case 78:
case 84:
case 86:
case 95:
{
alt103=1;
}
break;
case 68:
{
alt103=2;
}
break;
case 85:
{
alt103=3;
}
break;
case ENUM:
{
alt103=4;
}
break;
case 56:
{
alt103=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 103, 0, input);
throw nvae;
}
switch (alt103) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1198:9: type annotationMethodOrConstantRest ';'
{
pushFollow(FOLLOW_type_in_annotationTypeElementRest4771);
type();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_annotationMethodOrConstantRest_in_annotationTypeElementRest4773);
annotationMethodOrConstantRest();
state._fsp--;
if (state.failed) return;
match(input,50,FOLLOW_50_in_annotationTypeElementRest4775); if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1199:9: normalClassDeclaration[null, (short)0] ( ';' )?
{
pushFollow(FOLLOW_normalClassDeclaration_in_annotationTypeElementRest4785);
normalClassDeclaration(null, (short)0);
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1199:48: ( ';' )?
int alt99=2;
int LA99_0 = input.LA(1);
if ( (LA99_0==50) ) {
alt99=1;
}
switch (alt99) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1199:48: ';'
{
match(input,50,FOLLOW_50_in_annotationTypeElementRest4788); if (state.failed) return;
}
break;
}
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1200:9: normalInterfaceDeclaration[null, (short)0] ( ';' )?
{
pushFollow(FOLLOW_normalInterfaceDeclaration_in_annotationTypeElementRest4799);
normalInterfaceDeclaration(null, (short)0);
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1200:52: ( ';' )?
int alt100=2;
int LA100_0 = input.LA(1);
if ( (LA100_0==50) ) {
alt100=1;
}
switch (alt100) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1200:52: ';'
{
match(input,50,FOLLOW_50_in_annotationTypeElementRest4802); if (state.failed) return;
}
break;
}
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:1201:9: enumDeclaration[null, (short)0] ( ';' )?
{
pushFollow(FOLLOW_enumDeclaration_in_annotationTypeElementRest4813);
enumDeclaration(null, (short)0);
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1201:41: ( ';' )?
int alt101=2;
int LA101_0 = input.LA(1);
if ( (LA101_0==50) ) {
alt101=1;
}
switch (alt101) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1201:41: ';'
{
match(input,50,FOLLOW_50_in_annotationTypeElementRest4816); if (state.failed) return;
}
break;
}
}
break;
case 5 :
// org/argouml/language/java/reveng/Java.g:1202:9: annotationTypeDeclaration[null, (short)0] ( ';' )?
{
pushFollow(FOLLOW_annotationTypeDeclaration_in_annotationTypeElementRest4827);
annotationTypeDeclaration(null, (short)0);
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1202:51: ( ';' )?
int alt102=2;
int LA102_0 = input.LA(1);
if ( (LA102_0==50) ) {
alt102=1;
}
switch (alt102) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1202:51: ';'
{
match(input,50,FOLLOW_50_in_annotationTypeElementRest4830); if (state.failed) return;
}
break;
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 81, annotationTypeElementRest_StartIndex); }
}
}
// $ANTLR end "annotationTypeElementRest"
// $ANTLR start "annotationMethodOrConstantRest"
// org/argouml/language/java/reveng/Java.g:1205:1: annotationMethodOrConstantRest : ( annotationMethodRest | annotationConstantRest );
public final void annotationMethodOrConstantRest() throws RecognitionException {
int annotationMethodOrConstantRest_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 82) ) { return; }
// org/argouml/language/java/reveng/Java.g:1206:5: ( annotationMethodRest | annotationConstantRest )
int alt104=2;
int LA104_0 = input.LA(1);
if ( (LA104_0==Identifier) ) {
int LA104_1 = input.LA(2);
if ( (LA104_1==34) ) {
alt104=1;
}
else if ( (LA104_1==41||LA104_1==50||LA104_1==52||LA104_1==57) ) {
alt104=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 104, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 104, 0, input);
throw nvae;
}
switch (alt104) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1206:9: annotationMethodRest
{
pushFollow(FOLLOW_annotationMethodRest_in_annotationMethodOrConstantRest4850);
annotationMethodRest();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1207:9: annotationConstantRest
{
pushFollow(FOLLOW_annotationConstantRest_in_annotationMethodOrConstantRest4860);
annotationConstantRest();
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 82, annotationMethodOrConstantRest_StartIndex); }
}
}
// $ANTLR end "annotationMethodOrConstantRest"
// $ANTLR start "annotationMethodRest"
// org/argouml/language/java/reveng/Java.g:1210:1: annotationMethodRest : Identifier '(' ')' ( defaultValue )? ;
public final void annotationMethodRest() throws RecognitionException {
int annotationMethodRest_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 83) ) { return; }
// org/argouml/language/java/reveng/Java.g:1211:5: ( Identifier '(' ')' ( defaultValue )? )
// org/argouml/language/java/reveng/Java.g:1211:9: Identifier '(' ')' ( defaultValue )?
{
match(input,Identifier,FOLLOW_Identifier_in_annotationMethodRest4883); if (state.failed) return;
match(input,34,FOLLOW_34_in_annotationMethodRest4885); if (state.failed) return;
match(input,35,FOLLOW_35_in_annotationMethodRest4887); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1211:28: ( defaultValue )?
int alt105=2;
int LA105_0 = input.LA(1);
if ( (LA105_0==70) ) {
alt105=1;
}
switch (alt105) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1211:29: defaultValue
{
pushFollow(FOLLOW_defaultValue_in_annotationMethodRest4890);
defaultValue();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 83, annotationMethodRest_StartIndex); }
}
}
// $ANTLR end "annotationMethodRest"
// $ANTLR start "annotationConstantRest"
// org/argouml/language/java/reveng/Java.g:1214:1: annotationConstantRest : variableDeclarators[\"\", (short)0, null] ;
public final void annotationConstantRest() throws RecognitionException {
int annotationConstantRest_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 84) ) { return; }
// org/argouml/language/java/reveng/Java.g:1215:5: ( variableDeclarators[\"\", (short)0, null] )
// org/argouml/language/java/reveng/Java.g:1215:9: variableDeclarators[\"\", (short)0, null]
{
pushFollow(FOLLOW_variableDeclarators_in_annotationConstantRest4915);
variableDeclarators("", (short)0, null);
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 84, annotationConstantRest_StartIndex); }
}
}
// $ANTLR end "annotationConstantRest"
// $ANTLR start "defaultValue"
// org/argouml/language/java/reveng/Java.g:1218:1: defaultValue : 'default' elementValue ;
public final void defaultValue() throws RecognitionException {
int defaultValue_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 85) ) { return; }
// org/argouml/language/java/reveng/Java.g:1219:5: ( 'default' elementValue )
// org/argouml/language/java/reveng/Java.g:1219:9: 'default' elementValue
{
match(input,70,FOLLOW_70_in_defaultValue4939); if (state.failed) return;
pushFollow(FOLLOW_elementValue_in_defaultValue4941);
elementValue();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 85, defaultValue_StartIndex); }
}
}
// $ANTLR end "defaultValue"
public static class block_return extends ParserRuleReturnScope {
};
// $ANTLR start "block"
// org/argouml/language/java/reveng/Java.g:1224:1: block : '{' ( blockStatement )* '}' ;
public final JavaParser.block_return block() throws RecognitionException {
JavaParser.block_return retval = new JavaParser.block_return();
retval.start = input.LT(1);
int block_StartIndex = input.index();
boolean isOutestCompStat = !isInCompoundStatement();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 86) ) { return retval; }
// org/argouml/language/java/reveng/Java.g:1228:5: ( '{' ( blockStatement )* '}' )
// org/argouml/language/java/reveng/Java.g:1228:9: '{' ( blockStatement )* '}'
{
if ( state.backtracking==0 ) {
if (isOutestCompStat) {
setIsInCompoundStatement(true);
}
}
match(input,110,FOLLOW_110_in_block4980); if (state.failed) return retval;
// org/argouml/language/java/reveng/Java.g:1233:13: ( blockStatement )*
loop106:
while (true) {
int alt106=2;
int LA106_0 = input.LA(1);
if ( (LA106_0==ASSERT||(LA106_0 >= CharacterLiteral && LA106_0 <= DecimalLiteral)||LA106_0==ENUM||LA106_0==FloatingPointLiteral||(LA106_0 >= HexLiteral && LA106_0 <= Identifier)||(LA106_0 >= OctalLiteral && LA106_0 <= StringLiteral)||LA106_0==27||LA106_0==34||(LA106_0 >= 38 && LA106_0 <= 39)||(LA106_0 >= 42 && LA106_0 <= 43)||LA106_0==50||LA106_0==56||(LA106_0 >= 61 && LA106_0 <= 64)||(LA106_0 >= 67 && LA106_0 <= 69)||(LA106_0 >= 71 && LA106_0 <= 72)||(LA106_0 >= 75 && LA106_0 <= 76)||(LA106_0 >= 78 && LA106_0 <= 80)||(LA106_0 >= 84 && LA106_0 <= 86)||(LA106_0 >= 88 && LA106_0 <= 89)||(LA106_0 >= 91 && LA106_0 <= 102)||(LA106_0 >= 105 && LA106_0 <= 107)||(LA106_0 >= 109 && LA106_0 <= 110)||LA106_0==115) ) {
alt106=1;
}
switch (alt106) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1233:13: blockStatement
{
pushFollow(FOLLOW_blockStatement_in_block4982);
blockStatement();
state._fsp--;
if (state.failed) return retval;
}
break;
default :
break loop106;
}
}
match(input,114,FOLLOW_114_in_block4985); if (state.failed) return retval;
if ( state.backtracking==0 ) {
if (isOutestCompStat) {
String b = input.toString(retval.start,input.LT(-1));
// the body is everything between { and }, but for
// compatibility reasons the last ws's get stripped off
// and a newline is added
b = b.substring(0, b.length() - 1).trim();
setBody(b.substring(1) + '\n');
setIsInCompoundStatement(false);
}
}
}
retval.stop = input.LT(-1);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 86, block_StartIndex); }
}
return retval;
}
// $ANTLR end "block"
// $ANTLR start "blockStatement"
// org/argouml/language/java/reveng/Java.g:1247:1: blockStatement : ( localVariableDeclarationStatement | classOrInterfaceDeclaration | statement );
public final void blockStatement() throws RecognitionException {
int blockStatement_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 87) ) { return; }
// org/argouml/language/java/reveng/Java.g:1248:5: ( localVariableDeclarationStatement | classOrInterfaceDeclaration | statement )
int alt107=3;
alt107 = dfa107.predict(input);
switch (alt107) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1248:9: localVariableDeclarationStatement
{
pushFollow(FOLLOW_localVariableDeclarationStatement_in_blockStatement5018);
localVariableDeclarationStatement();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1249:9: classOrInterfaceDeclaration
{
pushFollow(FOLLOW_classOrInterfaceDeclaration_in_blockStatement5028);
classOrInterfaceDeclaration();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1250:9: statement
{
pushFollow(FOLLOW_statement_in_blockStatement5038);
statement();
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 87, blockStatement_StartIndex); }
}
}
// $ANTLR end "blockStatement"
// $ANTLR start "localVariableDeclarationStatement"
// org/argouml/language/java/reveng/Java.g:1253:1: localVariableDeclarationStatement : localVariableDeclaration ';' ;
public final void localVariableDeclarationStatement() throws RecognitionException {
int localVariableDeclarationStatement_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 88) ) { return; }
// org/argouml/language/java/reveng/Java.g:1254:5: ( localVariableDeclaration ';' )
// org/argouml/language/java/reveng/Java.g:1254:10: localVariableDeclaration ';'
{
pushFollow(FOLLOW_localVariableDeclaration_in_localVariableDeclarationStatement5062);
localVariableDeclaration();
state._fsp--;
if (state.failed) return;
match(input,50,FOLLOW_50_in_localVariableDeclarationStatement5064); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 88, localVariableDeclarationStatement_StartIndex); }
}
}
// $ANTLR end "localVariableDeclarationStatement"
// $ANTLR start "localVariableDeclaration"
// org/argouml/language/java/reveng/Java.g:1257:1: localVariableDeclaration : variableModifiers t= type variableDeclarators[\"\", (short)0, null] ;
public final void localVariableDeclaration() throws RecognitionException {
int localVariableDeclaration_StartIndex = input.index();
String t =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 89) ) { return; }
// org/argouml/language/java/reveng/Java.g:1258:5: ( variableModifiers t= type variableDeclarators[\"\", (short)0, null] )
// org/argouml/language/java/reveng/Java.g:1258:9: variableModifiers t= type variableDeclarators[\"\", (short)0, null]
{
pushFollow(FOLLOW_variableModifiers_in_localVariableDeclaration5083);
variableModifiers();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_type_in_localVariableDeclaration5087);
t=type();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {
// simple dependency algorithm: if t is found in the model,
// then build a dependency, otherwise ignore
if (parserMode == MODE_IMPORT_PASS2) {
getModeller().addClassifierDependency(t);
}
}
pushFollow(FOLLOW_variableDeclarators_in_localVariableDeclaration5101);
variableDeclarators("", (short)0, null);
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 89, localVariableDeclaration_StartIndex); }
}
}
// $ANTLR end "localVariableDeclaration"
// $ANTLR start "variableModifiers"
// org/argouml/language/java/reveng/Java.g:1269:1: variableModifiers returns [short mods = 0] : (m= variableModifier )* ;
public final short variableModifiers() throws RecognitionException {
short mods = 0;
int variableModifiers_StartIndex = input.index();
short m =0;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 90) ) { return mods; }
// org/argouml/language/java/reveng/Java.g:1270:5: ( (m= variableModifier )* )
// org/argouml/language/java/reveng/Java.g:1270:9: (m= variableModifier )*
{
// org/argouml/language/java/reveng/Java.g:1270:9: (m= variableModifier )*
loop108:
while (true) {
int alt108=2;
int LA108_0 = input.LA(1);
if ( (LA108_0==56||LA108_0==76) ) {
alt108=1;
}
switch (alt108) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1270:10: m= variableModifier
{
pushFollow(FOLLOW_variableModifier_in_variableModifiers5132);
m=variableModifier();
state._fsp--;
if (state.failed) return mods;
if ( state.backtracking==0 ) { mods |= m; }
}
break;
default :
break loop108;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 90, variableModifiers_StartIndex); }
}
return mods;
}
// $ANTLR end "variableModifiers"
// $ANTLR start "statement"
// org/argouml/language/java/reveng/Java.g:1273:1: statement : ( block | ASSERT expression ( ':' expression )? ';' | 'if' parExpression statement ( options {k=1; } : 'else' statement )? | 'for' '(' forControl ')' statement | 'while' parExpression statement | 'do' statement 'while' parExpression ';' | 'try' block ( catches 'finally' block | catches | 'finally' block ) | 'switch' parExpression '{' switchBlockStatementGroups '}' | 'synchronized' parExpression block | 'return' ( expression )? ';' | 'throw' expression ';' | 'break' ( Identifier )? ';' | 'continue' ( Identifier )? ';' | ';' | statementExpression ';' | Identifier ':' statement );
public final void statement() throws RecognitionException {
int statement_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 91) ) { return; }
// org/argouml/language/java/reveng/Java.g:1274:5: ( block | ASSERT expression ( ':' expression )? ';' | 'if' parExpression statement ( options {k=1; } : 'else' statement )? | 'for' '(' forControl ')' statement | 'while' parExpression statement | 'do' statement 'while' parExpression ';' | 'try' block ( catches 'finally' block | catches | 'finally' block ) | 'switch' parExpression '{' switchBlockStatementGroups '}' | 'synchronized' parExpression block | 'return' ( expression )? ';' | 'throw' expression ';' | 'break' ( Identifier )? ';' | 'continue' ( Identifier )? ';' | ';' | statementExpression ';' | Identifier ':' statement )
int alt115=16;
alt115 = dfa115.predict(input);
switch (alt115) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1274:7: block
{
pushFollow(FOLLOW_block_in_statement5154);
block();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1275:9: ASSERT expression ( ':' expression )? ';'
{
match(input,ASSERT,FOLLOW_ASSERT_in_statement5164); if (state.failed) return;
pushFollow(FOLLOW_expression_in_statement5166);
expression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1275:27: ( ':' expression )?
int alt109=2;
int LA109_0 = input.LA(1);
if ( (LA109_0==49) ) {
alt109=1;
}
switch (alt109) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1275:28: ':' expression
{
match(input,49,FOLLOW_49_in_statement5169); if (state.failed) return;
pushFollow(FOLLOW_expression_in_statement5171);
expression();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,50,FOLLOW_50_in_statement5175); if (state.failed) return;
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1276:9: 'if' parExpression statement ( options {k=1; } : 'else' statement )?
{
match(input,80,FOLLOW_80_in_statement5185); if (state.failed) return;
pushFollow(FOLLOW_parExpression_in_statement5187);
parExpression();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_statement_in_statement5189);
statement();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1276:38: ( options {k=1; } : 'else' statement )?
int alt110=2;
int LA110_0 = input.LA(1);
if ( (LA110_0==73) ) {
int LA110_1 = input.LA(2);
if ( (synpred158_Java()) ) {
alt110=1;
}
}
switch (alt110) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1276:54: 'else' statement
{
match(input,73,FOLLOW_73_in_statement5199); if (state.failed) return;
pushFollow(FOLLOW_statement_in_statement5201);
statement();
state._fsp--;
if (state.failed) return;
}
break;
}
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:1277:9: 'for' '(' forControl ')' statement
{
match(input,79,FOLLOW_79_in_statement5213); if (state.failed) return;
match(input,34,FOLLOW_34_in_statement5215); if (state.failed) return;
pushFollow(FOLLOW_forControl_in_statement5217);
forControl();
state._fsp--;
if (state.failed) return;
match(input,35,FOLLOW_35_in_statement5219); if (state.failed) return;
pushFollow(FOLLOW_statement_in_statement5221);
statement();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// org/argouml/language/java/reveng/Java.g:1278:9: 'while' parExpression statement
{
match(input,109,FOLLOW_109_in_statement5231); if (state.failed) return;
pushFollow(FOLLOW_parExpression_in_statement5233);
parExpression();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_statement_in_statement5235);
statement();
state._fsp--;
if (state.failed) return;
}
break;
case 6 :
// org/argouml/language/java/reveng/Java.g:1279:9: 'do' statement 'while' parExpression ';'
{
match(input,71,FOLLOW_71_in_statement5245); if (state.failed) return;
pushFollow(FOLLOW_statement_in_statement5247);
statement();
state._fsp--;
if (state.failed) return;
match(input,109,FOLLOW_109_in_statement5249); if (state.failed) return;
pushFollow(FOLLOW_parExpression_in_statement5251);
parExpression();
state._fsp--;
if (state.failed) return;
match(input,50,FOLLOW_50_in_statement5253); if (state.failed) return;
}
break;
case 7 :
// org/argouml/language/java/reveng/Java.g:1280:9: 'try' block ( catches 'finally' block | catches | 'finally' block )
{
match(input,106,FOLLOW_106_in_statement5263); if (state.failed) return;
pushFollow(FOLLOW_block_in_statement5265);
block();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1281:9: ( catches 'finally' block | catches | 'finally' block )
int alt111=3;
int LA111_0 = input.LA(1);
if ( (LA111_0==66) ) {
int LA111_1 = input.LA(2);
if ( (LA111_1==34) ) {
int LA111_3 = input.LA(3);
if ( (synpred163_Java()) ) {
alt111=1;
}
else if ( (synpred164_Java()) ) {
alt111=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 111, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 111, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA111_0==77) ) {
alt111=3;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 111, 0, input);
throw nvae;
}
switch (alt111) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1281:11: catches 'finally' block
{
pushFollow(FOLLOW_catches_in_statement5277);
catches();
state._fsp--;
if (state.failed) return;
match(input,77,FOLLOW_77_in_statement5279); if (state.failed) return;
pushFollow(FOLLOW_block_in_statement5281);
block();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1282:11: catches
{
pushFollow(FOLLOW_catches_in_statement5293);
catches();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1283:13: 'finally' block
{
match(input,77,FOLLOW_77_in_statement5307); if (state.failed) return;
pushFollow(FOLLOW_block_in_statement5309);
block();
state._fsp--;
if (state.failed) return;
}
break;
}
}
break;
case 8 :
// org/argouml/language/java/reveng/Java.g:1285:9: 'switch' parExpression '{' switchBlockStatementGroups '}'
{
match(input,99,FOLLOW_99_in_statement5329); if (state.failed) return;
pushFollow(FOLLOW_parExpression_in_statement5331);
parExpression();
state._fsp--;
if (state.failed) return;
match(input,110,FOLLOW_110_in_statement5333); if (state.failed) return;
pushFollow(FOLLOW_switchBlockStatementGroups_in_statement5335);
switchBlockStatementGroups();
state._fsp--;
if (state.failed) return;
match(input,114,FOLLOW_114_in_statement5337); if (state.failed) return;
}
break;
case 9 :
// org/argouml/language/java/reveng/Java.g:1286:9: 'synchronized' parExpression block
{
match(input,100,FOLLOW_100_in_statement5347); if (state.failed) return;
pushFollow(FOLLOW_parExpression_in_statement5349);
parExpression();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_block_in_statement5351);
block();
state._fsp--;
if (state.failed) return;
}
break;
case 10 :
// org/argouml/language/java/reveng/Java.g:1287:9: 'return' ( expression )? ';'
{
match(input,94,FOLLOW_94_in_statement5361); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1287:18: ( expression )?
int alt112=2;
int LA112_0 = input.LA(1);
if ( ((LA112_0 >= CharacterLiteral && LA112_0 <= DecimalLiteral)||LA112_0==FloatingPointLiteral||(LA112_0 >= HexLiteral && LA112_0 <= Identifier)||(LA112_0 >= OctalLiteral && LA112_0 <= StringLiteral)||LA112_0==27||LA112_0==34||(LA112_0 >= 38 && LA112_0 <= 39)||(LA112_0 >= 42 && LA112_0 <= 43)||LA112_0==62||LA112_0==64||LA112_0==67||LA112_0==72||LA112_0==75||LA112_0==78||LA112_0==84||LA112_0==86||(LA112_0 >= 88 && LA112_0 <= 89)||LA112_0==95||LA112_0==98||LA112_0==101||LA112_0==105||LA112_0==107||LA112_0==115) ) {
alt112=1;
}
switch (alt112) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1287:18: expression
{
pushFollow(FOLLOW_expression_in_statement5363);
expression();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,50,FOLLOW_50_in_statement5366); if (state.failed) return;
}
break;
case 11 :
// org/argouml/language/java/reveng/Java.g:1288:9: 'throw' expression ';'
{
match(input,102,FOLLOW_102_in_statement5376); if (state.failed) return;
pushFollow(FOLLOW_expression_in_statement5378);
expression();
state._fsp--;
if (state.failed) return;
match(input,50,FOLLOW_50_in_statement5380); if (state.failed) return;
}
break;
case 12 :
// org/argouml/language/java/reveng/Java.g:1289:9: 'break' ( Identifier )? ';'
{
match(input,63,FOLLOW_63_in_statement5390); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1289:17: ( Identifier )?
int alt113=2;
int LA113_0 = input.LA(1);
if ( (LA113_0==Identifier) ) {
alt113=1;
}
switch (alt113) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1289:17: Identifier
{
match(input,Identifier,FOLLOW_Identifier_in_statement5392); if (state.failed) return;
}
break;
}
match(input,50,FOLLOW_50_in_statement5395); if (state.failed) return;
}
break;
case 13 :
// org/argouml/language/java/reveng/Java.g:1290:9: 'continue' ( Identifier )? ';'
{
match(input,69,FOLLOW_69_in_statement5405); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1290:20: ( Identifier )?
int alt114=2;
int LA114_0 = input.LA(1);
if ( (LA114_0==Identifier) ) {
alt114=1;
}
switch (alt114) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1290:20: Identifier
{
match(input,Identifier,FOLLOW_Identifier_in_statement5407); if (state.failed) return;
}
break;
}
match(input,50,FOLLOW_50_in_statement5410); if (state.failed) return;
}
break;
case 14 :
// org/argouml/language/java/reveng/Java.g:1291:9: ';'
{
match(input,50,FOLLOW_50_in_statement5420); if (state.failed) return;
}
break;
case 15 :
// org/argouml/language/java/reveng/Java.g:1292:9: statementExpression ';'
{
pushFollow(FOLLOW_statementExpression_in_statement5431);
statementExpression();
state._fsp--;
if (state.failed) return;
match(input,50,FOLLOW_50_in_statement5433); if (state.failed) return;
}
break;
case 16 :
// org/argouml/language/java/reveng/Java.g:1293:9: Identifier ':' statement
{
match(input,Identifier,FOLLOW_Identifier_in_statement5443); if (state.failed) return;
match(input,49,FOLLOW_49_in_statement5445); if (state.failed) return;
pushFollow(FOLLOW_statement_in_statement5447);
statement();
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 91, statement_StartIndex); }
}
}
// $ANTLR end "statement"
// $ANTLR start "catches"
// org/argouml/language/java/reveng/Java.g:1296:1: catches : catchClause ( catchClause )* ;
public final void catches() throws RecognitionException {
int catches_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 92) ) { return; }
// org/argouml/language/java/reveng/Java.g:1297:5: ( catchClause ( catchClause )* )
// org/argouml/language/java/reveng/Java.g:1297:9: catchClause ( catchClause )*
{
pushFollow(FOLLOW_catchClause_in_catches5470);
catchClause();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1297:21: ( catchClause )*
loop116:
while (true) {
int alt116=2;
int LA116_0 = input.LA(1);
if ( (LA116_0==66) ) {
alt116=1;
}
switch (alt116) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1297:22: catchClause
{
pushFollow(FOLLOW_catchClause_in_catches5473);
catchClause();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop116;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 92, catches_StartIndex); }
}
}
// $ANTLR end "catches"
// $ANTLR start "catchClause"
// org/argouml/language/java/reveng/Java.g:1300:1: catchClause : 'catch' '(' formalParameter ')' block ;
public final void catchClause() throws RecognitionException {
int catchClause_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 93) ) { return; }
// org/argouml/language/java/reveng/Java.g:1301:5: ( 'catch' '(' formalParameter ')' block )
// org/argouml/language/java/reveng/Java.g:1301:9: 'catch' '(' formalParameter ')' block
{
match(input,66,FOLLOW_66_in_catchClause5498); if (state.failed) return;
match(input,34,FOLLOW_34_in_catchClause5500); if (state.failed) return;
pushFollow(FOLLOW_formalParameter_in_catchClause5502);
formalParameter();
state._fsp--;
if (state.failed) return;
match(input,35,FOLLOW_35_in_catchClause5504); if (state.failed) return;
pushFollow(FOLLOW_block_in_catchClause5506);
block();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 93, catchClause_StartIndex); }
}
}
// $ANTLR end "catchClause"
// $ANTLR start "formalParameter"
// org/argouml/language/java/reveng/Java.g:1304:1: formalParameter : variableModifiers type variableDeclaratorId ;
public final void formalParameter() throws RecognitionException {
int formalParameter_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 94) ) { return; }
// org/argouml/language/java/reveng/Java.g:1305:5: ( variableModifiers type variableDeclaratorId )
// org/argouml/language/java/reveng/Java.g:1305:9: variableModifiers type variableDeclaratorId
{
pushFollow(FOLLOW_variableModifiers_in_formalParameter5525);
variableModifiers();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_type_in_formalParameter5527);
type();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_variableDeclaratorId_in_formalParameter5529);
variableDeclaratorId();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 94, formalParameter_StartIndex); }
}
}
// $ANTLR end "formalParameter"
// $ANTLR start "switchBlockStatementGroups"
// org/argouml/language/java/reveng/Java.g:1308:1: switchBlockStatementGroups : ( switchBlockStatementGroup )* ;
public final void switchBlockStatementGroups() throws RecognitionException {
int switchBlockStatementGroups_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 95) ) { return; }
// org/argouml/language/java/reveng/Java.g:1309:5: ( ( switchBlockStatementGroup )* )
// org/argouml/language/java/reveng/Java.g:1309:9: ( switchBlockStatementGroup )*
{
// org/argouml/language/java/reveng/Java.g:1309:9: ( switchBlockStatementGroup )*
loop117:
while (true) {
int alt117=2;
int LA117_0 = input.LA(1);
if ( (LA117_0==65||LA117_0==70) ) {
alt117=1;
}
switch (alt117) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1309:10: switchBlockStatementGroup
{
pushFollow(FOLLOW_switchBlockStatementGroup_in_switchBlockStatementGroups5557);
switchBlockStatementGroup();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop117;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 95, switchBlockStatementGroups_StartIndex); }
}
}
// $ANTLR end "switchBlockStatementGroups"
// $ANTLR start "switchBlockStatementGroup"
// org/argouml/language/java/reveng/Java.g:1316:1: switchBlockStatementGroup : ( switchLabel )+ ( blockStatement )* ;
public final void switchBlockStatementGroup() throws RecognitionException {
int switchBlockStatementGroup_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 96) ) { return; }
// org/argouml/language/java/reveng/Java.g:1317:5: ( ( switchLabel )+ ( blockStatement )* )
// org/argouml/language/java/reveng/Java.g:1317:9: ( switchLabel )+ ( blockStatement )*
{
// org/argouml/language/java/reveng/Java.g:1317:9: ( switchLabel )+
int cnt118=0;
loop118:
while (true) {
int alt118=2;
alt118 = dfa118.predict(input);
switch (alt118) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1317:9: switchLabel
{
pushFollow(FOLLOW_switchLabel_in_switchBlockStatementGroup5584);
switchLabel();
state._fsp--;
if (state.failed) return;
}
break;
default :
if ( cnt118 >= 1 ) break loop118;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(118, input);
throw eee;
}
cnt118++;
}
// org/argouml/language/java/reveng/Java.g:1317:22: ( blockStatement )*
loop119:
while (true) {
int alt119=2;
int LA119_0 = input.LA(1);
if ( (LA119_0==ASSERT||(LA119_0 >= CharacterLiteral && LA119_0 <= DecimalLiteral)||LA119_0==ENUM||LA119_0==FloatingPointLiteral||(LA119_0 >= HexLiteral && LA119_0 <= Identifier)||(LA119_0 >= OctalLiteral && LA119_0 <= StringLiteral)||LA119_0==27||LA119_0==34||(LA119_0 >= 38 && LA119_0 <= 39)||(LA119_0 >= 42 && LA119_0 <= 43)||LA119_0==50||LA119_0==56||(LA119_0 >= 61 && LA119_0 <= 64)||(LA119_0 >= 67 && LA119_0 <= 69)||(LA119_0 >= 71 && LA119_0 <= 72)||(LA119_0 >= 75 && LA119_0 <= 76)||(LA119_0 >= 78 && LA119_0 <= 80)||(LA119_0 >= 84 && LA119_0 <= 86)||(LA119_0 >= 88 && LA119_0 <= 89)||(LA119_0 >= 91 && LA119_0 <= 102)||(LA119_0 >= 105 && LA119_0 <= 107)||(LA119_0 >= 109 && LA119_0 <= 110)||LA119_0==115) ) {
alt119=1;
}
switch (alt119) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1317:22: blockStatement
{
pushFollow(FOLLOW_blockStatement_in_switchBlockStatementGroup5587);
blockStatement();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop119;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 96, switchBlockStatementGroup_StartIndex); }
}
}
// $ANTLR end "switchBlockStatementGroup"
// $ANTLR start "switchLabel"
// org/argouml/language/java/reveng/Java.g:1320:1: switchLabel : ( 'case' constantExpression ':' | 'case' enumConstantName ':' | 'default' ':' );
public final void switchLabel() throws RecognitionException {
int switchLabel_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 97) ) { return; }
// org/argouml/language/java/reveng/Java.g:1321:5: ( 'case' constantExpression ':' | 'case' enumConstantName ':' | 'default' ':' )
int alt120=3;
int LA120_0 = input.LA(1);
if ( (LA120_0==65) ) {
int LA120_1 = input.LA(2);
if ( ((LA120_1 >= CharacterLiteral && LA120_1 <= DecimalLiteral)||LA120_1==FloatingPointLiteral||LA120_1==HexLiteral||(LA120_1 >= OctalLiteral && LA120_1 <= StringLiteral)||LA120_1==27||LA120_1==34||(LA120_1 >= 38 && LA120_1 <= 39)||(LA120_1 >= 42 && LA120_1 <= 43)||LA120_1==62||LA120_1==64||LA120_1==67||LA120_1==72||LA120_1==75||LA120_1==78||LA120_1==84||LA120_1==86||(LA120_1 >= 88 && LA120_1 <= 89)||LA120_1==95||LA120_1==98||LA120_1==101||LA120_1==105||LA120_1==107||LA120_1==115) ) {
alt120=1;
}
else if ( (LA120_1==Identifier) ) {
int LA120_19 = input.LA(3);
if ( (synpred181_Java()) ) {
alt120=1;
}
else if ( (synpred182_Java()) ) {
alt120=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 120, 19, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 120, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA120_0==70) ) {
alt120=3;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 120, 0, input);
throw nvae;
}
switch (alt120) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1321:9: 'case' constantExpression ':'
{
match(input,65,FOLLOW_65_in_switchLabel5611); if (state.failed) return;
pushFollow(FOLLOW_constantExpression_in_switchLabel5613);
constantExpression();
state._fsp--;
if (state.failed) return;
match(input,49,FOLLOW_49_in_switchLabel5615); if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1322:9: 'case' enumConstantName ':'
{
match(input,65,FOLLOW_65_in_switchLabel5625); if (state.failed) return;
pushFollow(FOLLOW_enumConstantName_in_switchLabel5627);
enumConstantName();
state._fsp--;
if (state.failed) return;
match(input,49,FOLLOW_49_in_switchLabel5629); if (state.failed) return;
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1323:9: 'default' ':'
{
match(input,70,FOLLOW_70_in_switchLabel5639); if (state.failed) return;
match(input,49,FOLLOW_49_in_switchLabel5641); if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 97, switchLabel_StartIndex); }
}
}
// $ANTLR end "switchLabel"
// $ANTLR start "forControl"
// org/argouml/language/java/reveng/Java.g:1326:1: forControl options {k=3; } : ( enhancedForControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );
public final void forControl() throws RecognitionException {
int forControl_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 98) ) { return; }
// org/argouml/language/java/reveng/Java.g:1328:5: ( enhancedForControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? )
int alt124=2;
alt124 = dfa124.predict(input);
switch (alt124) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1328:9: enhancedForControl
{
pushFollow(FOLLOW_enhancedForControl_in_forControl5672);
enhancedForControl();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1329:9: ( forInit )? ';' ( expression )? ';' ( forUpdate )?
{
// org/argouml/language/java/reveng/Java.g:1329:9: ( forInit )?
int alt121=2;
int LA121_0 = input.LA(1);
if ( ((LA121_0 >= CharacterLiteral && LA121_0 <= DecimalLiteral)||LA121_0==FloatingPointLiteral||(LA121_0 >= HexLiteral && LA121_0 <= Identifier)||(LA121_0 >= OctalLiteral && LA121_0 <= StringLiteral)||LA121_0==27||LA121_0==34||(LA121_0 >= 38 && LA121_0 <= 39)||(LA121_0 >= 42 && LA121_0 <= 43)||LA121_0==56||LA121_0==62||LA121_0==64||LA121_0==67||LA121_0==72||(LA121_0 >= 75 && LA121_0 <= 76)||LA121_0==78||LA121_0==84||LA121_0==86||(LA121_0 >= 88 && LA121_0 <= 89)||LA121_0==95||LA121_0==98||LA121_0==101||LA121_0==105||LA121_0==107||LA121_0==115) ) {
alt121=1;
}
switch (alt121) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1329:9: forInit
{
pushFollow(FOLLOW_forInit_in_forControl5682);
forInit();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,50,FOLLOW_50_in_forControl5685); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1329:22: ( expression )?
int alt122=2;
int LA122_0 = input.LA(1);
if ( ((LA122_0 >= CharacterLiteral && LA122_0 <= DecimalLiteral)||LA122_0==FloatingPointLiteral||(LA122_0 >= HexLiteral && LA122_0 <= Identifier)||(LA122_0 >= OctalLiteral && LA122_0 <= StringLiteral)||LA122_0==27||LA122_0==34||(LA122_0 >= 38 && LA122_0 <= 39)||(LA122_0 >= 42 && LA122_0 <= 43)||LA122_0==62||LA122_0==64||LA122_0==67||LA122_0==72||LA122_0==75||LA122_0==78||LA122_0==84||LA122_0==86||(LA122_0 >= 88 && LA122_0 <= 89)||LA122_0==95||LA122_0==98||LA122_0==101||LA122_0==105||LA122_0==107||LA122_0==115) ) {
alt122=1;
}
switch (alt122) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1329:22: expression
{
pushFollow(FOLLOW_expression_in_forControl5687);
expression();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,50,FOLLOW_50_in_forControl5690); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1329:38: ( forUpdate )?
int alt123=2;
int LA123_0 = input.LA(1);
if ( ((LA123_0 >= CharacterLiteral && LA123_0 <= DecimalLiteral)||LA123_0==FloatingPointLiteral||(LA123_0 >= HexLiteral && LA123_0 <= Identifier)||(LA123_0 >= OctalLiteral && LA123_0 <= StringLiteral)||LA123_0==27||LA123_0==34||(LA123_0 >= 38 && LA123_0 <= 39)||(LA123_0 >= 42 && LA123_0 <= 43)||LA123_0==62||LA123_0==64||LA123_0==67||LA123_0==72||LA123_0==75||LA123_0==78||LA123_0==84||LA123_0==86||(LA123_0 >= 88 && LA123_0 <= 89)||LA123_0==95||LA123_0==98||LA123_0==101||LA123_0==105||LA123_0==107||LA123_0==115) ) {
alt123=1;
}
switch (alt123) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1329:38: forUpdate
{
pushFollow(FOLLOW_forUpdate_in_forControl5692);
forUpdate();
state._fsp--;
if (state.failed) return;
}
break;
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 98, forControl_StartIndex); }
}
}
// $ANTLR end "forControl"
// $ANTLR start "forInit"
// org/argouml/language/java/reveng/Java.g:1332:1: forInit : ( localVariableDeclaration | expressionList );
public final void forInit() throws RecognitionException {
int forInit_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 99) ) { return; }
// org/argouml/language/java/reveng/Java.g:1333:5: ( localVariableDeclaration | expressionList )
int alt125=2;
switch ( input.LA(1) ) {
case 56:
case 76:
{
alt125=1;
}
break;
case Identifier:
{
switch ( input.LA(2) ) {
case 51:
{
int LA125_22 = input.LA(3);
if ( (synpred187_Java()) ) {
alt125=1;
}
else if ( (true) ) {
alt125=2;
}
}
break;
case 45:
{
int LA125_23 = input.LA(3);
if ( (synpred187_Java()) ) {
alt125=1;
}
else if ( (true) ) {
alt125=2;
}
}
break;
case 57:
{
int LA125_24 = input.LA(3);
if ( (synpred187_Java()) ) {
alt125=1;
}
else if ( (true) ) {
alt125=2;
}
}
break;
case Identifier:
{
alt125=1;
}
break;
case EOF:
case 28:
case 29:
case 30:
case 31:
case 32:
case 33:
case 34:
case 36:
case 37:
case 38:
case 39:
case 40:
case 41:
case 42:
case 43:
case 44:
case 47:
case 48:
case 50:
case 52:
case 53:
case 54:
case 55:
case 59:
case 60:
case 83:
case 111:
case 112:
case 113:
{
alt125=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 125, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case 62:
case 64:
case 67:
case 72:
case 78:
case 84:
case 86:
case 95:
{
switch ( input.LA(2) ) {
case 57:
{
int LA125_51 = input.LA(3);
if ( (synpred187_Java()) ) {
alt125=1;
}
else if ( (true) ) {
alt125=2;
}
}
break;
case Identifier:
{
alt125=1;
}
break;
case 45:
{
alt125=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 125, 4, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CharacterLiteral:
case DecimalLiteral:
case FloatingPointLiteral:
case HexLiteral:
case OctalLiteral:
case StringLiteral:
case 27:
case 34:
case 38:
case 39:
case 42:
case 43:
case 75:
case 88:
case 89:
case 98:
case 101:
case 105:
case 107:
case 115:
{
alt125=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 125, 0, input);
throw nvae;
}
switch (alt125) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1333:9: localVariableDeclaration
{
pushFollow(FOLLOW_localVariableDeclaration_in_forInit5712);
localVariableDeclaration();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1334:9: expressionList
{
pushFollow(FOLLOW_expressionList_in_forInit5722);
expressionList();
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 99, forInit_StartIndex); }
}
}
// $ANTLR end "forInit"
// $ANTLR start "enhancedForControl"
// org/argouml/language/java/reveng/Java.g:1337:1: enhancedForControl : variableModifiers type Identifier ':' expression ;
public final void enhancedForControl() throws RecognitionException {
int enhancedForControl_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 100) ) { return; }
// org/argouml/language/java/reveng/Java.g:1338:5: ( variableModifiers type Identifier ':' expression )
// org/argouml/language/java/reveng/Java.g:1338:9: variableModifiers type Identifier ':' expression
{
pushFollow(FOLLOW_variableModifiers_in_enhancedForControl5745);
variableModifiers();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_type_in_enhancedForControl5747);
type();
state._fsp--;
if (state.failed) return;
match(input,Identifier,FOLLOW_Identifier_in_enhancedForControl5749); if (state.failed) return;
match(input,49,FOLLOW_49_in_enhancedForControl5751); if (state.failed) return;
pushFollow(FOLLOW_expression_in_enhancedForControl5753);
expression();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 100, enhancedForControl_StartIndex); }
}
}
// $ANTLR end "enhancedForControl"
// $ANTLR start "forUpdate"
// org/argouml/language/java/reveng/Java.g:1341:1: forUpdate : expressionList ;
public final void forUpdate() throws RecognitionException {
int forUpdate_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 101) ) { return; }
// org/argouml/language/java/reveng/Java.g:1342:5: ( expressionList )
// org/argouml/language/java/reveng/Java.g:1342:9: expressionList
{
pushFollow(FOLLOW_expressionList_in_forUpdate5772);
expressionList();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 101, forUpdate_StartIndex); }
}
}
// $ANTLR end "forUpdate"
// $ANTLR start "parExpression"
// org/argouml/language/java/reveng/Java.g:1347:1: parExpression : '(' expression ')' ;
public final void parExpression() throws RecognitionException {
int parExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 102) ) { return; }
// org/argouml/language/java/reveng/Java.g:1348:5: ( '(' expression ')' )
// org/argouml/language/java/reveng/Java.g:1348:9: '(' expression ')'
{
match(input,34,FOLLOW_34_in_parExpression5793); if (state.failed) return;
pushFollow(FOLLOW_expression_in_parExpression5795);
expression();
state._fsp--;
if (state.failed) return;
match(input,35,FOLLOW_35_in_parExpression5797); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 102, parExpression_StartIndex); }
}
}
// $ANTLR end "parExpression"
// $ANTLR start "expressionList"
// org/argouml/language/java/reveng/Java.g:1351:1: expressionList : expression ( ',' expression )* ;
public final void expressionList() throws RecognitionException {
int expressionList_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 103) ) { return; }
// org/argouml/language/java/reveng/Java.g:1352:5: ( expression ( ',' expression )* )
// org/argouml/language/java/reveng/Java.g:1352:9: expression ( ',' expression )*
{
pushFollow(FOLLOW_expression_in_expressionList5820);
expression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1352:20: ( ',' expression )*
loop126:
while (true) {
int alt126=2;
int LA126_0 = input.LA(1);
if ( (LA126_0==41) ) {
alt126=1;
}
switch (alt126) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1352:21: ',' expression
{
match(input,41,FOLLOW_41_in_expressionList5823); if (state.failed) return;
pushFollow(FOLLOW_expression_in_expressionList5825);
expression();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop126;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 103, expressionList_StartIndex); }
}
}
// $ANTLR end "expressionList"
// $ANTLR start "statementExpression"
// org/argouml/language/java/reveng/Java.g:1355:1: statementExpression : expression ;
public final void statementExpression() throws RecognitionException {
int statementExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 104) ) { return; }
// org/argouml/language/java/reveng/Java.g:1356:5: ( expression )
// org/argouml/language/java/reveng/Java.g:1356:9: expression
{
pushFollow(FOLLOW_expression_in_statementExpression5846);
expression();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 104, statementExpression_StartIndex); }
}
}
// $ANTLR end "statementExpression"
// $ANTLR start "constantExpression"
// org/argouml/language/java/reveng/Java.g:1360:1: constantExpression : expression ;
public final void constantExpression() throws RecognitionException {
int constantExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 105) ) { return; }
// org/argouml/language/java/reveng/Java.g:1361:5: ( expression )
// org/argouml/language/java/reveng/Java.g:1361:9: expression
{
pushFollow(FOLLOW_expression_in_constantExpression5878);
expression();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 105, constantExpression_StartIndex); }
}
}
// $ANTLR end "constantExpression"
// $ANTLR start "expression"
// org/argouml/language/java/reveng/Java.g:1364:1: expression : conditionalExpression ( assignmentOperator expression )? ;
public final void expression() throws RecognitionException {
int expression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 106) ) { return; }
// org/argouml/language/java/reveng/Java.g:1365:5: ( conditionalExpression ( assignmentOperator expression )? )
// org/argouml/language/java/reveng/Java.g:1365:9: conditionalExpression ( assignmentOperator expression )?
{
pushFollow(FOLLOW_conditionalExpression_in_expression5901);
conditionalExpression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1365:31: ( assignmentOperator expression )?
int alt127=2;
alt127 = dfa127.predict(input);
switch (alt127) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1365:32: assignmentOperator expression
{
pushFollow(FOLLOW_assignmentOperator_in_expression5904);
assignmentOperator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_expression_in_expression5906);
expression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 106, expression_StartIndex); }
}
}
// $ANTLR end "expression"
// $ANTLR start "assignmentOperator"
// org/argouml/language/java/reveng/Java.g:1368:1: assignmentOperator : ( '=' | '+=' | '-=' | '*=' | '/=' | '&=' | '|=' | '^=' | '%=' | ( '<' '<' '=' )=>t1= '<' t2= '<' t3= '=' {...}?| ( '>' '>' '>' '=' )=>t1= '>' t2= '>' t3= '>' t4= '=' {...}?| ( '>' '>' '=' )=>t1= '>' t2= '>' t3= '=' {...}?);
public final void assignmentOperator() throws RecognitionException {
int assignmentOperator_StartIndex = input.index();
Token t1=null;
Token t2=null;
Token t3=null;
Token t4=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 107) ) { return; }
// org/argouml/language/java/reveng/Java.g:1369:5: ( '=' | '+=' | '-=' | '*=' | '/=' | '&=' | '|=' | '^=' | '%=' | ( '<' '<' '=' )=>t1= '<' t2= '<' t3= '=' {...}?| ( '>' '>' '>' '=' )=>t1= '>' t2= '>' t3= '>' t4= '=' {...}?| ( '>' '>' '=' )=>t1= '>' t2= '>' t3= '=' {...}?)
int alt128=12;
int LA128_0 = input.LA(1);
if ( (LA128_0==52) ) {
alt128=1;
}
else if ( (LA128_0==40) ) {
alt128=2;
}
else if ( (LA128_0==44) ) {
alt128=3;
}
else if ( (LA128_0==37) ) {
alt128=4;
}
else if ( (LA128_0==48) ) {
alt128=5;
}
else if ( (LA128_0==33) ) {
alt128=6;
}
else if ( (LA128_0==112) ) {
alt128=7;
}
else if ( (LA128_0==60) ) {
alt128=8;
}
else if ( (LA128_0==30) ) {
alt128=9;
}
else if ( (LA128_0==51) && (synpred199_Java())) {
alt128=10;
}
else if ( (LA128_0==54) ) {
int LA128_11 = input.LA(2);
if ( (LA128_11==54) ) {
int LA128_12 = input.LA(3);
if ( (synpred200_Java()) ) {
alt128=11;
}
else if ( (synpred201_Java()) ) {
alt128=12;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 128, 12, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 128, 11, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 128, 0, input);
throw nvae;
}
switch (alt128) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1369:9: '='
{
match(input,52,FOLLOW_52_in_assignmentOperator5931); if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1370:9: '+='
{
match(input,40,FOLLOW_40_in_assignmentOperator5941); if (state.failed) return;
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1371:9: '-='
{
match(input,44,FOLLOW_44_in_assignmentOperator5951); if (state.failed) return;
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:1372:9: '*='
{
match(input,37,FOLLOW_37_in_assignmentOperator5961); if (state.failed) return;
}
break;
case 5 :
// org/argouml/language/java/reveng/Java.g:1373:9: '/='
{
match(input,48,FOLLOW_48_in_assignmentOperator5971); if (state.failed) return;
}
break;
case 6 :
// org/argouml/language/java/reveng/Java.g:1374:9: '&='
{
match(input,33,FOLLOW_33_in_assignmentOperator5981); if (state.failed) return;
}
break;
case 7 :
// org/argouml/language/java/reveng/Java.g:1375:9: '|='
{
match(input,112,FOLLOW_112_in_assignmentOperator5991); if (state.failed) return;
}
break;
case 8 :
// org/argouml/language/java/reveng/Java.g:1376:9: '^='
{
match(input,60,FOLLOW_60_in_assignmentOperator6001); if (state.failed) return;
}
break;
case 9 :
// org/argouml/language/java/reveng/Java.g:1377:9: '%='
{
match(input,30,FOLLOW_30_in_assignmentOperator6011); if (state.failed) return;
}
break;
case 10 :
// org/argouml/language/java/reveng/Java.g:1378:9: ( '<' '<' '=' )=>t1= '<' t2= '<' t3= '=' {...}?
{
t1=(Token)match(input,51,FOLLOW_51_in_assignmentOperator6032); if (state.failed) return;
t2=(Token)match(input,51,FOLLOW_51_in_assignmentOperator6036); if (state.failed) return;
t3=(Token)match(input,52,FOLLOW_52_in_assignmentOperator6040); if (state.failed) return;
if ( !(( t1.getLine() == t2.getLine() &&
t1.getCharPositionInLine() + 1 == t2.getCharPositionInLine() &&
t2.getLine() == t3.getLine() &&
t2.getCharPositionInLine() + 1 == t3.getCharPositionInLine() )) ) {
if (state.backtracking>0) {state.failed=true; return;}
throw new FailedPredicateException(input, "assignmentOperator", " $t1.getLine() == $t2.getLine() &&\r\n $t1.getCharPositionInLine() + 1 == $t2.getCharPositionInLine() && \r\n $t2.getLine() == $t3.getLine() && \r\n $t2.getCharPositionInLine() + 1 == $t3.getCharPositionInLine() ");
}
}
break;
case 11 :
// org/argouml/language/java/reveng/Java.g:1383:9: ( '>' '>' '>' '=' )=>t1= '>' t2= '>' t3= '>' t4= '=' {...}?
{
t1=(Token)match(input,54,FOLLOW_54_in_assignmentOperator6074); if (state.failed) return;
t2=(Token)match(input,54,FOLLOW_54_in_assignmentOperator6078); if (state.failed) return;
t3=(Token)match(input,54,FOLLOW_54_in_assignmentOperator6082); if (state.failed) return;
t4=(Token)match(input,52,FOLLOW_52_in_assignmentOperator6086); if (state.failed) return;
if ( !(( t1.getLine() == t2.getLine() &&
t1.getCharPositionInLine() + 1 == t2.getCharPositionInLine() &&
t2.getLine() == t3.getLine() &&
t2.getCharPositionInLine() + 1 == t3.getCharPositionInLine() &&
t3.getLine() == t4.getLine() &&
t3.getCharPositionInLine() + 1 == t4.getCharPositionInLine() )) ) {
if (state.backtracking>0) {state.failed=true; return;}
throw new FailedPredicateException(input, "assignmentOperator", " $t1.getLine() == $t2.getLine() && \r\n $t1.getCharPositionInLine() + 1 == $t2.getCharPositionInLine() &&\r\n $t2.getLine() == $t3.getLine() && \r\n $t2.getCharPositionInLine() + 1 == $t3.getCharPositionInLine() &&\r\n $t3.getLine() == $t4.getLine() && \r\n $t3.getCharPositionInLine() + 1 == $t4.getCharPositionInLine() ");
}
}
break;
case 12 :
// org/argouml/language/java/reveng/Java.g:1390:9: ( '>' '>' '=' )=>t1= '>' t2= '>' t3= '=' {...}?
{
t1=(Token)match(input,54,FOLLOW_54_in_assignmentOperator6117); if (state.failed) return;
t2=(Token)match(input,54,FOLLOW_54_in_assignmentOperator6121); if (state.failed) return;
t3=(Token)match(input,52,FOLLOW_52_in_assignmentOperator6125); if (state.failed) return;
if ( !(( t1.getLine() == t2.getLine() &&
t1.getCharPositionInLine() + 1 == t2.getCharPositionInLine() &&
t2.getLine() == t3.getLine() &&
t2.getCharPositionInLine() + 1 == t3.getCharPositionInLine() )) ) {
if (state.backtracking>0) {state.failed=true; return;}
throw new FailedPredicateException(input, "assignmentOperator", " $t1.getLine() == $t2.getLine() && \r\n $t1.getCharPositionInLine() + 1 == $t2.getCharPositionInLine() && \r\n $t2.getLine() == $t3.getLine() && \r\n $t2.getCharPositionInLine() + 1 == $t3.getCharPositionInLine() ");
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 107, assignmentOperator_StartIndex); }
}
}
// $ANTLR end "assignmentOperator"
// $ANTLR start "conditionalExpression"
// org/argouml/language/java/reveng/Java.g:1397:1: conditionalExpression : conditionalOrExpression ( '?' expression ':' expression )? ;
public final void conditionalExpression() throws RecognitionException {
int conditionalExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 108) ) { return; }
// org/argouml/language/java/reveng/Java.g:1398:5: ( conditionalOrExpression ( '?' expression ':' expression )? )
// org/argouml/language/java/reveng/Java.g:1398:9: conditionalOrExpression ( '?' expression ':' expression )?
{
pushFollow(FOLLOW_conditionalOrExpression_in_conditionalExpression6154);
conditionalOrExpression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1398:33: ( '?' expression ':' expression )?
int alt129=2;
int LA129_0 = input.LA(1);
if ( (LA129_0==55) ) {
alt129=1;
}
switch (alt129) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1398:35: '?' expression ':' expression
{
match(input,55,FOLLOW_55_in_conditionalExpression6158); if (state.failed) return;
pushFollow(FOLLOW_expression_in_conditionalExpression6160);
expression();
state._fsp--;
if (state.failed) return;
match(input,49,FOLLOW_49_in_conditionalExpression6162); if (state.failed) return;
pushFollow(FOLLOW_expression_in_conditionalExpression6164);
expression();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 108, conditionalExpression_StartIndex); }
}
}
// $ANTLR end "conditionalExpression"
// $ANTLR start "conditionalOrExpression"
// org/argouml/language/java/reveng/Java.g:1401:1: conditionalOrExpression : conditionalAndExpression ( '||' conditionalAndExpression )* ;
public final void conditionalOrExpression() throws RecognitionException {
int conditionalOrExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 109) ) { return; }
// org/argouml/language/java/reveng/Java.g:1402:5: ( conditionalAndExpression ( '||' conditionalAndExpression )* )
// org/argouml/language/java/reveng/Java.g:1402:9: conditionalAndExpression ( '||' conditionalAndExpression )*
{
pushFollow(FOLLOW_conditionalAndExpression_in_conditionalOrExpression6186);
conditionalAndExpression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1402:34: ( '||' conditionalAndExpression )*
loop130:
while (true) {
int alt130=2;
int LA130_0 = input.LA(1);
if ( (LA130_0==113) ) {
alt130=1;
}
switch (alt130) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1402:36: '||' conditionalAndExpression
{
match(input,113,FOLLOW_113_in_conditionalOrExpression6190); if (state.failed) return;
pushFollow(FOLLOW_conditionalAndExpression_in_conditionalOrExpression6192);
conditionalAndExpression();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop130;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 109, conditionalOrExpression_StartIndex); }
}
}
// $ANTLR end "conditionalOrExpression"
// $ANTLR start "conditionalAndExpression"
// org/argouml/language/java/reveng/Java.g:1405:1: conditionalAndExpression : inclusiveOrExpression ( '&&' inclusiveOrExpression )* ;
public final void conditionalAndExpression() throws RecognitionException {
int conditionalAndExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 110) ) { return; }
// org/argouml/language/java/reveng/Java.g:1406:5: ( inclusiveOrExpression ( '&&' inclusiveOrExpression )* )
// org/argouml/language/java/reveng/Java.g:1406:9: inclusiveOrExpression ( '&&' inclusiveOrExpression )*
{
pushFollow(FOLLOW_inclusiveOrExpression_in_conditionalAndExpression6214);
inclusiveOrExpression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1406:31: ( '&&' inclusiveOrExpression )*
loop131:
while (true) {
int alt131=2;
int LA131_0 = input.LA(1);
if ( (LA131_0==31) ) {
alt131=1;
}
switch (alt131) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1406:33: '&&' inclusiveOrExpression
{
match(input,31,FOLLOW_31_in_conditionalAndExpression6218); if (state.failed) return;
pushFollow(FOLLOW_inclusiveOrExpression_in_conditionalAndExpression6220);
inclusiveOrExpression();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop131;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 110, conditionalAndExpression_StartIndex); }
}
}
// $ANTLR end "conditionalAndExpression"
// $ANTLR start "inclusiveOrExpression"
// org/argouml/language/java/reveng/Java.g:1409:1: inclusiveOrExpression : exclusiveOrExpression ( '|' exclusiveOrExpression )* ;
public final void inclusiveOrExpression() throws RecognitionException {
int inclusiveOrExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 111) ) { return; }
// org/argouml/language/java/reveng/Java.g:1410:5: ( exclusiveOrExpression ( '|' exclusiveOrExpression )* )
// org/argouml/language/java/reveng/Java.g:1410:9: exclusiveOrExpression ( '|' exclusiveOrExpression )*
{
pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression6242);
exclusiveOrExpression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1410:31: ( '|' exclusiveOrExpression )*
loop132:
while (true) {
int alt132=2;
int LA132_0 = input.LA(1);
if ( (LA132_0==111) ) {
alt132=1;
}
switch (alt132) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1410:33: '|' exclusiveOrExpression
{
match(input,111,FOLLOW_111_in_inclusiveOrExpression6246); if (state.failed) return;
pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression6248);
exclusiveOrExpression();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop132;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 111, inclusiveOrExpression_StartIndex); }
}
}
// $ANTLR end "inclusiveOrExpression"
// $ANTLR start "exclusiveOrExpression"
// org/argouml/language/java/reveng/Java.g:1413:1: exclusiveOrExpression : andExpression ( '^' andExpression )* ;
public final void exclusiveOrExpression() throws RecognitionException {
int exclusiveOrExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 112) ) { return; }
// org/argouml/language/java/reveng/Java.g:1414:5: ( andExpression ( '^' andExpression )* )
// org/argouml/language/java/reveng/Java.g:1414:9: andExpression ( '^' andExpression )*
{
pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression6270);
andExpression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1414:23: ( '^' andExpression )*
loop133:
while (true) {
int alt133=2;
int LA133_0 = input.LA(1);
if ( (LA133_0==59) ) {
alt133=1;
}
switch (alt133) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1414:25: '^' andExpression
{
match(input,59,FOLLOW_59_in_exclusiveOrExpression6274); if (state.failed) return;
pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression6276);
andExpression();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop133;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 112, exclusiveOrExpression_StartIndex); }
}
}
// $ANTLR end "exclusiveOrExpression"
// $ANTLR start "andExpression"
// org/argouml/language/java/reveng/Java.g:1417:1: andExpression : equalityExpression ( '&' equalityExpression )* ;
public final void andExpression() throws RecognitionException {
int andExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 113) ) { return; }
// org/argouml/language/java/reveng/Java.g:1418:5: ( equalityExpression ( '&' equalityExpression )* )
// org/argouml/language/java/reveng/Java.g:1418:9: equalityExpression ( '&' equalityExpression )*
{
pushFollow(FOLLOW_equalityExpression_in_andExpression6298);
equalityExpression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1418:28: ( '&' equalityExpression )*
loop134:
while (true) {
int alt134=2;
int LA134_0 = input.LA(1);
if ( (LA134_0==32) ) {
alt134=1;
}
switch (alt134) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1418:30: '&' equalityExpression
{
match(input,32,FOLLOW_32_in_andExpression6302); if (state.failed) return;
pushFollow(FOLLOW_equalityExpression_in_andExpression6304);
equalityExpression();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop134;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 113, andExpression_StartIndex); }
}
}
// $ANTLR end "andExpression"
// $ANTLR start "equalityExpression"
// org/argouml/language/java/reveng/Java.g:1421:1: equalityExpression : instanceOfExpression ( ( '==' | '!=' ) instanceOfExpression )* ;
public final void equalityExpression() throws RecognitionException {
int equalityExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 114) ) { return; }
// org/argouml/language/java/reveng/Java.g:1422:5: ( instanceOfExpression ( ( '==' | '!=' ) instanceOfExpression )* )
// org/argouml/language/java/reveng/Java.g:1422:9: instanceOfExpression ( ( '==' | '!=' ) instanceOfExpression )*
{
pushFollow(FOLLOW_instanceOfExpression_in_equalityExpression6326);
instanceOfExpression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1422:30: ( ( '==' | '!=' ) instanceOfExpression )*
loop135:
while (true) {
int alt135=2;
int LA135_0 = input.LA(1);
if ( (LA135_0==28||LA135_0==53) ) {
alt135=1;
}
switch (alt135) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1422:32: ( '==' | '!=' ) instanceOfExpression
{
if ( input.LA(1)==28||input.LA(1)==53 ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_instanceOfExpression_in_equalityExpression6338);
instanceOfExpression();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop135;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 114, equalityExpression_StartIndex); }
}
}
// $ANTLR end "equalityExpression"
// $ANTLR start "instanceOfExpression"
// org/argouml/language/java/reveng/Java.g:1425:1: instanceOfExpression : relationalExpression ( 'instanceof' type )? ;
public final void instanceOfExpression() throws RecognitionException {
int instanceOfExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 115) ) { return; }
// org/argouml/language/java/reveng/Java.g:1426:5: ( relationalExpression ( 'instanceof' type )? )
// org/argouml/language/java/reveng/Java.g:1426:9: relationalExpression ( 'instanceof' type )?
{
pushFollow(FOLLOW_relationalExpression_in_instanceOfExpression6360);
relationalExpression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1426:30: ( 'instanceof' type )?
int alt136=2;
int LA136_0 = input.LA(1);
if ( (LA136_0==83) ) {
alt136=1;
}
switch (alt136) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1426:31: 'instanceof' type
{
match(input,83,FOLLOW_83_in_instanceOfExpression6363); if (state.failed) return;
pushFollow(FOLLOW_type_in_instanceOfExpression6365);
type();
state._fsp--;
if (state.failed) return;
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 115, instanceOfExpression_StartIndex); }
}
}
// $ANTLR end "instanceOfExpression"
// $ANTLR start "relationalExpression"
// org/argouml/language/java/reveng/Java.g:1429:1: relationalExpression : shiftExpression ( relationalOp shiftExpression )* ;
public final void relationalExpression() throws RecognitionException {
int relationalExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 116) ) { return; }
// org/argouml/language/java/reveng/Java.g:1430:5: ( shiftExpression ( relationalOp shiftExpression )* )
// org/argouml/language/java/reveng/Java.g:1430:9: shiftExpression ( relationalOp shiftExpression )*
{
pushFollow(FOLLOW_shiftExpression_in_relationalExpression6386);
shiftExpression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1430:25: ( relationalOp shiftExpression )*
loop137:
while (true) {
int alt137=2;
alt137 = dfa137.predict(input);
switch (alt137) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1430:27: relationalOp shiftExpression
{
pushFollow(FOLLOW_relationalOp_in_relationalExpression6390);
relationalOp();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_shiftExpression_in_relationalExpression6392);
shiftExpression();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop137;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 116, relationalExpression_StartIndex); }
}
}
// $ANTLR end "relationalExpression"
// $ANTLR start "relationalOp"
// org/argouml/language/java/reveng/Java.g:1433:1: relationalOp : ( ( '<' '=' )=>t1= '<' t2= '=' {...}?| ( '>' '=' )=>t1= '>' t2= '=' {...}?| '<' | '>' );
public final void relationalOp() throws RecognitionException {
int relationalOp_StartIndex = input.index();
Token t1=null;
Token t2=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 117) ) { return; }
// org/argouml/language/java/reveng/Java.g:1434:5: ( ( '<' '=' )=>t1= '<' t2= '=' {...}?| ( '>' '=' )=>t1= '>' t2= '=' {...}?| '<' | '>' )
int alt138=4;
int LA138_0 = input.LA(1);
if ( (LA138_0==51) ) {
int LA138_1 = input.LA(2);
if ( (LA138_1==52) && (synpred212_Java())) {
alt138=1;
}
else if ( ((LA138_1 >= CharacterLiteral && LA138_1 <= DecimalLiteral)||LA138_1==FloatingPointLiteral||(LA138_1 >= HexLiteral && LA138_1 <= Identifier)||(LA138_1 >= OctalLiteral && LA138_1 <= StringLiteral)||LA138_1==27||LA138_1==34||(LA138_1 >= 38 && LA138_1 <= 39)||(LA138_1 >= 42 && LA138_1 <= 43)||LA138_1==62||LA138_1==64||LA138_1==67||LA138_1==72||LA138_1==75||LA138_1==78||LA138_1==84||LA138_1==86||(LA138_1 >= 88 && LA138_1 <= 89)||LA138_1==95||LA138_1==98||LA138_1==101||LA138_1==105||LA138_1==107||LA138_1==115) ) {
alt138=3;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 138, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA138_0==54) ) {
int LA138_2 = input.LA(2);
if ( (LA138_2==52) && (synpred213_Java())) {
alt138=2;
}
else if ( ((LA138_2 >= CharacterLiteral && LA138_2 <= DecimalLiteral)||LA138_2==FloatingPointLiteral||(LA138_2 >= HexLiteral && LA138_2 <= Identifier)||(LA138_2 >= OctalLiteral && LA138_2 <= StringLiteral)||LA138_2==27||LA138_2==34||(LA138_2 >= 38 && LA138_2 <= 39)||(LA138_2 >= 42 && LA138_2 <= 43)||LA138_2==62||LA138_2==64||LA138_2==67||LA138_2==72||LA138_2==75||LA138_2==78||LA138_2==84||LA138_2==86||(LA138_2 >= 88 && LA138_2 <= 89)||LA138_2==95||LA138_2==98||LA138_2==101||LA138_2==105||LA138_2==107||LA138_2==115) ) {
alt138=4;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 138, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 138, 0, input);
throw nvae;
}
switch (alt138) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1434:9: ( '<' '=' )=>t1= '<' t2= '=' {...}?
{
t1=(Token)match(input,51,FOLLOW_51_in_relationalOp6427); if (state.failed) return;
t2=(Token)match(input,52,FOLLOW_52_in_relationalOp6431); if (state.failed) return;
if ( !(( t1.getLine() == t2.getLine() &&
t1.getCharPositionInLine() + 1 == t2.getCharPositionInLine() )) ) {
if (state.backtracking>0) {state.failed=true; return;}
throw new FailedPredicateException(input, "relationalOp", " $t1.getLine() == $t2.getLine() && \r\n $t1.getCharPositionInLine() + 1 == $t2.getCharPositionInLine() ");
}
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1437:9: ( '>' '=' )=>t1= '>' t2= '=' {...}?
{
t1=(Token)match(input,54,FOLLOW_54_in_relationalOp6461); if (state.failed) return;
t2=(Token)match(input,52,FOLLOW_52_in_relationalOp6465); if (state.failed) return;
if ( !(( t1.getLine() == t2.getLine() &&
t1.getCharPositionInLine() + 1 == t2.getCharPositionInLine() )) ) {
if (state.backtracking>0) {state.failed=true; return;}
throw new FailedPredicateException(input, "relationalOp", " $t1.getLine() == $t2.getLine() && \r\n $t1.getCharPositionInLine() + 1 == $t2.getCharPositionInLine() ");
}
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1440:9: '<'
{
match(input,51,FOLLOW_51_in_relationalOp6486); if (state.failed) return;
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:1441:9: '>'
{
match(input,54,FOLLOW_54_in_relationalOp6497); if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 117, relationalOp_StartIndex); }
}
}
// $ANTLR end "relationalOp"
// $ANTLR start "shiftExpression"
// org/argouml/language/java/reveng/Java.g:1444:1: shiftExpression : additiveExpression ( shiftOp additiveExpression )* ;
public final void shiftExpression() throws RecognitionException {
int shiftExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 118) ) { return; }
// org/argouml/language/java/reveng/Java.g:1445:5: ( additiveExpression ( shiftOp additiveExpression )* )
// org/argouml/language/java/reveng/Java.g:1445:9: additiveExpression ( shiftOp additiveExpression )*
{
pushFollow(FOLLOW_additiveExpression_in_shiftExpression6517);
additiveExpression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1445:28: ( shiftOp additiveExpression )*
loop139:
while (true) {
int alt139=2;
alt139 = dfa139.predict(input);
switch (alt139) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1445:30: shiftOp additiveExpression
{
pushFollow(FOLLOW_shiftOp_in_shiftExpression6521);
shiftOp();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_additiveExpression_in_shiftExpression6523);
additiveExpression();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop139;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 118, shiftExpression_StartIndex); }
}
}
// $ANTLR end "shiftExpression"
// $ANTLR start "shiftOp"
// org/argouml/language/java/reveng/Java.g:1448:1: shiftOp : ( ( '<' '<' )=>t1= '<' t2= '<' {...}?| ( '>' '>' '>' )=>t1= '>' t2= '>' t3= '>' {...}?| ( '>' '>' )=>t1= '>' t2= '>' {...}?);
public final void shiftOp() throws RecognitionException {
int shiftOp_StartIndex = input.index();
Token t1=null;
Token t2=null;
Token t3=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 119) ) { return; }
// org/argouml/language/java/reveng/Java.g:1449:5: ( ( '<' '<' )=>t1= '<' t2= '<' {...}?| ( '>' '>' '>' )=>t1= '>' t2= '>' t3= '>' {...}?| ( '>' '>' )=>t1= '>' t2= '>' {...}?)
int alt140=3;
int LA140_0 = input.LA(1);
if ( (LA140_0==51) && (synpred216_Java())) {
alt140=1;
}
else if ( (LA140_0==54) ) {
int LA140_2 = input.LA(2);
if ( (LA140_2==54) ) {
int LA140_3 = input.LA(3);
if ( (synpred217_Java()) ) {
alt140=2;
}
else if ( (synpred218_Java()) ) {
alt140=3;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
input.consume();
}
NoViableAltException nvae =
new NoViableAltException("", 140, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 140, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 140, 0, input);
throw nvae;
}
switch (alt140) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1449:9: ( '<' '<' )=>t1= '<' t2= '<' {...}?
{
t1=(Token)match(input,51,FOLLOW_51_in_shiftOp6554); if (state.failed) return;
t2=(Token)match(input,51,FOLLOW_51_in_shiftOp6558); if (state.failed) return;
if ( !(( t1.getLine() == t2.getLine() &&
t1.getCharPositionInLine() + 1 == t2.getCharPositionInLine() )) ) {
if (state.backtracking>0) {state.failed=true; return;}
throw new FailedPredicateException(input, "shiftOp", " $t1.getLine() == $t2.getLine() && \r\n $t1.getCharPositionInLine() + 1 == $t2.getCharPositionInLine() ");
}
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1452:9: ( '>' '>' '>' )=>t1= '>' t2= '>' t3= '>' {...}?
{
t1=(Token)match(input,54,FOLLOW_54_in_shiftOp6590); if (state.failed) return;
t2=(Token)match(input,54,FOLLOW_54_in_shiftOp6594); if (state.failed) return;
t3=(Token)match(input,54,FOLLOW_54_in_shiftOp6598); if (state.failed) return;
if ( !(( t1.getLine() == t2.getLine() &&
t1.getCharPositionInLine() + 1 == t2.getCharPositionInLine() &&
t2.getLine() == t3.getLine() &&
t2.getCharPositionInLine() + 1 == t3.getCharPositionInLine() )) ) {
if (state.backtracking>0) {state.failed=true; return;}
throw new FailedPredicateException(input, "shiftOp", " $t1.getLine() == $t2.getLine() && \r\n $t1.getCharPositionInLine() + 1 == $t2.getCharPositionInLine() &&\r\n $t2.getLine() == $t3.getLine() && \r\n $t2.getCharPositionInLine() + 1 == $t3.getCharPositionInLine() ");
}
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1457:9: ( '>' '>' )=>t1= '>' t2= '>' {...}?
{
t1=(Token)match(input,54,FOLLOW_54_in_shiftOp6628); if (state.failed) return;
t2=(Token)match(input,54,FOLLOW_54_in_shiftOp6632); if (state.failed) return;
if ( !(( t1.getLine() == t2.getLine() &&
t1.getCharPositionInLine() + 1 == t2.getCharPositionInLine() )) ) {
if (state.backtracking>0) {state.failed=true; return;}
throw new FailedPredicateException(input, "shiftOp", " $t1.getLine() == $t2.getLine() && \r\n $t1.getCharPositionInLine() + 1 == $t2.getCharPositionInLine() ");
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 119, shiftOp_StartIndex); }
}
}
// $ANTLR end "shiftOp"
// $ANTLR start "additiveExpression"
// org/argouml/language/java/reveng/Java.g:1463:1: additiveExpression : multiplicativeExpression ( ( '+' | '-' ) multiplicativeExpression )* ;
public final void additiveExpression() throws RecognitionException {
int additiveExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 120) ) { return; }
// org/argouml/language/java/reveng/Java.g:1464:5: ( multiplicativeExpression ( ( '+' | '-' ) multiplicativeExpression )* )
// org/argouml/language/java/reveng/Java.g:1464:9: multiplicativeExpression ( ( '+' | '-' ) multiplicativeExpression )*
{
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression6662);
multiplicativeExpression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1464:34: ( ( '+' | '-' ) multiplicativeExpression )*
loop141:
while (true) {
int alt141=2;
int LA141_0 = input.LA(1);
if ( (LA141_0==38||LA141_0==42) ) {
alt141=1;
}
switch (alt141) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1464:36: ( '+' | '-' ) multiplicativeExpression
{
if ( input.LA(1)==38||input.LA(1)==42 ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression6674);
multiplicativeExpression();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop141;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 120, additiveExpression_StartIndex); }
}
}
// $ANTLR end "additiveExpression"
// $ANTLR start "multiplicativeExpression"
// org/argouml/language/java/reveng/Java.g:1467:1: multiplicativeExpression : unaryExpression ( ( '*' | '/' | '%' ) unaryExpression )* ;
public final void multiplicativeExpression() throws RecognitionException {
int multiplicativeExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 121) ) { return; }
// org/argouml/language/java/reveng/Java.g:1468:5: ( unaryExpression ( ( '*' | '/' | '%' ) unaryExpression )* )
// org/argouml/language/java/reveng/Java.g:1468:9: unaryExpression ( ( '*' | '/' | '%' ) unaryExpression )*
{
pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression6696);
unaryExpression();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1468:25: ( ( '*' | '/' | '%' ) unaryExpression )*
loop142:
while (true) {
int alt142=2;
int LA142_0 = input.LA(1);
if ( (LA142_0==29||LA142_0==36||LA142_0==47) ) {
alt142=1;
}
switch (alt142) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1468:27: ( '*' | '/' | '%' ) unaryExpression
{
if ( input.LA(1)==29||input.LA(1)==36||input.LA(1)==47 ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression6714);
unaryExpression();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop142;
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 121, multiplicativeExpression_StartIndex); }
}
}
// $ANTLR end "multiplicativeExpression"
// $ANTLR start "unaryExpression"
// org/argouml/language/java/reveng/Java.g:1471:1: unaryExpression : ( '+' unaryExpression | '-' unaryExpression | '++' unaryExpression | '--' unaryExpression | unaryExpressionNotPlusMinus );
public final void unaryExpression() throws RecognitionException {
int unaryExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 122) ) { return; }
// org/argouml/language/java/reveng/Java.g:1472:5: ( '+' unaryExpression | '-' unaryExpression | '++' unaryExpression | '--' unaryExpression | unaryExpressionNotPlusMinus )
int alt143=5;
switch ( input.LA(1) ) {
case 38:
{
alt143=1;
}
break;
case 42:
{
alt143=2;
}
break;
case 39:
{
alt143=3;
}
break;
case 43:
{
alt143=4;
}
break;
case CharacterLiteral:
case DecimalLiteral:
case FloatingPointLiteral:
case HexLiteral:
case Identifier:
case OctalLiteral:
case StringLiteral:
case 27:
case 34:
case 62:
case 64:
case 67:
case 72:
case 75:
case 78:
case 84:
case 86:
case 88:
case 89:
case 95:
case 98:
case 101:
case 105:
case 107:
case 115:
{
alt143=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 143, 0, input);
throw nvae;
}
switch (alt143) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1472:9: '+' unaryExpression
{
match(input,38,FOLLOW_38_in_unaryExpression6740); if (state.failed) return;
pushFollow(FOLLOW_unaryExpression_in_unaryExpression6742);
unaryExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1473:9: '-' unaryExpression
{
match(input,42,FOLLOW_42_in_unaryExpression6752); if (state.failed) return;
pushFollow(FOLLOW_unaryExpression_in_unaryExpression6754);
unaryExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1474:9: '++' unaryExpression
{
match(input,39,FOLLOW_39_in_unaryExpression6764); if (state.failed) return;
pushFollow(FOLLOW_unaryExpression_in_unaryExpression6766);
unaryExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:1475:9: '--' unaryExpression
{
match(input,43,FOLLOW_43_in_unaryExpression6776); if (state.failed) return;
pushFollow(FOLLOW_unaryExpression_in_unaryExpression6778);
unaryExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// org/argouml/language/java/reveng/Java.g:1476:9: unaryExpressionNotPlusMinus
{
pushFollow(FOLLOW_unaryExpressionNotPlusMinus_in_unaryExpression6788);
unaryExpressionNotPlusMinus();
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 122, unaryExpression_StartIndex); }
}
}
// $ANTLR end "unaryExpression"
// $ANTLR start "unaryExpressionNotPlusMinus"
// org/argouml/language/java/reveng/Java.g:1479:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );
public final void unaryExpressionNotPlusMinus() throws RecognitionException {
int unaryExpressionNotPlusMinus_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 123) ) { return; }
// org/argouml/language/java/reveng/Java.g:1480:5: ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? )
int alt146=4;
switch ( input.LA(1) ) {
case 115:
{
alt146=1;
}
break;
case 27:
{
alt146=2;
}
break;
case 34:
{
switch ( input.LA(2) ) {
case 62:
case 64:
case 67:
case 72:
case 78:
case 84:
case 86:
case 95:
{
int LA146_16 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case Identifier:
{
int LA146_17 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case 38:
{
int LA146_18 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case 42:
{
int LA146_19 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case 39:
{
int LA146_20 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case 43:
{
int LA146_21 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case 115:
{
int LA146_22 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case 27:
{
int LA146_23 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case 34:
{
int LA146_24 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case 101:
{
int LA146_25 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case 98:
{
int LA146_26 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case DecimalLiteral:
case HexLiteral:
case OctalLiteral:
{
int LA146_27 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case FloatingPointLiteral:
{
int LA146_28 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case CharacterLiteral:
{
int LA146_29 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case StringLiteral:
{
int LA146_30 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case 75:
case 105:
{
int LA146_31 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case 89:
{
int LA146_32 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case 88:
{
int LA146_33 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
case 107:
{
int LA146_34 = input.LA(3);
if ( (synpred230_Java()) ) {
alt146=3;
}
else if ( (true) ) {
alt146=4;
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 146, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CharacterLiteral:
case DecimalLiteral:
case FloatingPointLiteral:
case HexLiteral:
case Identifier:
case OctalLiteral:
case StringLiteral:
case 62:
case 64:
case 67:
case 72:
case 75:
case 78:
case 84:
case 86:
case 88:
case 89:
case 95:
case 98:
case 101:
case 105:
case 107:
{
alt146=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 146, 0, input);
throw nvae;
}
switch (alt146) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1480:9: '~' unaryExpression
{
match(input,115,FOLLOW_115_in_unaryExpressionNotPlusMinus6807); if (state.failed) return;
pushFollow(FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus6809);
unaryExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1481:9: '!' unaryExpression
{
match(input,27,FOLLOW_27_in_unaryExpressionNotPlusMinus6819); if (state.failed) return;
pushFollow(FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus6821);
unaryExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1482:9: castExpression
{
pushFollow(FOLLOW_castExpression_in_unaryExpressionNotPlusMinus6831);
castExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:1483:9: primary ( selector )* ( '++' | '--' )?
{
pushFollow(FOLLOW_primary_in_unaryExpressionNotPlusMinus6841);
primary();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1483:17: ( selector )*
loop144:
while (true) {
int alt144=2;
int LA144_0 = input.LA(1);
if ( (LA144_0==45||LA144_0==57) ) {
alt144=1;
}
switch (alt144) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1483:17: selector
{
pushFollow(FOLLOW_selector_in_unaryExpressionNotPlusMinus6843);
selector();
state._fsp--;
if (state.failed) return;
}
break;
default :
break loop144;
}
}
// org/argouml/language/java/reveng/Java.g:1483:27: ( '++' | '--' )?
int alt145=2;
int LA145_0 = input.LA(1);
if ( (LA145_0==39||LA145_0==43) ) {
alt145=1;
}
switch (alt145) {
case 1 :
// org/argouml/language/java/reveng/Java.g:
{
if ( input.LA(1)==39||input.LA(1)==43 ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
break;
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 123, unaryExpressionNotPlusMinus_StartIndex); }
}
}
// $ANTLR end "unaryExpressionNotPlusMinus"
// $ANTLR start "castExpression"
// org/argouml/language/java/reveng/Java.g:1486:1: castExpression : ( '(' primitiveType ')' unaryExpression | '(' ( type | expression ) ')' unaryExpressionNotPlusMinus );
public final void castExpression() throws RecognitionException {
int castExpression_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 124) ) { return; }
// org/argouml/language/java/reveng/Java.g:1487:5: ( '(' primitiveType ')' unaryExpression | '(' ( type | expression ) ')' unaryExpressionNotPlusMinus )
int alt148=2;
int LA148_0 = input.LA(1);
if ( (LA148_0==34) ) {
int LA148_1 = input.LA(2);
if ( (LA148_1==62||LA148_1==64||LA148_1==67||LA148_1==72||LA148_1==78||LA148_1==84||LA148_1==86||LA148_1==95) ) {
int LA148_2 = input.LA(3);
if ( (synpred234_Java()) ) {
alt148=1;
}
else if ( (true) ) {
alt148=2;
}
}
else if ( ((LA148_1 >= CharacterLiteral && LA148_1 <= DecimalLiteral)||LA148_1==FloatingPointLiteral||(LA148_1 >= HexLiteral && LA148_1 <= Identifier)||(LA148_1 >= OctalLiteral && LA148_1 <= StringLiteral)||LA148_1==27||LA148_1==34||(LA148_1 >= 38 && LA148_1 <= 39)||(LA148_1 >= 42 && LA148_1 <= 43)||LA148_1==75||(LA148_1 >= 88 && LA148_1 <= 89)||LA148_1==98||LA148_1==101||LA148_1==105||LA148_1==107||LA148_1==115) ) {
alt148=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 148, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 148, 0, input);
throw nvae;
}
switch (alt148) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1487:8: '(' primitiveType ')' unaryExpression
{
match(input,34,FOLLOW_34_in_castExpression6869); if (state.failed) return;
pushFollow(FOLLOW_primitiveType_in_castExpression6871);
primitiveType();
state._fsp--;
if (state.failed) return;
match(input,35,FOLLOW_35_in_castExpression6873); if (state.failed) return;
pushFollow(FOLLOW_unaryExpression_in_castExpression6875);
unaryExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1488:8: '(' ( type | expression ) ')' unaryExpressionNotPlusMinus
{
match(input,34,FOLLOW_34_in_castExpression6884); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1488:12: ( type | expression )
int alt147=2;
switch ( input.LA(1) ) {
case Identifier:
{
int LA147_1 = input.LA(2);
if ( (synpred235_Java()) ) {
alt147=1;
}
else if ( (true) ) {
alt147=2;
}
}
break;
case 62:
case 64:
case 67:
case 72:
case 78:
case 84:
case 86:
case 95:
{
switch ( input.LA(2) ) {
case 57:
{
int LA147_47 = input.LA(3);
if ( (synpred235_Java()) ) {
alt147=1;
}
else if ( (true) ) {
alt147=2;
}
}
break;
case 35:
{
alt147=1;
}
break;
case 45:
{
alt147=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 147, 2, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case CharacterLiteral:
case DecimalLiteral:
case FloatingPointLiteral:
case HexLiteral:
case OctalLiteral:
case StringLiteral:
case 27:
case 34:
case 38:
case 39:
case 42:
case 43:
case 75:
case 88:
case 89:
case 98:
case 101:
case 105:
case 107:
case 115:
{
alt147=2;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 147, 0, input);
throw nvae;
}
switch (alt147) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1488:13: type
{
pushFollow(FOLLOW_type_in_castExpression6887);
type();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1488:20: expression
{
pushFollow(FOLLOW_expression_in_castExpression6891);
expression();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,35,FOLLOW_35_in_castExpression6894); if (state.failed) return;
pushFollow(FOLLOW_unaryExpressionNotPlusMinus_in_castExpression6896);
unaryExpressionNotPlusMinus();
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 124, castExpression_StartIndex); }
}
}
// $ANTLR end "castExpression"
// $ANTLR start "primary"
// org/argouml/language/java/reveng/Java.g:1491:1: primary : ( parExpression | 'this' ( '.' id= Identifier )* ( identifierSuffix )? | 'super' superSuffix | literal | 'new' creator |id= Identifier ( '.' id= Identifier )* ( identifierSuffix )? | primitiveType ( '[' ']' )* '.' 'class' | 'void' '.' 'class' );
public final void primary() throws RecognitionException {
int primary_StartIndex = input.index();
Token id=null;
String name = null;
boolean parenths = false; //LA(1) == LPAREN;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 125) ) { return; }
// org/argouml/language/java/reveng/Java.g:1496:5: ( parExpression | 'this' ( '.' id= Identifier )* ( identifierSuffix )? | 'super' superSuffix | literal | 'new' creator |id= Identifier ( '.' id= Identifier )* ( identifierSuffix )? | primitiveType ( '[' ']' )* '.' 'class' | 'void' '.' 'class' )
int alt154=8;
switch ( input.LA(1) ) {
case 34:
{
alt154=1;
}
break;
case 101:
{
alt154=2;
}
break;
case 98:
{
alt154=3;
}
break;
case CharacterLiteral:
case DecimalLiteral:
case FloatingPointLiteral:
case HexLiteral:
case OctalLiteral:
case StringLiteral:
case 75:
case 89:
case 105:
{
alt154=4;
}
break;
case 88:
{
alt154=5;
}
break;
case Identifier:
{
alt154=6;
}
break;
case 62:
case 64:
case 67:
case 72:
case 78:
case 84:
case 86:
case 95:
{
alt154=7;
}
break;
case 107:
{
alt154=8;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 154, 0, input);
throw nvae;
}
switch (alt154) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1496:9: parExpression
{
pushFollow(FOLLOW_parExpression_in_primary6923);
parExpression();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1497:9: 'this' ( '.' id= Identifier )* ( identifierSuffix )?
{
match(input,101,FOLLOW_101_in_primary6933); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1497:16: ( '.' id= Identifier )*
loop149:
while (true) {
int alt149=2;
int LA149_0 = input.LA(1);
if ( (LA149_0==45) ) {
int LA149_3 = input.LA(2);
if ( (LA149_3==Identifier) ) {
int LA149_37 = input.LA(3);
if ( (synpred237_Java()) ) {
alt149=1;
}
}
}
switch (alt149) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1497:17: '.' id= Identifier
{
match(input,45,FOLLOW_45_in_primary6936); if (state.failed) return;
id=(Token)match(input,Identifier,FOLLOW_Identifier_in_primary6940); if (state.failed) return;
if ( state.backtracking==0 ) { name = (id!=null?id.getText():null); }
}
break;
default :
break loop149;
}
}
// org/argouml/language/java/reveng/Java.g:1498:9: ( identifierSuffix )?
int alt150=2;
switch ( input.LA(1) ) {
case 57:
{
switch ( input.LA(2) ) {
case 58:
{
alt150=1;
}
break;
case 38:
{
int LA150_34 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 42:
{
int LA150_35 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 39:
{
int LA150_36 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 43:
{
int LA150_37 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 115:
{
int LA150_38 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 27:
{
int LA150_39 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 34:
{
int LA150_40 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 101:
{
int LA150_41 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 98:
{
int LA150_42 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case DecimalLiteral:
case HexLiteral:
case OctalLiteral:
{
int LA150_43 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case FloatingPointLiteral:
{
int LA150_44 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case CharacterLiteral:
{
int LA150_45 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case StringLiteral:
{
int LA150_46 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 75:
case 105:
{
int LA150_47 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 89:
{
int LA150_48 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 88:
{
int LA150_49 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case Identifier:
{
int LA150_50 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 62:
case 64:
case 67:
case 72:
case 78:
case 84:
case 86:
case 95:
{
int LA150_51 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 107:
{
int LA150_52 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
}
}
break;
case 34:
{
alt150=1;
}
break;
case 45:
{
switch ( input.LA(2) ) {
case 68:
{
alt150=1;
}
break;
case 101:
{
int LA150_54 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 98:
{
int LA150_55 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 88:
{
int LA150_56 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
case 51:
{
int LA150_58 = input.LA(3);
if ( (synpred238_Java()) ) {
alt150=1;
}
}
break;
}
}
break;
}
switch (alt150) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1498:10: identifierSuffix
{
pushFollow(FOLLOW_identifierSuffix_in_primary6956);
identifierSuffix();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { parenths = true; }
}
break;
}
if ( state.backtracking==0 ) { if ((parserMode & MODE_REVENG_SEQUENCE) != 0) {
addDotCall(name, "this.", parenths);
}
}
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1503:9: 'super' superSuffix
{
match(input,98,FOLLOW_98_in_primary6981); if (state.failed) return;
pushFollow(FOLLOW_superSuffix_in_primary6983);
superSuffix();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { if ((parserMode & MODE_REVENG_SEQUENCE) != 0) {
addDotCall(name, "super.", true);
}
}
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:1508:9: literal
{
pushFollow(FOLLOW_literal_in_primary7003);
literal();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// org/argouml/language/java/reveng/Java.g:1509:9: 'new' creator
{
match(input,88,FOLLOW_88_in_primary7013); if (state.failed) return;
pushFollow(FOLLOW_creator_in_primary7015);
creator();
state._fsp--;
if (state.failed) return;
}
break;
case 6 :
// org/argouml/language/java/reveng/Java.g:1510:9: id= Identifier ( '.' id= Identifier )* ( identifierSuffix )?
{
id=(Token)match(input,Identifier,FOLLOW_Identifier_in_primary7027); if (state.failed) return;
if ( state.backtracking==0 ) { name = (id!=null?id.getText():null); }
// org/argouml/language/java/reveng/Java.g:1511:9: ( '.' id= Identifier )*
loop151:
while (true) {
int alt151=2;
int LA151_0 = input.LA(1);
if ( (LA151_0==45) ) {
int LA151_3 = input.LA(2);
if ( (LA151_3==Identifier) ) {
int LA151_37 = input.LA(3);
if ( (synpred243_Java()) ) {
alt151=1;
}
}
}
switch (alt151) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1511:10: '.' id= Identifier
{
match(input,45,FOLLOW_45_in_primary7041); if (state.failed) return;
id=(Token)match(input,Identifier,FOLLOW_Identifier_in_primary7045); if (state.failed) return;
if ( state.backtracking==0 ) { name = (id!=null?id.getText():null); }
}
break;
default :
break loop151;
}
}
// org/argouml/language/java/reveng/Java.g:1512:9: ( identifierSuffix )?
int alt152=2;
switch ( input.LA(1) ) {
case 57:
{
switch ( input.LA(2) ) {
case 58:
{
alt152=1;
}
break;
case 38:
{
int LA152_34 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 42:
{
int LA152_35 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 39:
{
int LA152_36 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 43:
{
int LA152_37 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 115:
{
int LA152_38 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 27:
{
int LA152_39 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 34:
{
int LA152_40 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 101:
{
int LA152_41 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 98:
{
int LA152_42 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case DecimalLiteral:
case HexLiteral:
case OctalLiteral:
{
int LA152_43 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case FloatingPointLiteral:
{
int LA152_44 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case CharacterLiteral:
{
int LA152_45 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case StringLiteral:
{
int LA152_46 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 75:
case 105:
{
int LA152_47 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 89:
{
int LA152_48 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 88:
{
int LA152_49 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case Identifier:
{
int LA152_50 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 62:
case 64:
case 67:
case 72:
case 78:
case 84:
case 86:
case 95:
{
int LA152_51 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 107:
{
int LA152_52 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
}
}
break;
case 34:
{
alt152=1;
}
break;
case 45:
{
switch ( input.LA(2) ) {
case 68:
{
alt152=1;
}
break;
case 101:
{
int LA152_54 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 98:
{
int LA152_55 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 88:
{
int LA152_56 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
case 51:
{
int LA152_58 = input.LA(3);
if ( (synpred244_Java()) ) {
alt152=1;
}
}
break;
}
}
break;
}
switch (alt152) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1512:10: identifierSuffix
{
pushFollow(FOLLOW_identifierSuffix_in_primary7061);
identifierSuffix();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { parenths = true; }
}
break;
}
if ( state.backtracking==0 ) { if ((parserMode & MODE_REVENG_SEQUENCE) != 0) {
addDotCall(name, null, parenths);
}
}
}
break;
case 7 :
// org/argouml/language/java/reveng/Java.g:1517:9: primitiveType ( '[' ']' )* '.' 'class'
{
pushFollow(FOLLOW_primitiveType_in_primary7086);
primitiveType();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1517:23: ( '[' ']' )*
loop153:
while (true) {
int alt153=2;
int LA153_0 = input.LA(1);
if ( (LA153_0==57) ) {
alt153=1;
}
switch (alt153) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1517:24: '[' ']'
{
match(input,57,FOLLOW_57_in_primary7089); if (state.failed) return;
match(input,58,FOLLOW_58_in_primary7091); if (state.failed) return;
}
break;
default :
break loop153;
}
}
match(input,45,FOLLOW_45_in_primary7095); if (state.failed) return;
match(input,68,FOLLOW_68_in_primary7097); if (state.failed) return;
}
break;
case 8 :
// org/argouml/language/java/reveng/Java.g:1518:9: 'void' '.' 'class'
{
match(input,107,FOLLOW_107_in_primary7107); if (state.failed) return;
match(input,45,FOLLOW_45_in_primary7109); if (state.failed) return;
match(input,68,FOLLOW_68_in_primary7111); if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 125, primary_StartIndex); }
}
}
// $ANTLR end "primary"
// $ANTLR start "identifierSuffix"
// org/argouml/language/java/reveng/Java.g:1521:1: identifierSuffix : ( ( '[' ']' )+ '.' 'class' | ( '[' expression ']' )+ | arguments | '.' 'class' | '.' explicitGenericInvocation | '.' 'this' | '.' 'super' arguments | '.' 'new' innerCreator );
public final void identifierSuffix() throws RecognitionException {
int identifierSuffix_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 126) ) { return; }
// org/argouml/language/java/reveng/Java.g:1522:5: ( ( '[' ']' )+ '.' 'class' | ( '[' expression ']' )+ | arguments | '.' 'class' | '.' explicitGenericInvocation | '.' 'this' | '.' 'super' arguments | '.' 'new' innerCreator )
int alt157=8;
switch ( input.LA(1) ) {
case 57:
{
int LA157_1 = input.LA(2);
if ( (LA157_1==58) ) {
alt157=1;
}
else if ( ((LA157_1 >= CharacterLiteral && LA157_1 <= DecimalLiteral)||LA157_1==FloatingPointLiteral||(LA157_1 >= HexLiteral && LA157_1 <= Identifier)||(LA157_1 >= OctalLiteral && LA157_1 <= StringLiteral)||LA157_1==27||LA157_1==34||(LA157_1 >= 38 && LA157_1 <= 39)||(LA157_1 >= 42 && LA157_1 <= 43)||LA157_1==62||LA157_1==64||LA157_1==67||LA157_1==72||LA157_1==75||LA157_1==78||LA157_1==84||LA157_1==86||(LA157_1 >= 88 && LA157_1 <= 89)||LA157_1==95||LA157_1==98||LA157_1==101||LA157_1==105||LA157_1==107||LA157_1==115) ) {
alt157=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 157, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
case 34:
{
alt157=3;
}
break;
case 45:
{
switch ( input.LA(2) ) {
case 68:
{
alt157=4;
}
break;
case 101:
{
alt157=6;
}
break;
case 98:
{
alt157=7;
}
break;
case 88:
{
alt157=8;
}
break;
case 51:
{
alt157=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 157, 3, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 157, 0, input);
throw nvae;
}
switch (alt157) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1522:9: ( '[' ']' )+ '.' 'class'
{
// org/argouml/language/java/reveng/Java.g:1522:9: ( '[' ']' )+
int cnt155=0;
loop155:
while (true) {
int alt155=2;
int LA155_0 = input.LA(1);
if ( (LA155_0==57) ) {
alt155=1;
}
switch (alt155) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1522:10: '[' ']'
{
match(input,57,FOLLOW_57_in_identifierSuffix7131); if (state.failed) return;
match(input,58,FOLLOW_58_in_identifierSuffix7133); if (state.failed) return;
}
break;
default :
if ( cnt155 >= 1 ) break loop155;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(155, input);
throw eee;
}
cnt155++;
}
match(input,45,FOLLOW_45_in_identifierSuffix7137); if (state.failed) return;
match(input,68,FOLLOW_68_in_identifierSuffix7139); if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1523:9: ( '[' expression ']' )+
{
// org/argouml/language/java/reveng/Java.g:1523:9: ( '[' expression ']' )+
int cnt156=0;
loop156:
while (true) {
int alt156=2;
int LA156_0 = input.LA(1);
if ( (LA156_0==57) ) {
switch ( input.LA(2) ) {
case 38:
{
int LA156_32 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case 42:
{
int LA156_33 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case 39:
{
int LA156_34 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case 43:
{
int LA156_35 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case 115:
{
int LA156_36 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case 27:
{
int LA156_37 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case 34:
{
int LA156_38 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case 101:
{
int LA156_39 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case 98:
{
int LA156_40 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case DecimalLiteral:
case HexLiteral:
case OctalLiteral:
{
int LA156_41 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case FloatingPointLiteral:
{
int LA156_42 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case CharacterLiteral:
{
int LA156_43 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case StringLiteral:
{
int LA156_44 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case 75:
case 105:
{
int LA156_45 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case 89:
{
int LA156_46 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case 88:
{
int LA156_47 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case Identifier:
{
int LA156_48 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case 62:
case 64:
case 67:
case 72:
case 78:
case 84:
case 86:
case 95:
{
int LA156_49 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
case 107:
{
int LA156_50 = input.LA(3);
if ( (synpred250_Java()) ) {
alt156=1;
}
}
break;
}
}
switch (alt156) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1523:10: '[' expression ']'
{
match(input,57,FOLLOW_57_in_identifierSuffix7150); if (state.failed) return;
pushFollow(FOLLOW_expression_in_identifierSuffix7152);
expression();
state._fsp--;
if (state.failed) return;
match(input,58,FOLLOW_58_in_identifierSuffix7154); if (state.failed) return;
}
break;
default :
if ( cnt156 >= 1 ) break loop156;
if (state.backtracking>0) {state.failed=true; return;}
EarlyExitException eee = new EarlyExitException(156, input);
throw eee;
}
cnt156++;
}
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1524:9: arguments
{
pushFollow(FOLLOW_arguments_in_identifierSuffix7167);
arguments();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:1525:9: '.' 'class'
{
match(input,45,FOLLOW_45_in_identifierSuffix7177); if (state.failed) return;
match(input,68,FOLLOW_68_in_identifierSuffix7179); if (state.failed) return;
}
break;
case 5 :
// org/argouml/language/java/reveng/Java.g:1526:9: '.' explicitGenericInvocation
{
match(input,45,FOLLOW_45_in_identifierSuffix7189); if (state.failed) return;
pushFollow(FOLLOW_explicitGenericInvocation_in_identifierSuffix7191);
explicitGenericInvocation();
state._fsp--;
if (state.failed) return;
}
break;
case 6 :
// org/argouml/language/java/reveng/Java.g:1527:9: '.' 'this'
{
match(input,45,FOLLOW_45_in_identifierSuffix7201); if (state.failed) return;
match(input,101,FOLLOW_101_in_identifierSuffix7203); if (state.failed) return;
}
break;
case 7 :
// org/argouml/language/java/reveng/Java.g:1528:9: '.' 'super' arguments
{
match(input,45,FOLLOW_45_in_identifierSuffix7213); if (state.failed) return;
match(input,98,FOLLOW_98_in_identifierSuffix7215); if (state.failed) return;
pushFollow(FOLLOW_arguments_in_identifierSuffix7217);
arguments();
state._fsp--;
if (state.failed) return;
}
break;
case 8 :
// org/argouml/language/java/reveng/Java.g:1529:9: '.' 'new' innerCreator
{
match(input,45,FOLLOW_45_in_identifierSuffix7227); if (state.failed) return;
match(input,88,FOLLOW_88_in_identifierSuffix7229); if (state.failed) return;
pushFollow(FOLLOW_innerCreator_in_identifierSuffix7231);
innerCreator();
state._fsp--;
if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 126, identifierSuffix_StartIndex); }
}
}
// $ANTLR end "identifierSuffix"
// $ANTLR start "creator"
// org/argouml/language/java/reveng/Java.g:1532:1: creator : ( nonWildcardTypeArguments t= createdName classCreatorRest[$t.text] |t= createdName ( arrayCreatorRest | classCreatorRest[$t.text] ) );
public final void creator() throws RecognitionException {
int creator_StartIndex = input.index();
ParserRuleReturnScope t =null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 127) ) { return; }
// org/argouml/language/java/reveng/Java.g:1533:5: ( nonWildcardTypeArguments t= createdName classCreatorRest[$t.text] |t= createdName ( arrayCreatorRest | classCreatorRest[$t.text] ) )
int alt159=2;
int LA159_0 = input.LA(1);
if ( (LA159_0==51) ) {
alt159=1;
}
else if ( (LA159_0==Identifier||LA159_0==62||LA159_0==64||LA159_0==67||LA159_0==72||LA159_0==78||LA159_0==84||LA159_0==86||LA159_0==95) ) {
alt159=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 159, 0, input);
throw nvae;
}
switch (alt159) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1533:9: nonWildcardTypeArguments t= createdName classCreatorRest[$t.text]
{
pushFollow(FOLLOW_nonWildcardTypeArguments_in_creator7250);
nonWildcardTypeArguments();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_createdName_in_creator7254);
t=createdName();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_classCreatorRest_in_creator7256);
classCreatorRest((t!=null?input.toString(t.start,t.stop):null));
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1534:9: t= createdName ( arrayCreatorRest | classCreatorRest[$t.text] )
{
pushFollow(FOLLOW_createdName_in_creator7269);
t=createdName();
state._fsp--;
if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1534:23: ( arrayCreatorRest | classCreatorRest[$t.text] )
int alt158=2;
int LA158_0 = input.LA(1);
if ( (LA158_0==57) ) {
alt158=1;
}
else if ( (LA158_0==34) ) {
alt158=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 158, 0, input);
throw nvae;
}
switch (alt158) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1534:24: arrayCreatorRest
{
pushFollow(FOLLOW_arrayCreatorRest_in_creator7272);
arrayCreatorRest();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1534:43: classCreatorRest[$t.text]
{
pushFollow(FOLLOW_classCreatorRest_in_creator7276);
classCreatorRest((t!=null?input.toString(t.start,t.stop):null));
state._fsp--;
if (state.failed) return;
}
break;
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 127, creator_StartIndex); }
}
}
// $ANTLR end "creator"
public static class createdName_return extends ParserRuleReturnScope {
};
// $ANTLR start "createdName"
// org/argouml/language/java/reveng/Java.g:1537:1: createdName : ( classOrInterfaceType | primitiveType );
public final JavaParser.createdName_return createdName() throws RecognitionException {
JavaParser.createdName_return retval = new JavaParser.createdName_return();
retval.start = input.LT(1);
int createdName_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 128) ) { return retval; }
// org/argouml/language/java/reveng/Java.g:1538:5: ( classOrInterfaceType | primitiveType )
int alt160=2;
int LA160_0 = input.LA(1);
if ( (LA160_0==Identifier) ) {
alt160=1;
}
else if ( (LA160_0==62||LA160_0==64||LA160_0==67||LA160_0==72||LA160_0==78||LA160_0==84||LA160_0==86||LA160_0==95) ) {
alt160=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 160, 0, input);
throw nvae;
}
switch (alt160) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1538:9: classOrInterfaceType
{
pushFollow(FOLLOW_classOrInterfaceType_in_createdName7297);
classOrInterfaceType();
state._fsp--;
if (state.failed) return retval;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1539:9: primitiveType
{
pushFollow(FOLLOW_primitiveType_in_createdName7307);
primitiveType();
state._fsp--;
if (state.failed) return retval;
}
break;
}
retval.stop = input.LT(-1);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 128, createdName_StartIndex); }
}
return retval;
}
// $ANTLR end "createdName"
// $ANTLR start "innerCreator"
// org/argouml/language/java/reveng/Java.g:1542:1: innerCreator : ( nonWildcardTypeArguments )? t= Identifier classCreatorRest[$t.text] ;
public final void innerCreator() throws RecognitionException {
int innerCreator_StartIndex = input.index();
Token t=null;
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 129) ) { return; }
// org/argouml/language/java/reveng/Java.g:1543:5: ( ( nonWildcardTypeArguments )? t= Identifier classCreatorRest[$t.text] )
// org/argouml/language/java/reveng/Java.g:1543:9: ( nonWildcardTypeArguments )? t= Identifier classCreatorRest[$t.text]
{
// org/argouml/language/java/reveng/Java.g:1543:9: ( nonWildcardTypeArguments )?
int alt161=2;
int LA161_0 = input.LA(1);
if ( (LA161_0==51) ) {
alt161=1;
}
switch (alt161) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1543:10: nonWildcardTypeArguments
{
pushFollow(FOLLOW_nonWildcardTypeArguments_in_innerCreator7331);
nonWildcardTypeArguments();
state._fsp--;
if (state.failed) return;
}
break;
}
t=(Token)match(input,Identifier,FOLLOW_Identifier_in_innerCreator7337); if (state.failed) return;
pushFollow(FOLLOW_classCreatorRest_in_innerCreator7339);
classCreatorRest((t!=null?t.getText():null));
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 129, innerCreator_StartIndex); }
}
}
// $ANTLR end "innerCreator"
// $ANTLR start "arrayCreatorRest"
// org/argouml/language/java/reveng/Java.g:1546:1: arrayCreatorRest : '[' ( ']' ( '[' ']' )* arrayInitializer | expression ']' ( '[' expression ']' )* ( '[' ']' )* ) ;
public final void arrayCreatorRest() throws RecognitionException {
int arrayCreatorRest_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 130) ) { return; }
// org/argouml/language/java/reveng/Java.g:1547:5: ( '[' ( ']' ( '[' ']' )* arrayInitializer | expression ']' ( '[' expression ']' )* ( '[' ']' )* ) )
// org/argouml/language/java/reveng/Java.g:1547:9: '[' ( ']' ( '[' ']' )* arrayInitializer | expression ']' ( '[' expression ']' )* ( '[' ']' )* )
{
match(input,57,FOLLOW_57_in_arrayCreatorRest7359); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1548:9: ( ']' ( '[' ']' )* arrayInitializer | expression ']' ( '[' expression ']' )* ( '[' ']' )* )
int alt165=2;
int LA165_0 = input.LA(1);
if ( (LA165_0==58) ) {
alt165=1;
}
else if ( ((LA165_0 >= CharacterLiteral && LA165_0 <= DecimalLiteral)||LA165_0==FloatingPointLiteral||(LA165_0 >= HexLiteral && LA165_0 <= Identifier)||(LA165_0 >= OctalLiteral && LA165_0 <= StringLiteral)||LA165_0==27||LA165_0==34||(LA165_0 >= 38 && LA165_0 <= 39)||(LA165_0 >= 42 && LA165_0 <= 43)||LA165_0==62||LA165_0==64||LA165_0==67||LA165_0==72||LA165_0==75||LA165_0==78||LA165_0==84||LA165_0==86||(LA165_0 >= 88 && LA165_0 <= 89)||LA165_0==95||LA165_0==98||LA165_0==101||LA165_0==105||LA165_0==107||LA165_0==115) ) {
alt165=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 165, 0, input);
throw nvae;
}
switch (alt165) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1548:13: ']' ( '[' ']' )* arrayInitializer
{
match(input,58,FOLLOW_58_in_arrayCreatorRest7373); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1548:17: ( '[' ']' )*
loop162:
while (true) {
int alt162=2;
int LA162_0 = input.LA(1);
if ( (LA162_0==57) ) {
alt162=1;
}
switch (alt162) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1548:18: '[' ']'
{
match(input,57,FOLLOW_57_in_arrayCreatorRest7376); if (state.failed) return;
match(input,58,FOLLOW_58_in_arrayCreatorRest7378); if (state.failed) return;
}
break;
default :
break loop162;
}
}
pushFollow(FOLLOW_arrayInitializer_in_arrayCreatorRest7382);
arrayInitializer();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1549:13: expression ']' ( '[' expression ']' )* ( '[' ']' )*
{
pushFollow(FOLLOW_expression_in_arrayCreatorRest7396);
expression();
state._fsp--;
if (state.failed) return;
match(input,58,FOLLOW_58_in_arrayCreatorRest7398); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1549:28: ( '[' expression ']' )*
loop163:
while (true) {
int alt163=2;
int LA163_0 = input.LA(1);
if ( (LA163_0==57) ) {
switch ( input.LA(2) ) {
case 38:
{
int LA163_33 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case 42:
{
int LA163_34 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case 39:
{
int LA163_35 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case 43:
{
int LA163_36 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case 115:
{
int LA163_37 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case 27:
{
int LA163_38 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case 34:
{
int LA163_39 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case 101:
{
int LA163_40 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case 98:
{
int LA163_41 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case DecimalLiteral:
case HexLiteral:
case OctalLiteral:
{
int LA163_42 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case FloatingPointLiteral:
{
int LA163_43 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case CharacterLiteral:
{
int LA163_44 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case StringLiteral:
{
int LA163_45 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case 75:
case 105:
{
int LA163_46 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case 89:
{
int LA163_47 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case 88:
{
int LA163_48 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case Identifier:
{
int LA163_49 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case 62:
case 64:
case 67:
case 72:
case 78:
case 84:
case 86:
case 95:
{
int LA163_50 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
case 107:
{
int LA163_51 = input.LA(3);
if ( (synpred263_Java()) ) {
alt163=1;
}
}
break;
}
}
switch (alt163) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1549:29: '[' expression ']'
{
match(input,57,FOLLOW_57_in_arrayCreatorRest7401); if (state.failed) return;
pushFollow(FOLLOW_expression_in_arrayCreatorRest7403);
expression();
state._fsp--;
if (state.failed) return;
match(input,58,FOLLOW_58_in_arrayCreatorRest7405); if (state.failed) return;
}
break;
default :
break loop163;
}
}
// org/argouml/language/java/reveng/Java.g:1549:50: ( '[' ']' )*
loop164:
while (true) {
int alt164=2;
int LA164_0 = input.LA(1);
if ( (LA164_0==57) ) {
int LA164_2 = input.LA(2);
if ( (LA164_2==58) ) {
alt164=1;
}
}
switch (alt164) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1549:51: '[' ']'
{
match(input,57,FOLLOW_57_in_arrayCreatorRest7410); if (state.failed) return;
match(input,58,FOLLOW_58_in_arrayCreatorRest7412); if (state.failed) return;
}
break;
default :
break loop164;
}
}
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 130, arrayCreatorRest_StartIndex); }
}
}
// $ANTLR end "arrayCreatorRest"
// $ANTLR start "classCreatorRest"
// org/argouml/language/java/reveng/Java.g:1553:1: classCreatorRest[String t] : arguments ( classBody )? ;
public final void classCreatorRest(String t) throws RecognitionException {
int classCreatorRest_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 131) ) { return; }
// org/argouml/language/java/reveng/Java.g:1554:5: ( arguments ( classBody )? )
// org/argouml/language/java/reveng/Java.g:1554:9: arguments ( classBody )?
{
pushFollow(FOLLOW_arguments_in_classCreatorRest7444);
arguments();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) { if ((parserMode & MODE_REVENG_SEQUENCE) != 0) {
StringBuffer sb = new StringBuffer();
if (";".equals(input.LT(1).getText()) && createdObjectVarName != null) {
sb.append(createdObjectVarName).append('=');
}
sb.append("new ").append(t);
getModeller().addCall(sb.toString());
}
}
// org/argouml/language/java/reveng/Java.g:1564:9: ( classBody )?
int alt166=2;
int LA166_0 = input.LA(1);
if ( (LA166_0==110) ) {
alt166=1;
}
switch (alt166) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1565:13: classBody
{
if ( state.backtracking==0 ) {
getModeller().addAnonymousClass(t,
(parserMode == MODE_IMPORT_PASS2));
}
pushFollow(FOLLOW_classBody_in_classCreatorRest7492);
classBody();
state._fsp--;
if (state.failed) return;
if ( state.backtracking==0 ) {
getModeller().popClassifier();
}
}
break;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 131, classCreatorRest_StartIndex); }
}
}
// $ANTLR end "classCreatorRest"
// $ANTLR start "explicitGenericInvocation"
// org/argouml/language/java/reveng/Java.g:1576:1: explicitGenericInvocation : nonWildcardTypeArguments Identifier arguments ;
public final void explicitGenericInvocation() throws RecognitionException {
int explicitGenericInvocation_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 132) ) { return; }
// org/argouml/language/java/reveng/Java.g:1577:5: ( nonWildcardTypeArguments Identifier arguments )
// org/argouml/language/java/reveng/Java.g:1577:9: nonWildcardTypeArguments Identifier arguments
{
pushFollow(FOLLOW_nonWildcardTypeArguments_in_explicitGenericInvocation7540);
nonWildcardTypeArguments();
state._fsp--;
if (state.failed) return;
match(input,Identifier,FOLLOW_Identifier_in_explicitGenericInvocation7542); if (state.failed) return;
pushFollow(FOLLOW_arguments_in_explicitGenericInvocation7544);
arguments();
state._fsp--;
if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 132, explicitGenericInvocation_StartIndex); }
}
}
// $ANTLR end "explicitGenericInvocation"
// $ANTLR start "nonWildcardTypeArguments"
// org/argouml/language/java/reveng/Java.g:1580:1: nonWildcardTypeArguments : '<' typeList '>' ;
public final void nonWildcardTypeArguments() throws RecognitionException {
int nonWildcardTypeArguments_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 133) ) { return; }
// org/argouml/language/java/reveng/Java.g:1581:5: ( '<' typeList '>' )
// org/argouml/language/java/reveng/Java.g:1581:9: '<' typeList '>'
{
match(input,51,FOLLOW_51_in_nonWildcardTypeArguments7567); if (state.failed) return;
pushFollow(FOLLOW_typeList_in_nonWildcardTypeArguments7569);
typeList();
state._fsp--;
if (state.failed) return;
match(input,54,FOLLOW_54_in_nonWildcardTypeArguments7571); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 133, nonWildcardTypeArguments_StartIndex); }
}
}
// $ANTLR end "nonWildcardTypeArguments"
// $ANTLR start "selector"
// org/argouml/language/java/reveng/Java.g:1584:1: selector : ( '.' Identifier ( arguments )? | '.' 'this' | '.' 'super' superSuffix | '.' 'new' innerCreator | '[' expression ']' );
public final void selector() throws RecognitionException {
int selector_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 134) ) { return; }
// org/argouml/language/java/reveng/Java.g:1585:5: ( '.' Identifier ( arguments )? | '.' 'this' | '.' 'super' superSuffix | '.' 'new' innerCreator | '[' expression ']' )
int alt168=5;
int LA168_0 = input.LA(1);
if ( (LA168_0==45) ) {
switch ( input.LA(2) ) {
case Identifier:
{
alt168=1;
}
break;
case 101:
{
alt168=2;
}
break;
case 98:
{
alt168=3;
}
break;
case 88:
{
alt168=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return;}
int nvaeMark = input.mark();
try {
input.consume();
NoViableAltException nvae =
new NoViableAltException("", 168, 1, input);
throw nvae;
} finally {
input.rewind(nvaeMark);
}
}
}
else if ( (LA168_0==57) ) {
alt168=5;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 168, 0, input);
throw nvae;
}
switch (alt168) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1585:9: '.' Identifier ( arguments )?
{
match(input,45,FOLLOW_45_in_selector7594); if (state.failed) return;
match(input,Identifier,FOLLOW_Identifier_in_selector7596); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1585:24: ( arguments )?
int alt167=2;
int LA167_0 = input.LA(1);
if ( (LA167_0==34) ) {
alt167=1;
}
switch (alt167) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1585:25: arguments
{
pushFollow(FOLLOW_arguments_in_selector7599);
arguments();
state._fsp--;
if (state.failed) return;
}
break;
}
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1586:9: '.' 'this'
{
match(input,45,FOLLOW_45_in_selector7611); if (state.failed) return;
match(input,101,FOLLOW_101_in_selector7613); if (state.failed) return;
}
break;
case 3 :
// org/argouml/language/java/reveng/Java.g:1587:9: '.' 'super' superSuffix
{
match(input,45,FOLLOW_45_in_selector7623); if (state.failed) return;
match(input,98,FOLLOW_98_in_selector7625); if (state.failed) return;
pushFollow(FOLLOW_superSuffix_in_selector7627);
superSuffix();
state._fsp--;
if (state.failed) return;
}
break;
case 4 :
// org/argouml/language/java/reveng/Java.g:1588:9: '.' 'new' innerCreator
{
match(input,45,FOLLOW_45_in_selector7637); if (state.failed) return;
match(input,88,FOLLOW_88_in_selector7639); if (state.failed) return;
pushFollow(FOLLOW_innerCreator_in_selector7641);
innerCreator();
state._fsp--;
if (state.failed) return;
}
break;
case 5 :
// org/argouml/language/java/reveng/Java.g:1589:9: '[' expression ']'
{
match(input,57,FOLLOW_57_in_selector7651); if (state.failed) return;
pushFollow(FOLLOW_expression_in_selector7653);
expression();
state._fsp--;
if (state.failed) return;
match(input,58,FOLLOW_58_in_selector7655); if (state.failed) return;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 134, selector_StartIndex); }
}
}
// $ANTLR end "selector"
// $ANTLR start "superSuffix"
// org/argouml/language/java/reveng/Java.g:1592:1: superSuffix : ( arguments | '.' Identifier ( arguments )? );
public final void superSuffix() throws RecognitionException {
int superSuffix_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 135) ) { return; }
// org/argouml/language/java/reveng/Java.g:1593:5: ( arguments | '.' Identifier ( arguments )? )
int alt170=2;
int LA170_0 = input.LA(1);
if ( (LA170_0==34) ) {
alt170=1;
}
else if ( (LA170_0==45) ) {
alt170=2;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
NoViableAltException nvae =
new NoViableAltException("", 170, 0, input);
throw nvae;
}
switch (alt170) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1593:9: arguments
{
pushFollow(FOLLOW_arguments_in_superSuffix7678);
arguments();
state._fsp--;
if (state.failed) return;
}
break;
case 2 :
// org/argouml/language/java/reveng/Java.g:1594:9: '.' Identifier ( arguments )?
{
match(input,45,FOLLOW_45_in_superSuffix7688); if (state.failed) return;
match(input,Identifier,FOLLOW_Identifier_in_superSuffix7690); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1594:24: ( arguments )?
int alt169=2;
int LA169_0 = input.LA(1);
if ( (LA169_0==34) ) {
alt169=1;
}
switch (alt169) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1594:25: arguments
{
pushFollow(FOLLOW_arguments_in_superSuffix7693);
arguments();
state._fsp--;
if (state.failed) return;
}
break;
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 135, superSuffix_StartIndex); }
}
}
// $ANTLR end "superSuffix"
// $ANTLR start "arguments"
// org/argouml/language/java/reveng/Java.g:1597:1: arguments : '(' ( expressionList )? ')' ;
public final void arguments() throws RecognitionException {
int arguments_StartIndex = input.index();
try {
if ( state.backtracking>0 && alreadyParsedRule(input, 136) ) { return; }
// org/argouml/language/java/reveng/Java.g:1598:5: ( '(' ( expressionList )? ')' )
// org/argouml/language/java/reveng/Java.g:1598:9: '(' ( expressionList )? ')'
{
match(input,34,FOLLOW_34_in_arguments7714); if (state.failed) return;
// org/argouml/language/java/reveng/Java.g:1598:13: ( expressionList )?
int alt171=2;
int LA171_0 = input.LA(1);
if ( ((LA171_0 >= CharacterLiteral && LA171_0 <= DecimalLiteral)||LA171_0==FloatingPointLiteral||(LA171_0 >= HexLiteral && LA171_0 <= Identifier)||(LA171_0 >= OctalLiteral && LA171_0 <= StringLiteral)||LA171_0==27||LA171_0==34||(LA171_0 >= 38 && LA171_0 <= 39)||(LA171_0 >= 42 && LA171_0 <= 43)||LA171_0==62||LA171_0==64||LA171_0==67||LA171_0==72||LA171_0==75||LA171_0==78||LA171_0==84||LA171_0==86||(LA171_0 >= 88 && LA171_0 <= 89)||LA171_0==95||LA171_0==98||LA171_0==101||LA171_0==105||LA171_0==107||LA171_0==115) ) {
alt171=1;
}
switch (alt171) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1598:13: expressionList
{
pushFollow(FOLLOW_expressionList_in_arguments7716);
expressionList();
state._fsp--;
if (state.failed) return;
}
break;
}
match(input,35,FOLLOW_35_in_arguments7719); if (state.failed) return;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
// do for sure before leaving
if ( state.backtracking>0 ) { memoize(input, 136, arguments_StartIndex); }
}
}
// $ANTLR end "arguments"
// $ANTLR start synpred1_Java
public final void synpred1_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:433:9: ( '@' )
// org/argouml/language/java/reveng/Java.g:433:10: '@'
{
match(input,56,FOLLOW_56_in_synpred1_Java108); if (state.failed) return;
}
}
// $ANTLR end synpred1_Java
// $ANTLR start synpred114_Java
public final void synpred114_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1096:13: ( explicitConstructorInvocation )
// org/argouml/language/java/reveng/Java.g:1096:13: explicitConstructorInvocation
{
pushFollow(FOLLOW_explicitConstructorInvocation_in_synpred114_Java4163);
explicitConstructorInvocation();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred114_Java
// $ANTLR start synpred118_Java
public final void synpred118_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1111:9: ( ( nonWildcardTypeArguments )? ( 'this' | 'super' ) arguments ';' )
// org/argouml/language/java/reveng/Java.g:1111:9: ( nonWildcardTypeArguments )? ( 'this' | 'super' ) arguments ';'
{
// org/argouml/language/java/reveng/Java.g:1111:9: ( nonWildcardTypeArguments )?
int alt181=2;
int LA181_0 = input.LA(1);
if ( (LA181_0==51) ) {
alt181=1;
}
switch (alt181) {
case 1 :
// org/argouml/language/java/reveng/Java.g:1111:10: nonWildcardTypeArguments
{
pushFollow(FOLLOW_nonWildcardTypeArguments_in_synpred118_Java4199);
nonWildcardTypeArguments();
state._fsp--;
if (state.failed) return;
}
break;
}
if ( input.LA(1)==98||input.LA(1)==101 ) {
input.consume();
state.errorRecovery=false;
state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_arguments_in_synpred118_Java4211);
arguments();
state._fsp--;
if (state.failed) return;
match(input,50,FOLLOW_50_in_synpred118_Java4213); if (state.failed) return;
}
}
// $ANTLR end synpred118_Java
// $ANTLR start synpred129_Java
public final void synpred129_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1143:9: ( annotation )
// org/argouml/language/java/reveng/Java.g:1143:9: annotation
{
pushFollow(FOLLOW_annotation_in_synpred129_Java4424);
annotation();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred129_Java
// $ANTLR start synpred152_Java
public final void synpred152_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1248:9: ( localVariableDeclarationStatement )
// org/argouml/language/java/reveng/Java.g:1248:9: localVariableDeclarationStatement
{
pushFollow(FOLLOW_localVariableDeclarationStatement_in_synpred152_Java5018);
localVariableDeclarationStatement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred152_Java
// $ANTLR start synpred153_Java
public final void synpred153_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1249:9: ( classOrInterfaceDeclaration )
// org/argouml/language/java/reveng/Java.g:1249:9: classOrInterfaceDeclaration
{
pushFollow(FOLLOW_classOrInterfaceDeclaration_in_synpred153_Java5028);
classOrInterfaceDeclaration();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred153_Java
// $ANTLR start synpred158_Java
public final void synpred158_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1276:54: ( 'else' statement )
// org/argouml/language/java/reveng/Java.g:1276:54: 'else' statement
{
match(input,73,FOLLOW_73_in_synpred158_Java5199); if (state.failed) return;
pushFollow(FOLLOW_statement_in_synpred158_Java5201);
statement();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred158_Java
// $ANTLR start synpred163_Java
public final void synpred163_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1281:11: ( catches 'finally' block )
// org/argouml/language/java/reveng/Java.g:1281:11: catches 'finally' block
{
pushFollow(FOLLOW_catches_in_synpred163_Java5277);
catches();
state._fsp--;
if (state.failed) return;
match(input,77,FOLLOW_77_in_synpred163_Java5279); if (state.failed) return;
pushFollow(FOLLOW_block_in_synpred163_Java5281);
block();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred163_Java
// $ANTLR start synpred164_Java
public final void synpred164_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1282:11: ( catches )
// org/argouml/language/java/reveng/Java.g:1282:11: catches
{
pushFollow(FOLLOW_catches_in_synpred164_Java5293);
catches();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred164_Java
// $ANTLR start synpred179_Java
public final void synpred179_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1317:9: ( switchLabel )
// org/argouml/language/java/reveng/Java.g:1317:9: switchLabel
{
pushFollow(FOLLOW_switchLabel_in_synpred179_Java5584);
switchLabel();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred179_Java
// $ANTLR start synpred181_Java
public final void synpred181_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1321:9: ( 'case' constantExpression ':' )
// org/argouml/language/java/reveng/Java.g:1321:9: 'case' constantExpression ':'
{
match(input,65,FOLLOW_65_in_synpred181_Java5611); if (state.failed) return;
pushFollow(FOLLOW_constantExpression_in_synpred181_Java5613);
constantExpression();
state._fsp--;
if (state.failed) return;
match(input,49,FOLLOW_49_in_synpred181_Java5615); if (state.failed) return;
}
}
// $ANTLR end synpred181_Java
// $ANTLR start synpred182_Java
public final void synpred182_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1322:9: ( 'case' enumConstantName ':' )
// org/argouml/language/java/reveng/Java.g:1322:9: 'case' enumConstantName ':'
{
match(input,65,FOLLOW_65_in_synpred182_Java5625); if (state.failed) return;
pushFollow(FOLLOW_enumConstantName_in_synpred182_Java5627);
enumConstantName();
state._fsp--;
if (state.failed) return;
match(input,49,FOLLOW_49_in_synpred182_Java5629); if (state.failed) return;
}
}
// $ANTLR end synpred182_Java
// $ANTLR start synpred183_Java
public final void synpred183_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1328:9: ( enhancedForControl )
// org/argouml/language/java/reveng/Java.g:1328:9: enhancedForControl
{
pushFollow(FOLLOW_enhancedForControl_in_synpred183_Java5672);
enhancedForControl();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred183_Java
// $ANTLR start synpred187_Java
public final void synpred187_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1333:9: ( localVariableDeclaration )
// org/argouml/language/java/reveng/Java.g:1333:9: localVariableDeclaration
{
pushFollow(FOLLOW_localVariableDeclaration_in_synpred187_Java5712);
localVariableDeclaration();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred187_Java
// $ANTLR start synpred189_Java
public final void synpred189_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1365:32: ( assignmentOperator expression )
// org/argouml/language/java/reveng/Java.g:1365:32: assignmentOperator expression
{
pushFollow(FOLLOW_assignmentOperator_in_synpred189_Java5904);
assignmentOperator();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_expression_in_synpred189_Java5906);
expression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred189_Java
// $ANTLR start synpred199_Java
public final void synpred199_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1378:9: ( '<' '<' '=' )
// org/argouml/language/java/reveng/Java.g:1378:10: '<' '<' '='
{
match(input,51,FOLLOW_51_in_synpred199_Java6022); if (state.failed) return;
match(input,51,FOLLOW_51_in_synpred199_Java6024); if (state.failed) return;
match(input,52,FOLLOW_52_in_synpred199_Java6026); if (state.failed) return;
}
}
// $ANTLR end synpred199_Java
// $ANTLR start synpred200_Java
public final void synpred200_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1383:9: ( '>' '>' '>' '=' )
// org/argouml/language/java/reveng/Java.g:1383:10: '>' '>' '>' '='
{
match(input,54,FOLLOW_54_in_synpred200_Java6062); if (state.failed) return;
match(input,54,FOLLOW_54_in_synpred200_Java6064); if (state.failed) return;
match(input,54,FOLLOW_54_in_synpred200_Java6066); if (state.failed) return;
match(input,52,FOLLOW_52_in_synpred200_Java6068); if (state.failed) return;
}
}
// $ANTLR end synpred200_Java
// $ANTLR start synpred201_Java
public final void synpred201_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1390:9: ( '>' '>' '=' )
// org/argouml/language/java/reveng/Java.g:1390:10: '>' '>' '='
{
match(input,54,FOLLOW_54_in_synpred201_Java6107); if (state.failed) return;
match(input,54,FOLLOW_54_in_synpred201_Java6109); if (state.failed) return;
match(input,52,FOLLOW_52_in_synpred201_Java6111); if (state.failed) return;
}
}
// $ANTLR end synpred201_Java
// $ANTLR start synpred212_Java
public final void synpred212_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1434:9: ( '<' '=' )
// org/argouml/language/java/reveng/Java.g:1434:10: '<' '='
{
match(input,51,FOLLOW_51_in_synpred212_Java6419); if (state.failed) return;
match(input,52,FOLLOW_52_in_synpred212_Java6421); if (state.failed) return;
}
}
// $ANTLR end synpred212_Java
// $ANTLR start synpred213_Java
public final void synpred213_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1437:9: ( '>' '=' )
// org/argouml/language/java/reveng/Java.g:1437:10: '>' '='
{
match(input,54,FOLLOW_54_in_synpred213_Java6453); if (state.failed) return;
match(input,52,FOLLOW_52_in_synpred213_Java6455); if (state.failed) return;
}
}
// $ANTLR end synpred213_Java
// $ANTLR start synpred215_Java
public final void synpred215_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1445:30: ( shiftOp additiveExpression )
// org/argouml/language/java/reveng/Java.g:1445:30: shiftOp additiveExpression
{
pushFollow(FOLLOW_shiftOp_in_synpred215_Java6521);
shiftOp();
state._fsp--;
if (state.failed) return;
pushFollow(FOLLOW_additiveExpression_in_synpred215_Java6523);
additiveExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred215_Java
// $ANTLR start synpred216_Java
public final void synpred216_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1449:9: ( '<' '<' )
// org/argouml/language/java/reveng/Java.g:1449:10: '<' '<'
{
match(input,51,FOLLOW_51_in_synpred216_Java6546); if (state.failed) return;
match(input,51,FOLLOW_51_in_synpred216_Java6548); if (state.failed) return;
}
}
// $ANTLR end synpred216_Java
// $ANTLR start synpred217_Java
public final void synpred217_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1452:9: ( '>' '>' '>' )
// org/argouml/language/java/reveng/Java.g:1452:10: '>' '>' '>'
{
match(input,54,FOLLOW_54_in_synpred217_Java6580); if (state.failed) return;
match(input,54,FOLLOW_54_in_synpred217_Java6582); if (state.failed) return;
match(input,54,FOLLOW_54_in_synpred217_Java6584); if (state.failed) return;
}
}
// $ANTLR end synpred217_Java
// $ANTLR start synpred218_Java
public final void synpred218_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1457:9: ( '>' '>' )
// org/argouml/language/java/reveng/Java.g:1457:10: '>' '>'
{
match(input,54,FOLLOW_54_in_synpred218_Java6620); if (state.failed) return;
match(input,54,FOLLOW_54_in_synpred218_Java6622); if (state.failed) return;
}
}
// $ANTLR end synpred218_Java
// $ANTLR start synpred230_Java
public final void synpred230_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1482:9: ( castExpression )
// org/argouml/language/java/reveng/Java.g:1482:9: castExpression
{
pushFollow(FOLLOW_castExpression_in_synpred230_Java6831);
castExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred230_Java
// $ANTLR start synpred234_Java
public final void synpred234_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1487:8: ( '(' primitiveType ')' unaryExpression )
// org/argouml/language/java/reveng/Java.g:1487:8: '(' primitiveType ')' unaryExpression
{
match(input,34,FOLLOW_34_in_synpred234_Java6869); if (state.failed) return;
pushFollow(FOLLOW_primitiveType_in_synpred234_Java6871);
primitiveType();
state._fsp--;
if (state.failed) return;
match(input,35,FOLLOW_35_in_synpred234_Java6873); if (state.failed) return;
pushFollow(FOLLOW_unaryExpression_in_synpred234_Java6875);
unaryExpression();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred234_Java
// $ANTLR start synpred235_Java
public final void synpred235_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1488:13: ( type )
// org/argouml/language/java/reveng/Java.g:1488:13: type
{
pushFollow(FOLLOW_type_in_synpred235_Java6887);
type();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred235_Java
// $ANTLR start synpred237_Java
public final void synpred237_Java_fragment() throws RecognitionException {
Token id=null;
// org/argouml/language/java/reveng/Java.g:1497:17: ( '.' id= Identifier )
// org/argouml/language/java/reveng/Java.g:1497:17: '.' id= Identifier
{
match(input,45,FOLLOW_45_in_synpred237_Java6936); if (state.failed) return;
id=(Token)match(input,Identifier,FOLLOW_Identifier_in_synpred237_Java6940); if (state.failed) return;
}
}
// $ANTLR end synpred237_Java
// $ANTLR start synpred238_Java
public final void synpred238_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1498:10: ( identifierSuffix )
// org/argouml/language/java/reveng/Java.g:1498:10: identifierSuffix
{
pushFollow(FOLLOW_identifierSuffix_in_synpred238_Java6956);
identifierSuffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred238_Java
// $ANTLR start synpred243_Java
public final void synpred243_Java_fragment() throws RecognitionException {
Token id=null;
// org/argouml/language/java/reveng/Java.g:1511:10: ( '.' id= Identifier )
// org/argouml/language/java/reveng/Java.g:1511:10: '.' id= Identifier
{
match(input,45,FOLLOW_45_in_synpred243_Java7041); if (state.failed) return;
id=(Token)match(input,Identifier,FOLLOW_Identifier_in_synpred243_Java7045); if (state.failed) return;
}
}
// $ANTLR end synpred243_Java
// $ANTLR start synpred244_Java
public final void synpred244_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1512:10: ( identifierSuffix )
// org/argouml/language/java/reveng/Java.g:1512:10: identifierSuffix
{
pushFollow(FOLLOW_identifierSuffix_in_synpred244_Java7061);
identifierSuffix();
state._fsp--;
if (state.failed) return;
}
}
// $ANTLR end synpred244_Java
// $ANTLR start synpred250_Java
public final void synpred250_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1523:10: ( '[' expression ']' )
// org/argouml/language/java/reveng/Java.g:1523:10: '[' expression ']'
{
match(input,57,FOLLOW_57_in_synpred250_Java7150); if (state.failed) return;
pushFollow(FOLLOW_expression_in_synpred250_Java7152);
expression();
state._fsp--;
if (state.failed) return;
match(input,58,FOLLOW_58_in_synpred250_Java7154); if (state.failed) return;
}
}
// $ANTLR end synpred250_Java
// $ANTLR start synpred263_Java
public final void synpred263_Java_fragment() throws RecognitionException {
// org/argouml/language/java/reveng/Java.g:1549:29: ( '[' expression ']' )
// org/argouml/language/java/reveng/Java.g:1549:29: '[' expression ']'
{
match(input,57,FOLLOW_57_in_synpred263_Java7401); if (state.failed) return;
pushFollow(FOLLOW_expression_in_synpred263_Java7403);
expression();
state._fsp--;
if (state.failed) return;
match(input,58,FOLLOW_58_in_synpred263_Java7405); if (state.failed) return;
}
}
// $ANTLR end synpred263_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 synpred153_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred153_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 synpred181_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred181_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 synpred217_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred217_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 synpred183_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred183_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 synpred114_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred114_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 synpred230_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred230_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 synpred158_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred158_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 synpred213_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred213_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 synpred216_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred216_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 synpred189_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred189_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 synpred163_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred163_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 synpred201_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred201_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 synpred182_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred182_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 synpred212_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred212_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 synpred215_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred215_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 synpred235_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred235_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 synpred199_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred199_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 synpred238_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred238_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 synpred237_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred237_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 synpred129_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred129_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 synpred200_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred200_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 synpred118_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred118_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 synpred179_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred179_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 synpred234_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred234_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 synpred187_Java() {
state.backtracking++;
int start = input.mark();
try {
synpred187_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;
}
protected DFA82 dfa82 = new DFA82(this);
protected DFA107 dfa107 = new DFA107(this);
protected DFA115 dfa115 = new DFA115(this);
protected DFA118 dfa118 = new DFA118(this);
protected DFA124 dfa124 = new DFA124(this);
protected DFA127 dfa127 = new DFA127(this);
protected DFA137 dfa137 = new DFA137(this);
protected DFA139 dfa139 = new DFA139(this);
static final String DFA82_eotS =
"\u0117\uffff";
static final String DFA82_eofS =
"\u0117\uffff";
static final String DFA82_minS =
"\1\4\1\uffff\1\34\1\6\1\42\6\34\3\20\1\55\40\uffff\3\0\27\uffff\26\0\30"+
"\uffff\1\0\30\uffff\1\0\30\uffff\1\0\30\uffff\1\0\30\uffff\1\0\30\uffff"+
"\3\0\1\uffff\3\0\30\uffff\2\0\1\uffff\1\0";
static final String DFA82_maxS =
"\1\163\1\uffff\1\161\1\163\1\55\6\161\1\137\1\161\1\71\1\55\40\uffff\3"+
"\0\27\uffff\26\0\30\uffff\1\0\30\uffff\1\0\30\uffff\1\0\30\uffff\1\0\30"+
"\uffff\1\0\30\uffff\3\0\1\uffff\3\0\30\uffff\2\0\1\uffff\1\0";
static final String DFA82_acceptS =
"\1\uffff\1\1\15\uffff\1\2\u0107\uffff";
static final String DFA82_specialS =
"\57\uffff\1\0\1\1\1\2\27\uffff\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13"+
"\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\30\uffff"+
"\1\31\30\uffff\1\32\30\uffff\1\33\30\uffff\1\34\30\uffff\1\35\30\uffff"+
"\1\36\1\37\1\40\1\uffff\1\41\1\42\1\43\30\uffff\1\44\1\45\1\uffff\1\46}>";
static final String[] DFA82_transitionS = {
"\1\17\1\uffff\1\7\1\5\1\uffff\1\17\3\uffff\1\6\1\uffff\1\5\1\14\6\uffff"+
"\1\5\1\10\2\uffff\1\17\6\uffff\1\3\3\uffff\2\17\2\uffff\2\17\6\uffff"+
"\1\17\1\1\4\uffff\1\17\4\uffff\1\17\1\15\1\17\1\15\2\uffff\1\15\2\17"+
"\1\uffff\1\17\1\15\2\uffff\1\11\1\17\1\uffff\1\15\2\17\3\uffff\1\15\1"+
"\17\1\15\1\uffff\1\13\1\12\1\uffff\4\17\1\15\2\17\1\4\2\17\1\2\1\17\2"+
"\uffff\1\11\1\17\1\16\1\uffff\2\17\3\uffff\2\17",
"",
"\6\17\1\57\1\uffff\5\17\1\uffff\3\17\1\60\1\uffff\2\17\1\uffff\6\17"+
"\1\uffff\1\61\1\uffff\2\17\26\uffff\1\17\33\uffff\3\17",
"\1\124\1\122\5\uffff\1\123\1\uffff\1\122\1\131\6\uffff\1\122\1\125\2"+
"\uffff\1\116\6\uffff\1\117\3\uffff\1\111\1\113\2\uffff\1\112\1\114\22"+
"\uffff\1\132\1\uffff\1\132\2\uffff\1\132\4\uffff\1\132\2\uffff\1\126"+
"\2\uffff\1\132\5\uffff\1\132\1\uffff\1\132\1\uffff\1\130\1\127\5\uffff"+
"\1\132\2\uffff\1\121\2\uffff\1\120\3\uffff\1\126\1\uffff\1\133\7\uffff"+
"\1\115",
"\1\134\12\uffff\1\135",
"\6\17\2\uffff\5\17\1\uffff\3\17\1\136\1\uffff\2\17\1\uffff\6\17\1\uffff"+
"\1\17\1\uffff\2\17\26\uffff\1\17\33\uffff\3\17",
"\6\17\2\uffff\5\17\1\uffff\3\17\1\167\1\uffff\2\17\1\uffff\6\17\1\uffff"+
"\1\17\1\uffff\2\17\26\uffff\1\17\33\uffff\3\17",
"\6\17\2\uffff\5\17\1\uffff\3\17\1\u0090\1\uffff\2\17\1\uffff\6\17\1"+
"\uffff\1\17\1\uffff\2\17\26\uffff\1\17\33\uffff\3\17",
"\6\17\2\uffff\5\17\1\uffff\3\17\1\u00a9\1\uffff\2\17\1\uffff\6\17\1"+
"\uffff\1\17\1\uffff\2\17\26\uffff\1\17\33\uffff\3\17",
"\6\17\2\uffff\5\17\1\uffff\3\17\1\u00c2\1\uffff\2\17\1\uffff\6\17\1"+
"\uffff\1\17\1\uffff\2\17\26\uffff\1\17\33\uffff\3\17",
"\6\17\2\uffff\5\17\1\uffff\3\17\1\u00db\1\uffff\2\17\1\uffff\6\17\1"+
"\uffff\1\17\1\uffff\2\17\26\uffff\1\17\33\uffff\3\17",
"\1\u00f5\42\uffff\1\u00f4\12\uffff\1\u00f6\1\uffff\1\u00f6\2\uffff\1"+
"\u00f6\4\uffff\1\u00f6\5\uffff\1\u00f6\5\uffff\1\u00f6\1\uffff\1\u00f6"+
"\10\uffff\1\u00f6",
"\1\17\13\uffff\6\17\1\u00fa\1\uffff\5\17\1\uffff\3\17\1\u00f8\1\uffff"+
"\11\17\1\uffff\1\u00f9\1\uffff\2\17\26\uffff\1\17\33\uffff\3\17",
"\1\17\34\uffff\1\u0114\13\uffff\1\u0113",
"\1\u0116",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"",
"\1\uffff"
};
static final short[] DFA82_eot = DFA.unpackEncodedString(DFA82_eotS);
static final short[] DFA82_eof = DFA.unpackEncodedString(DFA82_eofS);
static final char[] DFA82_min = DFA.unpackEncodedStringToUnsignedChars(DFA82_minS);
static final char[] DFA82_max = DFA.unpackEncodedStringToUnsignedChars(DFA82_maxS);
static final short[] DFA82_accept = DFA.unpackEncodedString(DFA82_acceptS);
static final short[] DFA82_special = DFA.unpackEncodedString(DFA82_specialS);
static final short[][] DFA82_transition;
static {
int numStates = DFA82_transitionS.length;
DFA82_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA82_transition[i] = DFA.unpackEncodedString(DFA82_transitionS[i]);
}
}
protected class DFA82 extends DFA {
public DFA82(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 82;
this.eot = DFA82_eot;
this.eof = DFA82_eof;
this.min = DFA82_min;
this.max = DFA82_max;
this.accept = DFA82_accept;
this.special = DFA82_special;
this.transition = DFA82_transition;
}
@Override
public String getDescription() {
return "1096:13: ( explicitConstructorInvocation )?";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA82_47 = input.LA(1);
int index82_47 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_47);
if ( s>=0 ) return s;
break;
case 1 :
int LA82_48 = input.LA(1);
int index82_48 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_48);
if ( s>=0 ) return s;
break;
case 2 :
int LA82_49 = input.LA(1);
int index82_49 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_49);
if ( s>=0 ) return s;
break;
case 3 :
int LA82_73 = input.LA(1);
int index82_73 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_73);
if ( s>=0 ) return s;
break;
case 4 :
int LA82_74 = input.LA(1);
int index82_74 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_74);
if ( s>=0 ) return s;
break;
case 5 :
int LA82_75 = input.LA(1);
int index82_75 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_75);
if ( s>=0 ) return s;
break;
case 6 :
int LA82_76 = input.LA(1);
int index82_76 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_76);
if ( s>=0 ) return s;
break;
case 7 :
int LA82_77 = input.LA(1);
int index82_77 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_77);
if ( s>=0 ) return s;
break;
case 8 :
int LA82_78 = input.LA(1);
int index82_78 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_78);
if ( s>=0 ) return s;
break;
case 9 :
int LA82_79 = input.LA(1);
int index82_79 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_79);
if ( s>=0 ) return s;
break;
case 10 :
int LA82_80 = input.LA(1);
int index82_80 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_80);
if ( s>=0 ) return s;
break;
case 11 :
int LA82_81 = input.LA(1);
int index82_81 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_81);
if ( s>=0 ) return s;
break;
case 12 :
int LA82_82 = input.LA(1);
int index82_82 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_82);
if ( s>=0 ) return s;
break;
case 13 :
int LA82_83 = input.LA(1);
int index82_83 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_83);
if ( s>=0 ) return s;
break;
case 14 :
int LA82_84 = input.LA(1);
int index82_84 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_84);
if ( s>=0 ) return s;
break;
case 15 :
int LA82_85 = input.LA(1);
int index82_85 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_85);
if ( s>=0 ) return s;
break;
case 16 :
int LA82_86 = input.LA(1);
int index82_86 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_86);
if ( s>=0 ) return s;
break;
case 17 :
int LA82_87 = input.LA(1);
int index82_87 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_87);
if ( s>=0 ) return s;
break;
case 18 :
int LA82_88 = input.LA(1);
int index82_88 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_88);
if ( s>=0 ) return s;
break;
case 19 :
int LA82_89 = input.LA(1);
int index82_89 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_89);
if ( s>=0 ) return s;
break;
case 20 :
int LA82_90 = input.LA(1);
int index82_90 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_90);
if ( s>=0 ) return s;
break;
case 21 :
int LA82_91 = input.LA(1);
int index82_91 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_91);
if ( s>=0 ) return s;
break;
case 22 :
int LA82_92 = input.LA(1);
int index82_92 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_92);
if ( s>=0 ) return s;
break;
case 23 :
int LA82_93 = input.LA(1);
int index82_93 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_93);
if ( s>=0 ) return s;
break;
case 24 :
int LA82_94 = input.LA(1);
int index82_94 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_94);
if ( s>=0 ) return s;
break;
case 25 :
int LA82_119 = input.LA(1);
int index82_119 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_119);
if ( s>=0 ) return s;
break;
case 26 :
int LA82_144 = input.LA(1);
int index82_144 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_144);
if ( s>=0 ) return s;
break;
case 27 :
int LA82_169 = input.LA(1);
int index82_169 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_169);
if ( s>=0 ) return s;
break;
case 28 :
int LA82_194 = input.LA(1);
int index82_194 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_194);
if ( s>=0 ) return s;
break;
case 29 :
int LA82_219 = input.LA(1);
int index82_219 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_219);
if ( s>=0 ) return s;
break;
case 30 :
int LA82_244 = input.LA(1);
int index82_244 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_244);
if ( s>=0 ) return s;
break;
case 31 :
int LA82_245 = input.LA(1);
int index82_245 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_245);
if ( s>=0 ) return s;
break;
case 32 :
int LA82_246 = input.LA(1);
int index82_246 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_246);
if ( s>=0 ) return s;
break;
case 33 :
int LA82_248 = input.LA(1);
int index82_248 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_248);
if ( s>=0 ) return s;
break;
case 34 :
int LA82_249 = input.LA(1);
int index82_249 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_249);
if ( s>=0 ) return s;
break;
case 35 :
int LA82_250 = input.LA(1);
int index82_250 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_250);
if ( s>=0 ) return s;
break;
case 36 :
int LA82_275 = input.LA(1);
int index82_275 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_275);
if ( s>=0 ) return s;
break;
case 37 :
int LA82_276 = input.LA(1);
int index82_276 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_276);
if ( s>=0 ) return s;
break;
case 38 :
int LA82_278 = input.LA(1);
int index82_278 = input.index();
input.rewind();
s = -1;
if ( (synpred114_Java()) ) {s = 1;}
else if ( (true) ) {s = 15;}
input.seek(index82_278);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 82, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA107_eotS =
"\133\uffff";
static final String DFA107_eofS =
"\133\uffff";
static final String DFA107_minS =
"\1\4\1\11\3\20\52\uffff\2\0\12\uffff\1\0\1\uffff\3\0\30\uffff\1\0\2\uffff";
static final String DFA107_maxS =
"\1\163\1\141\1\125\1\161\1\71\52\uffff\2\0\12\uffff\1\0\1\uffff\3\0\30"+
"\uffff\1\0\2\uffff";
static final String DFA107_acceptS =
"\5\uffff\1\2\10\uffff\1\3\36\uffff\1\1\55\uffff";
static final String DFA107_specialS =
"\57\uffff\1\0\1\1\12\uffff\1\2\1\uffff\1\3\1\4\1\5\30\uffff\1\6\2\uffff}>";
static final String[] DFA107_transitionS = {
"\1\16\1\uffff\2\16\1\uffff\1\5\3\uffff\1\16\1\uffff\1\16\1\3\6\uffff"+
"\2\16\2\uffff\1\16\6\uffff\1\16\3\uffff\2\16\2\uffff\2\16\6\uffff\1\16"+
"\5\uffff\1\2\4\uffff\1\5\1\4\1\16\1\4\2\uffff\1\4\1\5\1\16\1\uffff\1"+
"\16\1\4\2\uffff\1\16\1\1\1\uffff\1\4\2\16\3\uffff\1\4\1\5\1\4\1\uffff"+
"\2\16\1\uffff\3\5\1\16\1\4\2\5\5\16\2\uffff\3\16\1\uffff\2\16\4\uffff"+
"\1\16",
"\1\5\6\uffff\1\55\47\uffff\1\60\4\uffff\1\5\1\55\1\uffff\1\55\2\uffff"+
"\1\55\1\5\3\uffff\1\55\3\uffff\1\57\1\uffff\1\55\5\uffff\1\55\1\5\1\55"+
"\4\uffff\3\5\1\uffff\1\55\2\5",
"\1\73\104\uffff\1\5",
"\1\55\13\uffff\7\16\1\uffff\5\16\1\uffff\3\16\1\76\1\uffff\4\16\1\75"+
"\4\16\1\uffff\1\77\1\uffff\2\16\26\uffff\1\16\33\uffff\3\16",
"\1\55\34\uffff\1\16\13\uffff\1\130",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
""
};
static final short[] DFA107_eot = DFA.unpackEncodedString(DFA107_eotS);
static final short[] DFA107_eof = DFA.unpackEncodedString(DFA107_eofS);
static final char[] DFA107_min = DFA.unpackEncodedStringToUnsignedChars(DFA107_minS);
static final char[] DFA107_max = DFA.unpackEncodedStringToUnsignedChars(DFA107_maxS);
static final short[] DFA107_accept = DFA.unpackEncodedString(DFA107_acceptS);
static final short[] DFA107_special = DFA.unpackEncodedString(DFA107_specialS);
static final short[][] DFA107_transition;
static {
int numStates = DFA107_transitionS.length;
DFA107_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA107_transition[i] = DFA.unpackEncodedString(DFA107_transitionS[i]);
}
}
protected class DFA107 extends DFA {
public DFA107(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 107;
this.eot = DFA107_eot;
this.eof = DFA107_eof;
this.min = DFA107_min;
this.max = DFA107_max;
this.accept = DFA107_accept;
this.special = DFA107_special;
this.transition = DFA107_transition;
}
@Override
public String getDescription() {
return "1247:1: blockStatement : ( localVariableDeclarationStatement | classOrInterfaceDeclaration | statement );";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA107_47 = input.LA(1);
int index107_47 = input.index();
input.rewind();
s = -1;
if ( (synpred152_Java()) ) {s = 45;}
else if ( (synpred153_Java()) ) {s = 5;}
input.seek(index107_47);
if ( s>=0 ) return s;
break;
case 1 :
int LA107_48 = input.LA(1);
int index107_48 = input.index();
input.rewind();
s = -1;
if ( (synpred152_Java()) ) {s = 45;}
else if ( (synpred153_Java()) ) {s = 5;}
input.seek(index107_48);
if ( s>=0 ) return s;
break;
case 2 :
int LA107_59 = input.LA(1);
int index107_59 = input.index();
input.rewind();
s = -1;
if ( (synpred152_Java()) ) {s = 45;}
else if ( (synpred153_Java()) ) {s = 5;}
input.seek(index107_59);
if ( s>=0 ) return s;
break;
case 3 :
int LA107_61 = input.LA(1);
int index107_61 = input.index();
input.rewind();
s = -1;
if ( (synpred152_Java()) ) {s = 45;}
else if ( (true) ) {s = 14;}
input.seek(index107_61);
if ( s>=0 ) return s;
break;
case 4 :
int LA107_62 = input.LA(1);
int index107_62 = input.index();
input.rewind();
s = -1;
if ( (synpred152_Java()) ) {s = 45;}
else if ( (true) ) {s = 14;}
input.seek(index107_62);
if ( s>=0 ) return s;
break;
case 5 :
int LA107_63 = input.LA(1);
int index107_63 = input.index();
input.rewind();
s = -1;
if ( (synpred152_Java()) ) {s = 45;}
else if ( (true) ) {s = 14;}
input.seek(index107_63);
if ( s>=0 ) return s;
break;
case 6 :
int LA107_88 = input.LA(1);
int index107_88 = input.index();
input.rewind();
s = -1;
if ( (synpred152_Java()) ) {s = 45;}
else if ( (true) ) {s = 14;}
input.seek(index107_88);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 107, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA115_eotS =
"\75\uffff";
static final String DFA115_eofS =
"\75\uffff";
static final String DFA115_minS =
"\1\4\36\uffff\1\34\35\uffff";
static final String DFA115_maxS =
"\1\163\36\uffff\1\161\35\uffff";
static final String DFA115_acceptS =
"\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16"+
"\1\17\22\uffff\1\20\32\uffff";
static final String DFA115_specialS =
"\75\uffff}>";
static final String[] DFA115_transitionS = {
"\1\2\1\uffff\2\17\5\uffff\1\17\1\uffff\1\17\1\37\6\uffff\2\17\2\uffff"+
"\1\17\6\uffff\1\17\3\uffff\2\17\2\uffff\2\17\6\uffff\1\16\13\uffff\1"+
"\17\1\14\1\17\2\uffff\1\17\1\uffff\1\15\1\uffff\1\6\1\17\2\uffff\1\17"+
"\2\uffff\1\17\1\4\1\3\3\uffff\1\17\1\uffff\1\17\1\uffff\2\17\4\uffff"+
"\1\12\1\17\2\uffff\1\17\1\10\1\11\1\17\1\13\2\uffff\1\17\1\7\1\17\1\uffff"+
"\1\5\1\1\4\uffff\1\17",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\7\17\1\uffff\5\17\1\uffff\4\17\1\uffff\2\17\1\42\6\17\1\uffff\1\17"+
"\1\uffff\2\17\26\uffff\1\17\33\uffff\3\17",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA115_eot = DFA.unpackEncodedString(DFA115_eotS);
static final short[] DFA115_eof = DFA.unpackEncodedString(DFA115_eofS);
static final char[] DFA115_min = DFA.unpackEncodedStringToUnsignedChars(DFA115_minS);
static final char[] DFA115_max = DFA.unpackEncodedStringToUnsignedChars(DFA115_maxS);
static final short[] DFA115_accept = DFA.unpackEncodedString(DFA115_acceptS);
static final short[] DFA115_special = DFA.unpackEncodedString(DFA115_specialS);
static final short[][] DFA115_transition;
static {
int numStates = DFA115_transitionS.length;
DFA115_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA115_transition[i] = DFA.unpackEncodedString(DFA115_transitionS[i]);
}
}
protected class DFA115 extends DFA {
public DFA115(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 115;
this.eot = DFA115_eot;
this.eof = DFA115_eof;
this.min = DFA115_min;
this.max = DFA115_max;
this.accept = DFA115_accept;
this.special = DFA115_special;
this.transition = DFA115_transition;
}
@Override
public String getDescription() {
return "1273:1: statement : ( block | ASSERT expression ( ':' expression )? ';' | 'if' parExpression statement ( options {k=1; } : 'else' statement )? | 'for' '(' forControl ')' statement | 'while' parExpression statement | 'do' statement 'while' parExpression ';' | 'try' block ( catches 'finally' block | catches | 'finally' block ) | 'switch' parExpression '{' switchBlockStatementGroups '}' | 'synchronized' parExpression block | 'return' ( expression )? ';' | 'throw' expression ';' | 'break' ( Identifier )? ';' | 'continue' ( Identifier )? ';' | ';' | statementExpression ';' | Identifier ':' statement );";
}
}
static final String DFA118_eotS =
"\106\uffff";
static final String DFA118_eofS =
"\1\1\105\uffff";
static final String DFA118_minS =
"\1\4\55\uffff\2\0\26\uffff";
static final String DFA118_maxS =
"\1\163\55\uffff\2\0\26\uffff";
static final String DFA118_acceptS =
"\1\uffff\1\2\102\uffff\1\1\1\uffff";
static final String DFA118_specialS =
"\56\uffff\1\0\1\1\26\uffff}>";
static final String[] DFA118_transitionS = {
"\1\1\1\uffff\2\1\1\uffff\1\1\3\uffff\1\1\1\uffff\2\1\6\uffff\2\1\2\uffff"+
"\1\1\6\uffff\1\1\3\uffff\2\1\2\uffff\2\1\6\uffff\1\1\5\uffff\1\1\4\uffff"+
"\4\1\1\56\1\uffff\3\1\1\57\2\1\2\uffff\2\1\1\uffff\3\1\3\uffff\3\1\1"+
"\uffff\2\1\1\uffff\14\1\2\uffff\3\1\1\uffff\2\1\3\uffff\2\1",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA118_eot = DFA.unpackEncodedString(DFA118_eotS);
static final short[] DFA118_eof = DFA.unpackEncodedString(DFA118_eofS);
static final char[] DFA118_min = DFA.unpackEncodedStringToUnsignedChars(DFA118_minS);
static final char[] DFA118_max = DFA.unpackEncodedStringToUnsignedChars(DFA118_maxS);
static final short[] DFA118_accept = DFA.unpackEncodedString(DFA118_acceptS);
static final short[] DFA118_special = DFA.unpackEncodedString(DFA118_specialS);
static final short[][] DFA118_transition;
static {
int numStates = DFA118_transitionS.length;
DFA118_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA118_transition[i] = DFA.unpackEncodedString(DFA118_transitionS[i]);
}
}
protected class DFA118 extends DFA {
public DFA118(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 118;
this.eot = DFA118_eot;
this.eof = DFA118_eof;
this.min = DFA118_min;
this.max = DFA118_max;
this.accept = DFA118_accept;
this.special = DFA118_special;
this.transition = DFA118_transition;
}
@Override
public String getDescription() {
return "()+ loopback of 1317:9: ( switchLabel )+";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA118_46 = input.LA(1);
int index118_46 = input.index();
input.rewind();
s = -1;
if ( (synpred179_Java()) ) {s = 68;}
else if ( (true) ) {s = 1;}
input.seek(index118_46);
if ( s>=0 ) return s;
break;
case 1 :
int LA118_47 = input.LA(1);
int index118_47 = input.index();
input.rewind();
s = -1;
if ( (synpred179_Java()) ) {s = 68;}
else if ( (true) ) {s = 1;}
input.seek(index118_47);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 118, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA124_eotS =
"\u0087\uffff";
static final String DFA124_eofS =
"\u0087\uffff";
static final String DFA124_minS =
"\1\6\4\20\22\uffff\5\20\1\6\1\20\1\6\1\51\30\uffff\1\72\1\51\1\uffff\21"+
"\0\2\uffff\3\0\21\uffff\1\0\5\uffff\1\0\30\uffff\1\0\5\uffff";
static final String DFA124_maxS =
"\1\163\1\137\1\20\1\161\1\71\22\uffff\2\71\1\137\1\20\1\137\1\163\1\145"+
"\1\163\1\71\30\uffff\1\72\1\71\1\uffff\21\0\2\uffff\3\0\21\uffff\1\0\5"+
"\uffff\1\0\30\uffff\1\0\5\uffff";
static final String DFA124_acceptS =
"\5\uffff\1\2\166\uffff\1\1\12\uffff";
static final String DFA124_specialS =
"\73\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15"+
"\1\16\1\17\1\20\2\uffff\1\21\1\22\1\23\21\uffff\1\24\5\uffff\1\25\30\uffff"+
"\1\26\5\uffff}>";
static final String[] DFA124_transitionS = {
"\2\5\5\uffff\1\5\1\uffff\1\5\1\3\6\uffff\2\5\2\uffff\1\5\6\uffff\1\5"+
"\3\uffff\2\5\2\uffff\2\5\6\uffff\1\5\5\uffff\1\2\5\uffff\1\4\1\uffff"+
"\1\4\2\uffff\1\4\4\uffff\1\4\2\uffff\1\5\1\1\1\uffff\1\4\5\uffff\1\4"+
"\1\uffff\1\4\1\uffff\2\5\5\uffff\1\4\2\uffff\1\5\2\uffff\1\5\3\uffff"+
"\1\5\1\uffff\1\5\7\uffff\1\5",
"\1\27\47\uffff\1\32\5\uffff\1\30\1\uffff\1\30\2\uffff\1\30\4\uffff\1"+
"\30\3\uffff\1\31\1\uffff\1\30\5\uffff\1\30\1\uffff\1\30\10\uffff\1\30",
"\1\33",
"\1\37\13\uffff\7\5\1\uffff\11\5\1\35\1\uffff\2\5\1\uffff\1\5\1\34\4"+
"\5\1\uffff\1\36\1\uffff\2\5\26\uffff\1\5\33\uffff\3\5",
"\1\71\34\uffff\1\5\13\uffff\1\70",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\76\34\uffff\1\74\5\uffff\1\73\5\uffff\1\75",
"\1\100\50\uffff\1\77",
"\1\101\47\uffff\1\104\5\uffff\1\102\1\uffff\1\102\2\uffff\1\102\4\uffff"+
"\1\102\3\uffff\1\103\1\uffff\1\102\5\uffff\1\102\1\uffff\1\102\10\uffff"+
"\1\102",
"\1\105",
"\1\110\21\uffff\1\107\12\uffff\1\106\12\uffff\1\113\5\uffff\1\111\1"+
"\uffff\1\111\2\uffff\1\111\4\uffff\1\111\3\uffff\1\112\1\uffff\1\111"+
"\5\uffff\1\111\1\uffff\1\111\10\uffff\1\111",
"\2\5\5\uffff\1\5\1\uffff\1\5\1\116\6\uffff\2\5\2\uffff\1\5\6\uffff\1"+
"\5\3\uffff\2\5\2\uffff\2\5\7\uffff\2\5\2\uffff\1\120\6\uffff\1\117\1"+
"\uffff\1\117\2\uffff\1\117\4\uffff\1\117\2\uffff\1\5\2\uffff\1\117\5"+
"\uffff\1\117\1\uffff\1\117\1\uffff\2\5\5\uffff\1\117\2\uffff\1\5\2\uffff"+
"\1\5\3\uffff\1\5\1\uffff\1\5\7\uffff\1\5",
"\1\142\42\uffff\1\5\20\uffff\1\5\23\uffff\1\5\11\uffff\1\5\2\uffff\1"+
"\5",
"\2\5\5\uffff\1\5\1\uffff\2\5\6\uffff\2\5\2\uffff\1\5\6\uffff\1\5\3\uffff"+
"\2\5\2\uffff\2\5\16\uffff\1\150\3\uffff\1\5\1\uffff\1\5\2\uffff\1\5\4"+
"\uffff\1\5\2\uffff\1\5\2\uffff\1\5\5\uffff\1\5\1\uffff\1\5\1\uffff\2"+
"\5\5\uffff\1\5\2\uffff\1\5\2\uffff\1\5\3\uffff\1\5\1\uffff\1\5\7\uffff"+
"\1\5",
"\1\5\7\uffff\1\174\1\5\1\uffff\1\5\4\uffff\1\5",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\u0081",
"\1\5\7\uffff\1\174\1\5\1\uffff\1\5\4\uffff\1\5",
"",
"\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[] DFA124_eot = DFA.unpackEncodedString(DFA124_eotS);
static final short[] DFA124_eof = DFA.unpackEncodedString(DFA124_eofS);
static final char[] DFA124_min = DFA.unpackEncodedStringToUnsignedChars(DFA124_minS);
static final char[] DFA124_max = DFA.unpackEncodedStringToUnsignedChars(DFA124_maxS);
static final short[] DFA124_accept = DFA.unpackEncodedString(DFA124_acceptS);
static final short[] DFA124_special = DFA.unpackEncodedString(DFA124_specialS);
static final short[][] DFA124_transition;
static {
int numStates = DFA124_transitionS.length;
DFA124_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA124_transition[i] = DFA.unpackEncodedString(DFA124_transitionS[i]);
}
}
protected class DFA124 extends DFA {
public DFA124(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 124;
this.eot = DFA124_eot;
this.eof = DFA124_eof;
this.min = DFA124_min;
this.max = DFA124_max;
this.accept = DFA124_accept;
this.special = DFA124_special;
this.transition = DFA124_transition;
}
@Override
public String getDescription() {
return "1326:1: forControl options {k=3; } : ( enhancedForControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA124_59 = input.LA(1);
int index124_59 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_59);
if ( s>=0 ) return s;
break;
case 1 :
int LA124_60 = input.LA(1);
int index124_60 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_60);
if ( s>=0 ) return s;
break;
case 2 :
int LA124_61 = input.LA(1);
int index124_61 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_61);
if ( s>=0 ) return s;
break;
case 3 :
int LA124_62 = input.LA(1);
int index124_62 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_62);
if ( s>=0 ) return s;
break;
case 4 :
int LA124_63 = input.LA(1);
int index124_63 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_63);
if ( s>=0 ) return s;
break;
case 5 :
int LA124_64 = input.LA(1);
int index124_64 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_64);
if ( s>=0 ) return s;
break;
case 6 :
int LA124_65 = input.LA(1);
int index124_65 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_65);
if ( s>=0 ) return s;
break;
case 7 :
int LA124_66 = input.LA(1);
int index124_66 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_66);
if ( s>=0 ) return s;
break;
case 8 :
int LA124_67 = input.LA(1);
int index124_67 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_67);
if ( s>=0 ) return s;
break;
case 9 :
int LA124_68 = input.LA(1);
int index124_68 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_68);
if ( s>=0 ) return s;
break;
case 10 :
int LA124_69 = input.LA(1);
int index124_69 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_69);
if ( s>=0 ) return s;
break;
case 11 :
int LA124_70 = input.LA(1);
int index124_70 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_70);
if ( s>=0 ) return s;
break;
case 12 :
int LA124_71 = input.LA(1);
int index124_71 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_71);
if ( s>=0 ) return s;
break;
case 13 :
int LA124_72 = input.LA(1);
int index124_72 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_72);
if ( s>=0 ) return s;
break;
case 14 :
int LA124_73 = input.LA(1);
int index124_73 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_73);
if ( s>=0 ) return s;
break;
case 15 :
int LA124_74 = input.LA(1);
int index124_74 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_74);
if ( s>=0 ) return s;
break;
case 16 :
int LA124_75 = input.LA(1);
int index124_75 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_75);
if ( s>=0 ) return s;
break;
case 17 :
int LA124_78 = input.LA(1);
int index124_78 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_78);
if ( s>=0 ) return s;
break;
case 18 :
int LA124_79 = input.LA(1);
int index124_79 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_79);
if ( s>=0 ) return s;
break;
case 19 :
int LA124_80 = input.LA(1);
int index124_80 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_80);
if ( s>=0 ) return s;
break;
case 20 :
int LA124_98 = input.LA(1);
int index124_98 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_98);
if ( s>=0 ) return s;
break;
case 21 :
int LA124_104 = input.LA(1);
int index124_104 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_104);
if ( s>=0 ) return s;
break;
case 22 :
int LA124_129 = input.LA(1);
int index124_129 = input.index();
input.rewind();
s = -1;
if ( (synpred183_Java()) ) {s = 124;}
else if ( (true) ) {s = 5;}
input.seek(index124_129);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 124, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA127_eotS =
"\u00c1\uffff";
static final String DFA127_eofS =
"\1\14\u00c0\uffff";
static final String DFA127_minS =
"\1\36\13\0\u00b5\uffff";
static final String DFA127_maxS =
"\1\162\13\0\u00b5\uffff";
static final String DFA127_acceptS =
"\14\uffff\1\2\31\uffff\1\1\u009a\uffff";
static final String DFA127_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\u00b5\uffff}>";
static final String[] DFA127_transitionS = {
"\1\11\2\uffff\1\6\1\uffff\1\14\1\uffff\1\4\2\uffff\1\2\1\14\2\uffff\1"+
"\3\3\uffff\1\5\2\14\1\12\1\1\1\uffff\1\13\3\uffff\1\14\1\uffff\1\10\63"+
"\uffff\1\7\1\uffff\1\14",
"\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[] DFA127_eot = DFA.unpackEncodedString(DFA127_eotS);
static final short[] DFA127_eof = DFA.unpackEncodedString(DFA127_eofS);
static final char[] DFA127_min = DFA.unpackEncodedStringToUnsignedChars(DFA127_minS);
static final char[] DFA127_max = DFA.unpackEncodedStringToUnsignedChars(DFA127_maxS);
static final short[] DFA127_accept = DFA.unpackEncodedString(DFA127_acceptS);
static final short[] DFA127_special = DFA.unpackEncodedString(DFA127_specialS);
static final short[][] DFA127_transition;
static {
int numStates = DFA127_transitionS.length;
DFA127_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA127_transition[i] = DFA.unpackEncodedString(DFA127_transitionS[i]);
}
}
protected class DFA127 extends DFA {
public DFA127(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 127;
this.eot = DFA127_eot;
this.eof = DFA127_eof;
this.min = DFA127_min;
this.max = DFA127_max;
this.accept = DFA127_accept;
this.special = DFA127_special;
this.transition = DFA127_transition;
}
@Override
public String getDescription() {
return "1365:31: ( assignmentOperator expression )?";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA127_1 = input.LA(1);
int index127_1 = input.index();
input.rewind();
s = -1;
if ( (synpred189_Java()) ) {s = 38;}
else if ( (true) ) {s = 12;}
input.seek(index127_1);
if ( s>=0 ) return s;
break;
case 1 :
int LA127_2 = input.LA(1);
int index127_2 = input.index();
input.rewind();
s = -1;
if ( (synpred189_Java()) ) {s = 38;}
else if ( (true) ) {s = 12;}
input.seek(index127_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA127_3 = input.LA(1);
int index127_3 = input.index();
input.rewind();
s = -1;
if ( (synpred189_Java()) ) {s = 38;}
else if ( (true) ) {s = 12;}
input.seek(index127_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA127_4 = input.LA(1);
int index127_4 = input.index();
input.rewind();
s = -1;
if ( (synpred189_Java()) ) {s = 38;}
else if ( (true) ) {s = 12;}
input.seek(index127_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA127_5 = input.LA(1);
int index127_5 = input.index();
input.rewind();
s = -1;
if ( (synpred189_Java()) ) {s = 38;}
else if ( (true) ) {s = 12;}
input.seek(index127_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA127_6 = input.LA(1);
int index127_6 = input.index();
input.rewind();
s = -1;
if ( (synpred189_Java()) ) {s = 38;}
else if ( (true) ) {s = 12;}
input.seek(index127_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA127_7 = input.LA(1);
int index127_7 = input.index();
input.rewind();
s = -1;
if ( (synpred189_Java()) ) {s = 38;}
else if ( (true) ) {s = 12;}
input.seek(index127_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA127_8 = input.LA(1);
int index127_8 = input.index();
input.rewind();
s = -1;
if ( (synpred189_Java()) ) {s = 38;}
else if ( (true) ) {s = 12;}
input.seek(index127_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA127_9 = input.LA(1);
int index127_9 = input.index();
input.rewind();
s = -1;
if ( (synpred189_Java()) ) {s = 38;}
else if ( (true) ) {s = 12;}
input.seek(index127_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA127_10 = input.LA(1);
int index127_10 = input.index();
input.rewind();
s = -1;
if ( (synpred189_Java()) ) {s = 38;}
else if ( (true) ) {s = 12;}
input.seek(index127_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA127_11 = input.LA(1);
int index127_11 = input.index();
input.rewind();
s = -1;
if ( (synpred189_Java()) ) {s = 38;}
else if ( (true) ) {s = 12;}
input.seek(index127_11);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 127, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA137_eotS =
"\105\uffff";
static final String DFA137_eofS =
"\1\1\104\uffff";
static final String DFA137_minS =
"\1\34\26\uffff\2\6\54\uffff";
static final String DFA137_maxS =
"\1\162\26\uffff\2\163\54\uffff";
static final String DFA137_acceptS =
"\1\uffff\1\2\32\uffff\1\1\50\uffff";
static final String DFA137_specialS =
"\105\uffff}>";
static final String[] DFA137_transitionS = {
"\1\1\1\uffff\4\1\1\uffff\1\1\1\uffff\1\1\2\uffff\2\1\2\uffff\1\1\3\uffff"+
"\3\1\1\27\2\1\1\30\1\1\2\uffff\3\1\26\uffff\1\1\33\uffff\4\1",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\2\34\5\uffff\1\34\1\uffff\2\34\6\uffff\2\34\2\uffff\1\34\6\uffff\1"+
"\34\3\uffff\2\34\2\uffff\2\34\7\uffff\1\1\1\34\11\uffff\1\34\1\uffff"+
"\1\34\2\uffff\1\34\4\uffff\1\34\2\uffff\1\34\2\uffff\1\34\5\uffff\1\34"+
"\1\uffff\1\34\1\uffff\2\34\5\uffff\1\34\2\uffff\1\34\2\uffff\1\34\3\uffff"+
"\1\34\1\uffff\1\34\7\uffff\1\34",
"\2\34\5\uffff\1\34\1\uffff\2\34\6\uffff\2\34\2\uffff\1\34\6\uffff\1"+
"\34\3\uffff\2\34\2\uffff\2\34\10\uffff\1\34\1\uffff\1\1\7\uffff\1\34"+
"\1\uffff\1\34\2\uffff\1\34\4\uffff\1\34\2\uffff\1\34\2\uffff\1\34\5\uffff"+
"\1\34\1\uffff\1\34\1\uffff\2\34\5\uffff\1\34\2\uffff\1\34\2\uffff\1\34"+
"\3\uffff\1\34\1\uffff\1\34\7\uffff\1\34",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA137_eot = DFA.unpackEncodedString(DFA137_eotS);
static final short[] DFA137_eof = DFA.unpackEncodedString(DFA137_eofS);
static final char[] DFA137_min = DFA.unpackEncodedStringToUnsignedChars(DFA137_minS);
static final char[] DFA137_max = DFA.unpackEncodedStringToUnsignedChars(DFA137_maxS);
static final short[] DFA137_accept = DFA.unpackEncodedString(DFA137_acceptS);
static final short[] DFA137_special = DFA.unpackEncodedString(DFA137_specialS);
static final short[][] DFA137_transition;
static {
int numStates = DFA137_transitionS.length;
DFA137_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA137_transition[i] = DFA.unpackEncodedString(DFA137_transitionS[i]);
}
}
protected class DFA137 extends DFA {
public DFA137(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 137;
this.eot = DFA137_eot;
this.eof = DFA137_eof;
this.min = DFA137_min;
this.max = DFA137_max;
this.accept = DFA137_accept;
this.special = DFA137_special;
this.transition = DFA137_transition;
}
@Override
public String getDescription() {
return "()* loopback of 1430:25: ( relationalOp shiftExpression )*";
}
}
static final String DFA139_eotS =
"\106\uffff";
static final String DFA139_eofS =
"\1\3\105\uffff";
static final String DFA139_minS =
"\1\34\2\6\31\uffff\1\0\24\uffff\1\0\24\uffff";
static final String DFA139_maxS =
"\1\162\2\163\31\uffff\1\0\24\uffff\1\0\24\uffff";
static final String DFA139_acceptS =
"\3\uffff\1\2\101\uffff\1\1";
static final String DFA139_specialS =
"\34\uffff\1\0\24\uffff\1\1\24\uffff}>";
static final String[] DFA139_transitionS = {
"\1\3\1\uffff\4\3\1\uffff\1\3\1\uffff\1\3\2\uffff\2\3\2\uffff\1\3\3\uffff"+
"\3\3\1\1\2\3\1\2\1\3\2\uffff\3\3\26\uffff\1\3\33\uffff\4\3",
"\2\3\5\uffff\1\3\1\uffff\2\3\6\uffff\2\3\2\uffff\1\3\6\uffff\1\3\3\uffff"+
"\2\3\2\uffff\2\3\7\uffff\1\34\1\3\11\uffff\1\3\1\uffff\1\3\2\uffff\1"+
"\3\4\uffff\1\3\2\uffff\1\3\2\uffff\1\3\5\uffff\1\3\1\uffff\1\3\1\uffff"+
"\2\3\5\uffff\1\3\2\uffff\1\3\2\uffff\1\3\3\uffff\1\3\1\uffff\1\3\7\uffff"+
"\1\3",
"\2\3\5\uffff\1\3\1\uffff\2\3\6\uffff\2\3\2\uffff\1\3\6\uffff\1\3\3\uffff"+
"\2\3\2\uffff\2\3\10\uffff\1\3\1\uffff\1\61\7\uffff\1\3\1\uffff\1\3\2"+
"\uffff\1\3\4\uffff\1\3\2\uffff\1\3\2\uffff\1\3\5\uffff\1\3\1\uffff\1"+
"\3\1\uffff\2\3\5\uffff\1\3\2\uffff\1\3\2\uffff\1\3\3\uffff\1\3\1\uffff"+
"\1\3\7\uffff\1\3",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA139_eot = DFA.unpackEncodedString(DFA139_eotS);
static final short[] DFA139_eof = DFA.unpackEncodedString(DFA139_eofS);
static final char[] DFA139_min = DFA.unpackEncodedStringToUnsignedChars(DFA139_minS);
static final char[] DFA139_max = DFA.unpackEncodedStringToUnsignedChars(DFA139_maxS);
static final short[] DFA139_accept = DFA.unpackEncodedString(DFA139_acceptS);
static final short[] DFA139_special = DFA.unpackEncodedString(DFA139_specialS);
static final short[][] DFA139_transition;
static {
int numStates = DFA139_transitionS.length;
DFA139_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA139_transition[i] = DFA.unpackEncodedString(DFA139_transitionS[i]);
}
}
protected class DFA139 extends DFA {
public DFA139(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 139;
this.eot = DFA139_eot;
this.eof = DFA139_eof;
this.min = DFA139_min;
this.max = DFA139_max;
this.accept = DFA139_accept;
this.special = DFA139_special;
this.transition = DFA139_transition;
}
@Override
public String getDescription() {
return "()* loopback of 1445:28: ( shiftOp additiveExpression )*";
}
@Override
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA139_28 = input.LA(1);
int index139_28 = input.index();
input.rewind();
s = -1;
if ( (synpred215_Java()) ) {s = 69;}
else if ( (true) ) {s = 3;}
input.seek(index139_28);
if ( s>=0 ) return s;
break;
case 1 :
int LA139_49 = input.LA(1);
int index139_49 = input.index();
input.rewind();
s = -1;
if ( (synpred215_Java()) ) {s = 69;}
else if ( (true) ) {s = 3;}
input.seek(index139_49);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 139, _s, input);
error(nvae);
throw nvae;
}
}
public static final BitSet FOLLOW_annotations_in_compilationUnit112 = new BitSet(new long[]{0x2100000000000200L,0x000000033C201010L});
public static final BitSet FOLLOW_packageDeclaration_in_compilationUnit126 = new BitSet(new long[]{0x2104000000000202L,0x0000000338241010L});
public static final BitSet FOLLOW_importDeclaration_in_compilationUnit128 = new BitSet(new long[]{0x2104000000000202L,0x0000000338241010L});
public static final BitSet FOLLOW_typeDeclaration_in_compilationUnit131 = new BitSet(new long[]{0x2104000000000202L,0x0000000338201010L});
public static final BitSet FOLLOW_classOrInterfaceDeclaration_in_compilationUnit146 = new BitSet(new long[]{0x2104000000000202L,0x0000000338201010L});
public static final BitSet FOLLOW_typeDeclaration_in_compilationUnit148 = new BitSet(new long[]{0x2104000000000202L,0x0000000338201010L});
public static final BitSet FOLLOW_packageDeclaration_in_compilationUnit169 = new BitSet(new long[]{0x2104000000000202L,0x0000000338241010L});
public static final BitSet FOLLOW_importDeclaration_in_compilationUnit173 = new BitSet(new long[]{0x2104000000000202L,0x0000000338241010L});
public static final BitSet FOLLOW_typeDeclaration_in_compilationUnit176 = new BitSet(new long[]{0x2104000000000202L,0x0000000338201010L});
public static final BitSet FOLLOW_90_in_packageDeclaration197 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_qualifiedName_in_packageDeclaration201 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_packageDeclaration203 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_82_in_importDeclaration250 = new BitSet(new long[]{0x0000000000010000L,0x0000000100000000L});
public static final BitSet FOLLOW_96_in_importDeclaration252 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_qualifiedName_in_importDeclaration265 = new BitSet(new long[]{0x0004200000000000L});
public static final BitSet FOLLOW_45_in_importDeclaration278 = new BitSet(new long[]{0x0000001000000000L});
public static final BitSet FOLLOW_36_in_importDeclaration280 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_importDeclaration287 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classOrInterfaceDeclaration_in_typeDeclaration317 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_50_in_typeDeclaration327 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classOrInterfaceModifiers_in_classOrInterfaceDeclaration348 = new BitSet(new long[]{0x0100000000000200L,0x0000000000200010L});
public static final BitSet FOLLOW_classDeclaration_in_classOrInterfaceDeclaration362 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interfaceDeclaration_in_classOrInterfaceDeclaration377 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classOrInterfaceModifier_in_classOrInterfaceModifiers431 = new BitSet(new long[]{0x2100000000000002L,0x0000000338001000L});
public static final BitSet FOLLOW_annotation_in_classOrInterfaceModifier479 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_93_in_classOrInterfaceModifier489 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_92_in_classOrInterfaceModifier505 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_91_in_classOrInterfaceModifier518 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_61_in_classOrInterfaceModifier533 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_96_in_classOrInterfaceModifier547 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_76_in_classOrInterfaceModifier563 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_97_in_classOrInterfaceModifier581 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_modifier_in_modifiers620 = new BitSet(new long[]{0x2100000000000002L,0x0000111338801000L});
public static final BitSet FOLLOW_normalClassDeclaration_in_classDeclaration666 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumDeclaration_in_classDeclaration677 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_68_in_normalClassDeclaration710 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_normalClassDeclaration714 = new BitSet(new long[]{0x0008000000000000L,0x0000400000020400L});
public static final BitSet FOLLOW_typeParameters_in_normalClassDeclaration727 = new BitSet(new long[]{0x0000000000000000L,0x0000400000020400L});
public static final BitSet FOLLOW_74_in_normalClassDeclaration743 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_type_in_normalClassDeclaration747 = new BitSet(new long[]{0x0000000000000000L,0x0000400000020000L});
public static final BitSet FOLLOW_81_in_normalClassDeclaration763 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_typeList_in_normalClassDeclaration767 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_classBody_in_normalClassDeclaration801 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_51_in_typeParameters848 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_typeParameter_in_typeParameters879 = new BitSet(new long[]{0x0040020000000000L});
public static final BitSet FOLLOW_41_in_typeParameters897 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_typeParameter_in_typeParameters901 = new BitSet(new long[]{0x0040020000000000L});
public static final BitSet FOLLOW_54_in_typeParameters924 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Identifier_in_typeParameter1004 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000400L});
public static final BitSet FOLLOW_74_in_typeParameter1030 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_typeBound_in_typeParameter1034 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
public static final BitSet FOLLOW_98_in_typeParameter1058 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_typeBound_in_typeParameter1062 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_typeBound1126 = new BitSet(new long[]{0x0000000100000002L});
public static final BitSet FOLLOW_32_in_typeBound1144 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_type_in_typeBound1148 = new BitSet(new long[]{0x0000000100000002L});
public static final BitSet FOLLOW_ENUM_in_enumDeclaration1200 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_enumDeclaration1204 = new BitSet(new long[]{0x0000000000000000L,0x0000400000020000L});
public static final BitSet FOLLOW_81_in_enumDeclaration1207 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_typeList_in_enumDeclaration1211 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_enumBody_in_enumDeclaration1245 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_110_in_enumBody1274 = new BitSet(new long[]{0x0104020000010000L,0x0004000000000000L});
public static final BitSet FOLLOW_enumConstants_in_enumBody1276 = new BitSet(new long[]{0x0004020000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_41_in_enumBody1279 = new BitSet(new long[]{0x0004000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_enumBodyDeclarations_in_enumBody1282 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_114_in_enumBody1285 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumConstant_in_enumConstants1304 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_41_in_enumConstants1307 = new BitSet(new long[]{0x0100000000010000L});
public static final BitSet FOLLOW_enumConstant_in_enumConstants1309 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_annotations_in_enumConstant1330 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_enumConstant1343 = new BitSet(new long[]{0x0000000400000002L,0x0000400000000000L});
public static final BitSet FOLLOW_arguments_in_enumConstant1382 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
public static final BitSet FOLLOW_classBody_in_enumConstant1395 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_50_in_enumBodyDeclarations1416 = new BitSet(new long[]{0x610C000000010202L,0x00005913B8F05119L});
public static final BitSet FOLLOW_classBodyDeclaration_in_enumBodyDeclarations1419 = new BitSet(new long[]{0x610C000000010202L,0x00005913B8F05119L});
public static final BitSet FOLLOW_normalInterfaceDeclaration_in_interfaceDeclaration1446 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_annotationTypeDeclaration_in_interfaceDeclaration1457 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_85_in_normalInterfaceDeclaration1486 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_normalInterfaceDeclaration1490 = new BitSet(new long[]{0x0008000000000000L,0x0000400000000400L});
public static final BitSet FOLLOW_typeParameters_in_normalInterfaceDeclaration1495 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000400L});
public static final BitSet FOLLOW_74_in_normalInterfaceDeclaration1508 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_typeList_in_normalInterfaceDeclaration1512 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_interfaceBody_in_normalInterfaceDeclaration1546 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_typeList1581 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_41_in_typeList1601 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_type_in_typeList1605 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_110_in_classBody1638 = new BitSet(new long[]{0x610C000000010200L,0x00045913B8F05119L});
public static final BitSet FOLLOW_classBodyDeclaration_in_classBody1640 = new BitSet(new long[]{0x610C000000010200L,0x00045913B8F05119L});
public static final BitSet FOLLOW_114_in_classBody1643 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_110_in_interfaceBody1666 = new BitSet(new long[]{0x610C000000010200L,0x00041913B8F05119L});
public static final BitSet FOLLOW_interfaceBodyDeclaration_in_interfaceBody1668 = new BitSet(new long[]{0x610C000000010200L,0x00041913B8F05119L});
public static final BitSet FOLLOW_114_in_interfaceBody1671 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_50_in_classBodyDeclaration1690 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_96_in_classBodyDeclaration1700 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_block_in_classBodyDeclaration1703 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_modifiers_in_classBodyDeclaration1715 = new BitSet(new long[]{0x4108000000010200L,0x0000080080704119L});
public static final BitSet FOLLOW_memberDecl_in_classBodyDeclaration1717 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_genericMethodOrConstructorDecl_in_memberDecl1742 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_memberDeclaration_in_memberDecl1753 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_107_in_memberDecl1764 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_memberDecl1768 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_voidMethodDeclaratorRest_in_memberDecl1770 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Identifier_in_memberDecl1783 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_constructorDeclaratorRest_in_memberDecl1785 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interfaceDeclaration_in_memberDecl1796 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classDeclaration_in_memberDecl1807 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_memberDeclaration1834 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_methodDeclaration_in_memberDeclaration1848 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fieldDeclaration_in_memberDeclaration1863 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeParameters_in_genericMethodOrConstructorDecl1896 = new BitSet(new long[]{0x4000000000010000L,0x0000080080504109L});
public static final BitSet FOLLOW_genericMethodOrConstructorRest_in_genericMethodOrConstructorDecl1898 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_genericMethodOrConstructorRest1930 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_107_in_genericMethodOrConstructorRest1936 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_genericMethodOrConstructorRest1952 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_methodDeclaratorRest_in_genericMethodOrConstructorRest1962 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Identifier_in_genericMethodOrConstructorRest1975 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_constructorDeclaratorRest_in_genericMethodOrConstructorRest1985 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Identifier_in_methodDeclaration2008 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_methodDeclaratorRest_in_methodDeclaration2010 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variableDeclarators_in_fieldDeclaration2031 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_fieldDeclaration2034 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_modifiers_in_interfaceBodyDeclaration2063 = new BitSet(new long[]{0x4108000000010200L,0x0000080080704119L});
public static final BitSet FOLLOW_interfaceMemberDecl_in_interfaceBodyDeclaration2065 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_50_in_interfaceBodyDeclaration2076 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interfaceMethodOrFieldDecl_in_interfaceMemberDecl2096 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interfaceGenericMethodDecl_in_interfaceMemberDecl2107 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_107_in_interfaceMemberDecl2118 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_interfaceMemberDecl2122 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_voidInterfaceMethodDeclaratorRest_in_interfaceMemberDecl2132 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interfaceDeclaration_in_interfaceMemberDecl2143 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classDeclaration_in_interfaceMemberDecl2154 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_interfaceMethodOrFieldDecl2177 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_interfaceMethodOrFieldDecl2181 = new BitSet(new long[]{0x0210000400000000L});
public static final BitSet FOLLOW_interfaceMethodOrFieldRest_in_interfaceMethodOrFieldDecl2191 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constantDeclaratorsRest_in_interfaceMethodOrFieldRest2212 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_interfaceMethodOrFieldRest2215 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_interfaceMethodDeclaratorRest_in_interfaceMethodOrFieldRest2225 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_formalParameters_in_methodDeclaratorRest2256 = new BitSet(new long[]{0x0204000000000000L,0x0000408000000000L});
public static final BitSet FOLLOW_57_in_methodDeclaratorRest2259 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_methodDeclaratorRest2261 = new BitSet(new long[]{0x0204000000000000L,0x0000408000000000L});
public static final BitSet FOLLOW_103_in_methodDeclaratorRest2277 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_qualifiedNameList_in_methodDeclaratorRest2279 = new BitSet(new long[]{0x0004000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_methodBody_in_methodDeclaratorRest2295 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_50_in_methodDeclaratorRest2309 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_formalParameters_in_voidMethodDeclaratorRest2368 = new BitSet(new long[]{0x0004000000000000L,0x0000408000000000L});
public static final BitSet FOLLOW_103_in_voidMethodDeclaratorRest2371 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_qualifiedNameList_in_voidMethodDeclaratorRest2373 = new BitSet(new long[]{0x0004000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_methodBody_in_voidMethodDeclaratorRest2389 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_50_in_voidMethodDeclaratorRest2403 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_formalParameters_in_interfaceMethodDeclaratorRest2462 = new BitSet(new long[]{0x0204000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_57_in_interfaceMethodDeclaratorRest2465 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_interfaceMethodDeclaratorRest2467 = new BitSet(new long[]{0x0204000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_103_in_interfaceMethodDeclaratorRest2483 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_qualifiedNameList_in_interfaceMethodDeclaratorRest2485 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_interfaceMethodDeclaratorRest2497 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_typeParameters_in_interfaceGenericMethodDecl2546 = new BitSet(new long[]{0x4000000000010000L,0x0000080080504109L});
public static final BitSet FOLLOW_type_in_interfaceGenericMethodDecl2551 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_107_in_interfaceGenericMethodDecl2557 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_interfaceGenericMethodDecl2573 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_interfaceMethodDeclaratorRest_in_interfaceGenericMethodDecl2583 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_formalParameters_in_voidInterfaceMethodDeclaratorRest2614 = new BitSet(new long[]{0x0004000000000000L,0x0000008000000000L});
public static final BitSet FOLLOW_103_in_voidInterfaceMethodDeclaratorRest2617 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_qualifiedNameList_in_voidInterfaceMethodDeclaratorRest2619 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_voidInterfaceMethodDeclaratorRest2631 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_formalParameters_in_constructorDeclaratorRest2680 = new BitSet(new long[]{0x0000000000000000L,0x0000408000000000L});
public static final BitSet FOLLOW_103_in_constructorDeclaratorRest2701 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_qualifiedNameList_in_constructorDeclaratorRest2703 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_constructorBody_in_constructorDeclaratorRest2715 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Identifier_in_constantDeclarator2764 = new BitSet(new long[]{0x0210000000000000L});
public static final BitSet FOLLOW_constantDeclaratorRest_in_constantDeclarator2776 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variableDeclarator_in_variableDeclarators2797 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_41_in_variableDeclarators2809 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_variableDeclarator_in_variableDeclarators2811 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_variableDeclaratorId_in_variableDeclarator2844 = new BitSet(new long[]{0x0010000000000002L});
public static final BitSet FOLLOW_equalsVariableInitializer_in_variableDeclarator2896 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_constantDeclaratorRest_in_constantDeclaratorsRest2951 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_41_in_constantDeclaratorsRest2963 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_constantDeclarator_in_constantDeclaratorsRest2965 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_57_in_constantDeclaratorRest2997 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_constantDeclaratorRest2999 = new BitSet(new long[]{0x0210000000000000L});
public static final BitSet FOLLOW_equalsVariableInitializer_in_constantDeclaratorRest3028 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Identifier_in_variableDeclaratorId3057 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_57_in_variableDeclaratorId3060 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_variableDeclaratorId3062 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_52_in_equalsVariableInitializer3092 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00084A2483504909L});
public static final BitSet FOLLOW_variableInitializer_in_equalsVariableInitializer3094 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arrayInitializer_in_variableInitializer3113 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_variableInitializer3123 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_110_in_arrayInitializer3150 = new BitSet(new long[]{0x40000CC40981A0C0L,0x000C4A2483504909L});
public static final BitSet FOLLOW_variableInitializer_in_arrayInitializer3153 = new BitSet(new long[]{0x0000020000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_41_in_arrayInitializer3156 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00084A2483504909L});
public static final BitSet FOLLOW_variableInitializer_in_arrayInitializer3158 = new BitSet(new long[]{0x0000020000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_41_in_arrayInitializer3163 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_114_in_arrayInitializer3170 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_annotation_in_modifier3193 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_93_in_modifier3203 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_92_in_modifier3221 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_91_in_modifier3236 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_96_in_modifier3253 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_61_in_modifier3271 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_76_in_modifier3287 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_87_in_modifier3306 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_100_in_modifier3324 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_104_in_modifier3336 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_108_in_modifier3351 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_97_in_modifier3367 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_qualifiedName_in_packageOrTypeName3386 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Identifier_in_enumConstantName3405 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_qualifiedName_in_typeName3424 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classOrInterfaceType_in_type3471 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_57_in_type3488 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_type3490 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_primitiveType_in_type3540 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_57_in_type3566 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_type3568 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_Identifier_in_classOrInterfaceType3655 = new BitSet(new long[]{0x0008200000000002L});
public static final BitSet FOLLOW_typeArguments_in_classOrInterfaceType3660 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_45_in_classOrInterfaceType3681 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_classOrInterfaceType3685 = new BitSet(new long[]{0x0008200000000002L});
public static final BitSet FOLLOW_typeArguments_in_classOrInterfaceType3704 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_76_in_variableModifier3839 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_annotation_in_variableModifier3851 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_51_in_typeArguments3870 = new BitSet(new long[]{0x4080000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_typeArgument_in_typeArguments3872 = new BitSet(new long[]{0x0040020000000000L});
public static final BitSet FOLLOW_41_in_typeArguments3875 = new BitSet(new long[]{0x4080000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_typeArgument_in_typeArguments3877 = new BitSet(new long[]{0x0040020000000000L});
public static final BitSet FOLLOW_54_in_typeArguments3881 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_typeArgument3904 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_55_in_typeArgument3914 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000400L});
public static final BitSet FOLLOW_set_in_typeArgument3917 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_type_in_typeArgument3925 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_qualifiedName_in_qualifiedNameList3950 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_41_in_qualifiedNameList3953 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_qualifiedName_in_qualifiedNameList3955 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_34_in_formalParameters3980 = new BitSet(new long[]{0x4100000800010000L,0x0000000080505109L});
public static final BitSet FOLLOW_formalParameterDecls_in_formalParameters3983 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_35_in_formalParameters3988 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variableModifiers_in_formalParameterDecls4014 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_type_in_formalParameterDecls4018 = new BitSet(new long[]{0x0000400000010000L});
public static final BitSet FOLLOW_formalParameterDeclsRest_in_formalParameterDecls4020 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variableDeclaratorId_in_formalParameterDeclsRest4051 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_41_in_formalParameterDeclsRest4072 = new BitSet(new long[]{0x4100000000010000L,0x0000000080505109L});
public static final BitSet FOLLOW_formalParameterDecls_in_formalParameterDeclsRest4074 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_46_in_formalParameterDeclsRest4087 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_variableDeclaratorId_in_formalParameterDeclsRest4091 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_block_in_methodBody4124 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_110_in_constructorBody4161 = new BitSet(new long[]{0xE10C0CC40981A2D0L,0x000C6E7FFB71D9B9L});
public static final BitSet FOLLOW_explicitConstructorInvocation_in_constructorBody4163 = new BitSet(new long[]{0xE1040CC40981A2D0L,0x000C6E7FFB71D9B9L});
public static final BitSet FOLLOW_blockStatement_in_constructorBody4166 = new BitSet(new long[]{0xE1040CC40981A2D0L,0x000C6E7FFB71D9B9L});
public static final BitSet FOLLOW_114_in_constructorBody4169 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nonWildcardTypeArguments_in_explicitConstructorInvocation4199 = new BitSet(new long[]{0x0000000000000000L,0x0000002400000000L});
public static final BitSet FOLLOW_set_in_explicitConstructorInvocation4203 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_arguments_in_explicitConstructorInvocation4211 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_explicitConstructorInvocation4213 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primary_in_explicitConstructorInvocation4223 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_45_in_explicitConstructorInvocation4225 = new BitSet(new long[]{0x0008000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_nonWildcardTypeArguments_in_explicitConstructorInvocation4227 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_98_in_explicitConstructorInvocation4230 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_arguments_in_explicitConstructorInvocation4232 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_explicitConstructorInvocation4234 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Identifier_in_qualifiedName4254 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_45_in_qualifiedName4257 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_qualifiedName4259 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_integerLiteral_in_literal4285 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FloatingPointLiteral_in_literal4295 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CharacterLiteral_in_literal4305 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_StringLiteral_in_literal4315 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_booleanLiteral_in_literal4325 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_89_in_literal4335 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_annotation_in_annotations4424 = new BitSet(new long[]{0x0100000000000002L});
public static final BitSet FOLLOW_56_in_annotation4444 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_annotationName_in_annotation4448 = new BitSet(new long[]{0x0000000400000002L});
public static final BitSet FOLLOW_34_in_annotation4470 = new BitSet(new long[]{0x41000CCC0981A0C0L,0x00084A2483504909L});
public static final BitSet FOLLOW_elementValuePairs_in_annotation4474 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_elementValue_in_annotation4478 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_35_in_annotation4483 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Identifier_in_annotationName4513 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_45_in_annotationName4516 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_annotationName4518 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_elementValuePair_in_elementValuePairs4539 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_41_in_elementValuePairs4542 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_elementValuePair_in_elementValuePairs4544 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_Identifier_in_elementValuePair4565 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_52_in_elementValuePair4567 = new BitSet(new long[]{0x41000CC40981A0C0L,0x00084A2483504909L});
public static final BitSet FOLLOW_elementValue_in_elementValuePair4569 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_elementValue4592 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_annotation_in_elementValue4602 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_elementValueArrayInitializer_in_elementValue4612 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_110_in_elementValueArrayInitializer4631 = new BitSet(new long[]{0x41000EC40981A0C0L,0x000C4A2483504909L});
public static final BitSet FOLLOW_elementValue_in_elementValueArrayInitializer4634 = new BitSet(new long[]{0x0000020000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_41_in_elementValueArrayInitializer4637 = new BitSet(new long[]{0x41000CC40981A0C0L,0x00084A2483504909L});
public static final BitSet FOLLOW_elementValue_in_elementValueArrayInitializer4639 = new BitSet(new long[]{0x0000020000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_41_in_elementValueArrayInitializer4646 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_114_in_elementValueArrayInitializer4650 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_56_in_annotationTypeDeclaration4670 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
public static final BitSet FOLLOW_85_in_annotationTypeDeclaration4672 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_annotationTypeDeclaration4676 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_annotationTypeBody_in_annotationTypeDeclaration4696 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_110_in_annotationTypeBody4724 = new BitSet(new long[]{0x6100000000010200L,0x00041113B8F05119L});
public static final BitSet FOLLOW_annotationTypeElementDeclaration_in_annotationTypeBody4727 = new BitSet(new long[]{0x6100000000010200L,0x00041113B8F05119L});
public static final BitSet FOLLOW_114_in_annotationTypeBody4731 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_modifiers_in_annotationTypeElementDeclaration4750 = new BitSet(new long[]{0x4100000000010200L,0x0000000080704119L});
public static final BitSet FOLLOW_annotationTypeElementRest_in_annotationTypeElementDeclaration4752 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_annotationTypeElementRest4771 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_annotationMethodOrConstantRest_in_annotationTypeElementRest4773 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_annotationTypeElementRest4775 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_normalClassDeclaration_in_annotationTypeElementRest4785 = new BitSet(new long[]{0x0004000000000002L});
public static final BitSet FOLLOW_50_in_annotationTypeElementRest4788 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_normalInterfaceDeclaration_in_annotationTypeElementRest4799 = new BitSet(new long[]{0x0004000000000002L});
public static final BitSet FOLLOW_50_in_annotationTypeElementRest4802 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enumDeclaration_in_annotationTypeElementRest4813 = new BitSet(new long[]{0x0004000000000002L});
public static final BitSet FOLLOW_50_in_annotationTypeElementRest4816 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_annotationTypeDeclaration_in_annotationTypeElementRest4827 = new BitSet(new long[]{0x0004000000000002L});
public static final BitSet FOLLOW_50_in_annotationTypeElementRest4830 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_annotationMethodRest_in_annotationMethodOrConstantRest4850 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_annotationConstantRest_in_annotationMethodOrConstantRest4860 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Identifier_in_annotationMethodRest4883 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_34_in_annotationMethodRest4885 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_35_in_annotationMethodRest4887 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000040L});
public static final BitSet FOLLOW_defaultValue_in_annotationMethodRest4890 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variableDeclarators_in_annotationConstantRest4915 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_70_in_defaultValue4939 = new BitSet(new long[]{0x41000CC40981A0C0L,0x00084A2483504909L});
public static final BitSet FOLLOW_elementValue_in_defaultValue4941 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_110_in_block4980 = new BitSet(new long[]{0xE1040CC40981A2D0L,0x000C6E7FFB71D9B9L});
public static final BitSet FOLLOW_blockStatement_in_block4982 = new BitSet(new long[]{0xE1040CC40981A2D0L,0x000C6E7FFB71D9B9L});
public static final BitSet FOLLOW_114_in_block4985 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_localVariableDeclarationStatement_in_blockStatement5018 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classOrInterfaceDeclaration_in_blockStatement5028 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statement_in_blockStatement5038 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_localVariableDeclaration_in_localVariableDeclarationStatement5062 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_localVariableDeclarationStatement5064 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variableModifiers_in_localVariableDeclaration5083 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_type_in_localVariableDeclaration5087 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_variableDeclarators_in_localVariableDeclaration5101 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variableModifier_in_variableModifiers5132 = new BitSet(new long[]{0x0100000000000002L,0x0000000000001000L});
public static final BitSet FOLLOW_block_in_statement5154 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSERT_in_statement5164 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_statement5166 = new BitSet(new long[]{0x0006000000000000L});
public static final BitSet FOLLOW_49_in_statement5169 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_statement5171 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_statement5175 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_80_in_statement5185 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_parExpression_in_statement5187 = new BitSet(new long[]{0xC0040CC40981A0D0L,0x00086E7CC351C9A9L});
public static final BitSet FOLLOW_statement_in_statement5189 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
public static final BitSet FOLLOW_73_in_statement5199 = new BitSet(new long[]{0xC0040CC40981A0D0L,0x00086E7CC351C9A9L});
public static final BitSet FOLLOW_statement_in_statement5201 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_79_in_statement5213 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_34_in_statement5215 = new BitSet(new long[]{0x41040CC40981A0C0L,0x00080A2483505909L});
public static final BitSet FOLLOW_forControl_in_statement5217 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_35_in_statement5219 = new BitSet(new long[]{0xC0040CC40981A0D0L,0x00086E7CC351C9A9L});
public static final BitSet FOLLOW_statement_in_statement5221 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_109_in_statement5231 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_parExpression_in_statement5233 = new BitSet(new long[]{0xC0040CC40981A0D0L,0x00086E7CC351C9A9L});
public static final BitSet FOLLOW_statement_in_statement5235 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_71_in_statement5245 = new BitSet(new long[]{0xC0040CC40981A0D0L,0x00086E7CC351C9A9L});
public static final BitSet FOLLOW_statement_in_statement5247 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
public static final BitSet FOLLOW_109_in_statement5249 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_parExpression_in_statement5251 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_statement5253 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_106_in_statement5263 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_block_in_statement5265 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002004L});
public static final BitSet FOLLOW_catches_in_statement5277 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_77_in_statement5279 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_block_in_statement5281 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_catches_in_statement5293 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_77_in_statement5307 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_block_in_statement5309 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_99_in_statement5329 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_parExpression_in_statement5331 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_110_in_statement5333 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000042L});
public static final BitSet FOLLOW_switchBlockStatementGroups_in_statement5335 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
public static final BitSet FOLLOW_114_in_statement5337 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_100_in_statement5347 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_parExpression_in_statement5349 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_block_in_statement5351 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_94_in_statement5361 = new BitSet(new long[]{0x40040CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_statement5363 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_statement5366 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_102_in_statement5376 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_statement5378 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_statement5380 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_63_in_statement5390 = new BitSet(new long[]{0x0004000000010000L});
public static final BitSet FOLLOW_Identifier_in_statement5392 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_statement5395 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_69_in_statement5405 = new BitSet(new long[]{0x0004000000010000L});
public static final BitSet FOLLOW_Identifier_in_statement5407 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_statement5410 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_50_in_statement5420 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_statementExpression_in_statement5431 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_statement5433 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Identifier_in_statement5443 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_49_in_statement5445 = new BitSet(new long[]{0xC0040CC40981A0D0L,0x00086E7CC351C9A9L});
public static final BitSet FOLLOW_statement_in_statement5447 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_catchClause_in_catches5470 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
public static final BitSet FOLLOW_catchClause_in_catches5473 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
public static final BitSet FOLLOW_66_in_catchClause5498 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_34_in_catchClause5500 = new BitSet(new long[]{0x4100000000010000L,0x0000000080505109L});
public static final BitSet FOLLOW_formalParameter_in_catchClause5502 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_35_in_catchClause5504 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_block_in_catchClause5506 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variableModifiers_in_formalParameter5525 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_type_in_formalParameter5527 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_variableDeclaratorId_in_formalParameter5529 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_switchBlockStatementGroup_in_switchBlockStatementGroups5557 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000042L});
public static final BitSet FOLLOW_switchLabel_in_switchBlockStatementGroup5584 = new BitSet(new long[]{0xE1040CC40981A2D2L,0x00086E7FFB71D9FBL});
public static final BitSet FOLLOW_blockStatement_in_switchBlockStatementGroup5587 = new BitSet(new long[]{0xE1040CC40981A2D2L,0x00086E7FFB71D9B9L});
public static final BitSet FOLLOW_65_in_switchLabel5611 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_constantExpression_in_switchLabel5613 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_49_in_switchLabel5615 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_65_in_switchLabel5625 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_enumConstantName_in_switchLabel5627 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_49_in_switchLabel5629 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_70_in_switchLabel5639 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_49_in_switchLabel5641 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enhancedForControl_in_forControl5672 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_forInit_in_forControl5682 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_forControl5685 = new BitSet(new long[]{0x40040CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_forControl5687 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_forControl5690 = new BitSet(new long[]{0x40000CC40981A0C2L,0x00080A2483504909L});
public static final BitSet FOLLOW_forUpdate_in_forControl5692 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_localVariableDeclaration_in_forInit5712 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expressionList_in_forInit5722 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_variableModifiers_in_enhancedForControl5745 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_type_in_enhancedForControl5747 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_enhancedForControl5749 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_49_in_enhancedForControl5751 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_enhancedForControl5753 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expressionList_in_forUpdate5772 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_34_in_parExpression5793 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_parExpression5795 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_35_in_parExpression5797 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_expressionList5820 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_41_in_expressionList5823 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_expressionList5825 = new BitSet(new long[]{0x0000020000000002L});
public static final BitSet FOLLOW_expression_in_statementExpression5846 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_constantExpression5878 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalExpression_in_expression5901 = new BitSet(new long[]{0x1059112240000002L,0x0001000000000000L});
public static final BitSet FOLLOW_assignmentOperator_in_expression5904 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_expression5906 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_52_in_assignmentOperator5931 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_40_in_assignmentOperator5941 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_44_in_assignmentOperator5951 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_37_in_assignmentOperator5961 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_48_in_assignmentOperator5971 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_33_in_assignmentOperator5981 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_112_in_assignmentOperator5991 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_60_in_assignmentOperator6001 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_30_in_assignmentOperator6011 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_51_in_assignmentOperator6032 = new BitSet(new long[]{0x0008000000000000L});
public static final BitSet FOLLOW_51_in_assignmentOperator6036 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_52_in_assignmentOperator6040 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_54_in_assignmentOperator6074 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_54_in_assignmentOperator6078 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_54_in_assignmentOperator6082 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_52_in_assignmentOperator6086 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_54_in_assignmentOperator6117 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_54_in_assignmentOperator6121 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_52_in_assignmentOperator6125 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalOrExpression_in_conditionalExpression6154 = new BitSet(new long[]{0x0080000000000002L});
public static final BitSet FOLLOW_55_in_conditionalExpression6158 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_conditionalExpression6160 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_49_in_conditionalExpression6162 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_conditionalExpression6164 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalAndExpression_in_conditionalOrExpression6186 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
public static final BitSet FOLLOW_113_in_conditionalOrExpression6190 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_conditionalAndExpression_in_conditionalOrExpression6192 = new BitSet(new long[]{0x0000000000000002L,0x0002000000000000L});
public static final BitSet FOLLOW_inclusiveOrExpression_in_conditionalAndExpression6214 = new BitSet(new long[]{0x0000000080000002L});
public static final BitSet FOLLOW_31_in_conditionalAndExpression6218 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_inclusiveOrExpression_in_conditionalAndExpression6220 = new BitSet(new long[]{0x0000000080000002L});
public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression6242 = new BitSet(new long[]{0x0000000000000002L,0x0000800000000000L});
public static final BitSet FOLLOW_111_in_inclusiveOrExpression6246 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression6248 = new BitSet(new long[]{0x0000000000000002L,0x0000800000000000L});
public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression6270 = new BitSet(new long[]{0x0800000000000002L});
public static final BitSet FOLLOW_59_in_exclusiveOrExpression6274 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression6276 = new BitSet(new long[]{0x0800000000000002L});
public static final BitSet FOLLOW_equalityExpression_in_andExpression6298 = new BitSet(new long[]{0x0000000100000002L});
public static final BitSet FOLLOW_32_in_andExpression6302 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_equalityExpression_in_andExpression6304 = new BitSet(new long[]{0x0000000100000002L});
public static final BitSet FOLLOW_instanceOfExpression_in_equalityExpression6326 = new BitSet(new long[]{0x0020000010000002L});
public static final BitSet FOLLOW_set_in_equalityExpression6330 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_instanceOfExpression_in_equalityExpression6338 = new BitSet(new long[]{0x0020000010000002L});
public static final BitSet FOLLOW_relationalExpression_in_instanceOfExpression6360 = new BitSet(new long[]{0x0000000000000002L,0x0000000000080000L});
public static final BitSet FOLLOW_83_in_instanceOfExpression6363 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_type_in_instanceOfExpression6365 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpression6386 = new BitSet(new long[]{0x0048000000000002L});
public static final BitSet FOLLOW_relationalOp_in_relationalExpression6390 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_shiftExpression_in_relationalExpression6392 = new BitSet(new long[]{0x0048000000000002L});
public static final BitSet FOLLOW_51_in_relationalOp6427 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_52_in_relationalOp6431 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_54_in_relationalOp6461 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_52_in_relationalOp6465 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_51_in_relationalOp6486 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_54_in_relationalOp6497 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_additiveExpression_in_shiftExpression6517 = new BitSet(new long[]{0x0048000000000002L});
public static final BitSet FOLLOW_shiftOp_in_shiftExpression6521 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_additiveExpression_in_shiftExpression6523 = new BitSet(new long[]{0x0048000000000002L});
public static final BitSet FOLLOW_51_in_shiftOp6554 = new BitSet(new long[]{0x0008000000000000L});
public static final BitSet FOLLOW_51_in_shiftOp6558 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_54_in_shiftOp6590 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_54_in_shiftOp6594 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_54_in_shiftOp6598 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_54_in_shiftOp6628 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_54_in_shiftOp6632 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression6662 = new BitSet(new long[]{0x0000044000000002L});
public static final BitSet FOLLOW_set_in_additiveExpression6666 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression6674 = new BitSet(new long[]{0x0000044000000002L});
public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression6696 = new BitSet(new long[]{0x0000801020000002L});
public static final BitSet FOLLOW_set_in_multiplicativeExpression6700 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression6714 = new BitSet(new long[]{0x0000801020000002L});
public static final BitSet FOLLOW_38_in_unaryExpression6740 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression6742 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_42_in_unaryExpression6752 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression6754 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_39_in_unaryExpression6764 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression6766 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_43_in_unaryExpression6776 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpression6778 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_unaryExpressionNotPlusMinus_in_unaryExpression6788 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_115_in_unaryExpressionNotPlusMinus6807 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus6809 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_27_in_unaryExpressionNotPlusMinus6819 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus6821 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_castExpression_in_unaryExpressionNotPlusMinus6831 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primary_in_unaryExpressionNotPlusMinus6841 = new BitSet(new long[]{0x0200288000000002L});
public static final BitSet FOLLOW_selector_in_unaryExpressionNotPlusMinus6843 = new BitSet(new long[]{0x0200288000000002L});
public static final BitSet FOLLOW_34_in_castExpression6869 = new BitSet(new long[]{0x4000000000000000L,0x0000000080504109L});
public static final BitSet FOLLOW_primitiveType_in_castExpression6871 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_35_in_castExpression6873 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_unaryExpression_in_castExpression6875 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_34_in_castExpression6884 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_type_in_castExpression6887 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_expression_in_castExpression6891 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_35_in_castExpression6894 = new BitSet(new long[]{0x400000040981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_unaryExpressionNotPlusMinus_in_castExpression6896 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_parExpression_in_primary6923 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_101_in_primary6933 = new BitSet(new long[]{0x0200200400000002L});
public static final BitSet FOLLOW_45_in_primary6936 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_primary6940 = new BitSet(new long[]{0x0200200400000002L});
public static final BitSet FOLLOW_identifierSuffix_in_primary6956 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_98_in_primary6981 = new BitSet(new long[]{0x0000200400000000L});
public static final BitSet FOLLOW_superSuffix_in_primary6983 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_in_primary7003 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_88_in_primary7013 = new BitSet(new long[]{0x4008000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_creator_in_primary7015 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_Identifier_in_primary7027 = new BitSet(new long[]{0x0200200400000002L});
public static final BitSet FOLLOW_45_in_primary7041 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_primary7045 = new BitSet(new long[]{0x0200200400000002L});
public static final BitSet FOLLOW_identifierSuffix_in_primary7061 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primitiveType_in_primary7086 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_57_in_primary7089 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_primary7091 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_45_in_primary7095 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_68_in_primary7097 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_107_in_primary7107 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_45_in_primary7109 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_68_in_primary7111 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_57_in_identifierSuffix7131 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_identifierSuffix7133 = new BitSet(new long[]{0x0200200000000000L});
public static final BitSet FOLLOW_45_in_identifierSuffix7137 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_68_in_identifierSuffix7139 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_57_in_identifierSuffix7150 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_identifierSuffix7152 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_identifierSuffix7154 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_arguments_in_identifierSuffix7167 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_45_in_identifierSuffix7177 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
public static final BitSet FOLLOW_68_in_identifierSuffix7179 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_45_in_identifierSuffix7189 = new BitSet(new long[]{0x0008000000000000L});
public static final BitSet FOLLOW_explicitGenericInvocation_in_identifierSuffix7191 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_45_in_identifierSuffix7201 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_101_in_identifierSuffix7203 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_45_in_identifierSuffix7213 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_98_in_identifierSuffix7215 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_arguments_in_identifierSuffix7217 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_45_in_identifierSuffix7227 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
public static final BitSet FOLLOW_88_in_identifierSuffix7229 = new BitSet(new long[]{0x0008000000010000L});
public static final BitSet FOLLOW_innerCreator_in_identifierSuffix7231 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nonWildcardTypeArguments_in_creator7250 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_createdName_in_creator7254 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_classCreatorRest_in_creator7256 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_createdName_in_creator7269 = new BitSet(new long[]{0x0200000400000000L});
public static final BitSet FOLLOW_arrayCreatorRest_in_creator7272 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classCreatorRest_in_creator7276 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classOrInterfaceType_in_createdName7297 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_primitiveType_in_createdName7307 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nonWildcardTypeArguments_in_innerCreator7331 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_innerCreator7337 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_classCreatorRest_in_innerCreator7339 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_57_in_arrayCreatorRest7359 = new BitSet(new long[]{0x44000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_58_in_arrayCreatorRest7373 = new BitSet(new long[]{0x0200000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_57_in_arrayCreatorRest7376 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_arrayCreatorRest7378 = new BitSet(new long[]{0x0200000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_arrayInitializer_in_arrayCreatorRest7382 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_arrayCreatorRest7396 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_arrayCreatorRest7398 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_57_in_arrayCreatorRest7401 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_arrayCreatorRest7403 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_arrayCreatorRest7405 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_57_in_arrayCreatorRest7410 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_arrayCreatorRest7412 = new BitSet(new long[]{0x0200000000000002L});
public static final BitSet FOLLOW_arguments_in_classCreatorRest7444 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
public static final BitSet FOLLOW_classBody_in_classCreatorRest7492 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nonWildcardTypeArguments_in_explicitGenericInvocation7540 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_explicitGenericInvocation7542 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_arguments_in_explicitGenericInvocation7544 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_51_in_nonWildcardTypeArguments7567 = new BitSet(new long[]{0x4000000000010000L,0x0000000080504109L});
public static final BitSet FOLLOW_typeList_in_nonWildcardTypeArguments7569 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_54_in_nonWildcardTypeArguments7571 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_45_in_selector7594 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_selector7596 = new BitSet(new long[]{0x0000000400000002L});
public static final BitSet FOLLOW_arguments_in_selector7599 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_45_in_selector7611 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
public static final BitSet FOLLOW_101_in_selector7613 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_45_in_selector7623 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
public static final BitSet FOLLOW_98_in_selector7625 = new BitSet(new long[]{0x0000200400000000L});
public static final BitSet FOLLOW_superSuffix_in_selector7627 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_45_in_selector7637 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
public static final BitSet FOLLOW_88_in_selector7639 = new BitSet(new long[]{0x0008000000010000L});
public static final BitSet FOLLOW_innerCreator_in_selector7641 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_57_in_selector7651 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_selector7653 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_selector7655 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_arguments_in_superSuffix7678 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_45_in_superSuffix7688 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_superSuffix7690 = new BitSet(new long[]{0x0000000400000002L});
public static final BitSet FOLLOW_arguments_in_superSuffix7693 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_34_in_arguments7714 = new BitSet(new long[]{0x40000CCC0981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expressionList_in_arguments7716 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_35_in_arguments7719 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_56_in_synpred1_Java108 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_explicitConstructorInvocation_in_synpred114_Java4163 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_nonWildcardTypeArguments_in_synpred118_Java4199 = new BitSet(new long[]{0x0000000000000000L,0x0000002400000000L});
public static final BitSet FOLLOW_set_in_synpred118_Java4203 = new BitSet(new long[]{0x0000000400000000L});
public static final BitSet FOLLOW_arguments_in_synpred118_Java4211 = new BitSet(new long[]{0x0004000000000000L});
public static final BitSet FOLLOW_50_in_synpred118_Java4213 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_annotation_in_synpred129_Java4424 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_localVariableDeclarationStatement_in_synpred152_Java5018 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classOrInterfaceDeclaration_in_synpred153_Java5028 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_73_in_synpred158_Java5199 = new BitSet(new long[]{0xC0040CC40981A0D0L,0x00086E7CC351C9A9L});
public static final BitSet FOLLOW_statement_in_synpred158_Java5201 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_catches_in_synpred163_Java5277 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
public static final BitSet FOLLOW_77_in_synpred163_Java5279 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
public static final BitSet FOLLOW_block_in_synpred163_Java5281 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_catches_in_synpred164_Java5293 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_switchLabel_in_synpred179_Java5584 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_65_in_synpred181_Java5611 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_constantExpression_in_synpred181_Java5613 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_49_in_synpred181_Java5615 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_65_in_synpred182_Java5625 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_enumConstantName_in_synpred182_Java5627 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_49_in_synpred182_Java5629 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_enhancedForControl_in_synpred183_Java5672 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_localVariableDeclaration_in_synpred187_Java5712 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentOperator_in_synpred189_Java5904 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_synpred189_Java5906 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_51_in_synpred199_Java6022 = new BitSet(new long[]{0x0008000000000000L});
public static final BitSet FOLLOW_51_in_synpred199_Java6024 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_52_in_synpred199_Java6026 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_54_in_synpred200_Java6062 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_54_in_synpred200_Java6064 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_54_in_synpred200_Java6066 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_52_in_synpred200_Java6068 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_54_in_synpred201_Java6107 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_54_in_synpred201_Java6109 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_52_in_synpred201_Java6111 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_51_in_synpred212_Java6419 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_52_in_synpred212_Java6421 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_54_in_synpred213_Java6453 = new BitSet(new long[]{0x0010000000000000L});
public static final BitSet FOLLOW_52_in_synpred213_Java6455 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_shiftOp_in_synpred215_Java6521 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_additiveExpression_in_synpred215_Java6523 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_51_in_synpred216_Java6546 = new BitSet(new long[]{0x0008000000000000L});
public static final BitSet FOLLOW_51_in_synpred216_Java6548 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_54_in_synpred217_Java6580 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_54_in_synpred217_Java6582 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_54_in_synpred217_Java6584 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_54_in_synpred218_Java6620 = new BitSet(new long[]{0x0040000000000000L});
public static final BitSet FOLLOW_54_in_synpred218_Java6622 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_castExpression_in_synpred230_Java6831 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_34_in_synpred234_Java6869 = new BitSet(new long[]{0x4000000000000000L,0x0000000080504109L});
public static final BitSet FOLLOW_primitiveType_in_synpred234_Java6871 = new BitSet(new long[]{0x0000000800000000L});
public static final BitSet FOLLOW_35_in_synpred234_Java6873 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_unaryExpression_in_synpred234_Java6875 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_type_in_synpred235_Java6887 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_45_in_synpred237_Java6936 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_synpred237_Java6940 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifierSuffix_in_synpred238_Java6956 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_45_in_synpred243_Java7041 = new BitSet(new long[]{0x0000000000010000L});
public static final BitSet FOLLOW_Identifier_in_synpred243_Java7045 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_identifierSuffix_in_synpred244_Java7061 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_57_in_synpred250_Java7150 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_synpred250_Java7152 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_synpred250_Java7154 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_57_in_synpred263_Java7401 = new BitSet(new long[]{0x40000CC40981A0C0L,0x00080A2483504909L});
public static final BitSet FOLLOW_expression_in_synpred263_Java7403 = new BitSet(new long[]{0x0400000000000000L});
public static final BitSet FOLLOW_58_in_synpred263_Java7405 = new BitSet(new long[]{0x0000000000000002L});
}