diff options
Diffstat (limited to 'src/main/java/io/devnulllabs/openjava/tools/parser/Parser.java')
-rw-r--r-- | src/main/java/io/devnulllabs/openjava/tools/parser/Parser.java | 6327 |
1 files changed, 6327 insertions, 0 deletions
diff --git a/src/main/java/io/devnulllabs/openjava/tools/parser/Parser.java b/src/main/java/io/devnulllabs/openjava/tools/parser/Parser.java new file mode 100644 index 0000000..749fa53 --- /dev/null +++ b/src/main/java/io/devnulllabs/openjava/tools/parser/Parser.java @@ -0,0 +1,6327 @@ +package io.devnulllabs.openjava.tools.parser; + + +import java.lang.reflect.Method; +import java.util.Hashtable; +import java.util.Vector; + +import io.devnulllabs.openjava.mop.ClassEnvironment; +import io.devnulllabs.openjava.mop.ClosedEnvironment; +import io.devnulllabs.openjava.mop.Environment; +import io.devnulllabs.openjava.mop.FileEnvironment; +import io.devnulllabs.openjava.mop.OJSystem; +import io.devnulllabs.openjava.ptree.AllocationExpression; +import io.devnulllabs.openjava.ptree.ArrayAccess; +import io.devnulllabs.openjava.ptree.ArrayAllocationExpression; +import io.devnulllabs.openjava.ptree.ArrayInitializer; +import io.devnulllabs.openjava.ptree.AssignmentExpression; +import io.devnulllabs.openjava.ptree.BinaryExpression; +import io.devnulllabs.openjava.ptree.Block; +import io.devnulllabs.openjava.ptree.BreakStatement; +import io.devnulllabs.openjava.ptree.CaseGroup; +import io.devnulllabs.openjava.ptree.CaseGroupList; +import io.devnulllabs.openjava.ptree.CastExpression; +import io.devnulllabs.openjava.ptree.CatchBlock; +import io.devnulllabs.openjava.ptree.CatchList; +import io.devnulllabs.openjava.ptree.ClassDeclaration; +import io.devnulllabs.openjava.ptree.ClassDeclarationList; +import io.devnulllabs.openjava.ptree.ClassLiteral; +import io.devnulllabs.openjava.ptree.CompilationUnit; +import io.devnulllabs.openjava.ptree.ConditionalExpression; +import io.devnulllabs.openjava.ptree.ConstructorDeclaration; +import io.devnulllabs.openjava.ptree.ConstructorInvocation; +import io.devnulllabs.openjava.ptree.ContinueStatement; +import io.devnulllabs.openjava.ptree.DoWhileStatement; +import io.devnulllabs.openjava.ptree.EmptyStatement; +import io.devnulllabs.openjava.ptree.Expression; +import io.devnulllabs.openjava.ptree.ExpressionList; +import io.devnulllabs.openjava.ptree.ExpressionStatement; +import io.devnulllabs.openjava.ptree.FieldAccess; +import io.devnulllabs.openjava.ptree.FieldDeclaration; +import io.devnulllabs.openjava.ptree.ForStatement; +import io.devnulllabs.openjava.ptree.IfStatement; +import io.devnulllabs.openjava.ptree.InstanceofExpression; +import io.devnulllabs.openjava.ptree.LabeledStatement; +import io.devnulllabs.openjava.ptree.Literal; +import io.devnulllabs.openjava.ptree.MemberDeclaration; +import io.devnulllabs.openjava.ptree.MemberDeclarationList; +import io.devnulllabs.openjava.ptree.MemberInitializer; +import io.devnulllabs.openjava.ptree.MethodCall; +import io.devnulllabs.openjava.ptree.MethodDeclaration; +import io.devnulllabs.openjava.ptree.ModifierList; +import io.devnulllabs.openjava.ptree.Parameter; +import io.devnulllabs.openjava.ptree.ParameterList; +import io.devnulllabs.openjava.ptree.ParseTree; +import io.devnulllabs.openjava.ptree.ReturnStatement; +import io.devnulllabs.openjava.ptree.SelfAccess; +import io.devnulllabs.openjava.ptree.Statement; +import io.devnulllabs.openjava.ptree.StatementList; +import io.devnulllabs.openjava.ptree.SwitchStatement; +import io.devnulllabs.openjava.ptree.SynchronizedStatement; +import io.devnulllabs.openjava.ptree.ThrowStatement; +import io.devnulllabs.openjava.ptree.TryStatement; +import io.devnulllabs.openjava.ptree.TypeName; +import io.devnulllabs.openjava.ptree.UnaryExpression; +import io.devnulllabs.openjava.ptree.Variable; +import io.devnulllabs.openjava.ptree.VariableDeclaration; +import io.devnulllabs.openjava.ptree.VariableDeclarator; +import io.devnulllabs.openjava.ptree.VariableInitializer; +import io.devnulllabs.openjava.ptree.WhileStatement; +import io.devnulllabs.openjava.syntax.SyntaxRule; +import io.devnulllabs.openjava.syntax.TokenSource; +import io.devnulllabs.openjava.tools.DebugOut; + + +public class Parser implements ParserConstants { + /** + * Allocates a new parser object who gets tokens from the given parser + * object. + * + * @param parser this is used to get tokens via <code>getToken()</code> + * or <code>getNextToken()</code>. + */ + public Parser( Parser parser ) { + this( (ParserTokenManager) new CustomTokenManager( parser, OJSystem.env ) ); + } + + public Parser( TokenSource token_src ) { + this( new TokenSourceAdapter( token_src ) ); + } + + private final String getComment() { + Token token = getToken( 1 ).specialToken; + return ((token == null) ? null : token.image); + } + + + private final static int makeInt( String str ) { + if (str.length() == 1) { + return Integer.valueOf( str ).intValue(); + } else if (str.startsWith( "0x" ) || str.startsWith( "0X" )) { + return Integer.valueOf( str.substring( 2 ), 16 ).intValue(); + } else if (str.startsWith( "0" )) { + return Integer.valueOf( str.substring( 1 ), 8 ).intValue(); + } + return Integer.valueOf( str ).intValue(); + } + private final static long makeLong( String str ) { + if (str.length() == 1) { + return Long.valueOf( str ).longValue(); + } else if (str.startsWith( "0x" ) || str.startsWith( "0X" )) { + str = str.substring( 2 ); + if (str.endsWith( "l" ) || str.endsWith( "L" )) { + str = str.substring( 0, str.length() - 1 ); + } + return Long.valueOf( str, 16 ).longValue(); + } else if (str.startsWith( "0" )) { + str = str.substring( 1 ); + if (str.endsWith( "l" ) || str.endsWith( "L" )) { + str = str.substring( 0, str.length() - 1 ); + } + return Long.valueOf( str, 8 ).longValue(); + } + return Long.valueOf( str ).longValue(); + } + + /** + * Detects class or interface name and metaclass + */ + private final ClassEnvironment setClassEnvironment( Environment base_env ) + throws ParseException + { + int ptr = 1; + for (; roughModifierCheck( getToken( ptr ) ) ; ++ptr) ; + Token c_or_i = getToken( ptr++ ); + if (c_or_i.kind != CLASS && c_or_i.kind != INTERFACE) { + throw new ParseException( "'class' or 'interface' expected : " + + c_or_i.image ); + } + Token cname = getToken( ptr++ ); + if (cname.kind != IDENTIFIER) { + throw new ParseException( "class name expected : " + + c_or_i.image ); + } + String classname = cname.image; + + ClassEnvironment result = new ClassEnvironment(base_env, classname); + + Token inst = getToken(ptr++); + if (inst.kind != INSTANTIATES) { + ptr++; + } else { + IntAndObj tmp = consumeMetaclassName(ptr); ptr = tmp.ptr; + String meta = base_env.toQualifiedName((String) tmp.obj); + OJSystem.metabind(result.toQualifiedName(classname), meta); + } + + return result; + } + + private IntAndObj consumeMetaclassName( int ptr ) throws ParseException { + Token token = getToken( ptr++ ); + if (token.kind != IDENTIFIER) { + throw new ParseException( "metaclass name exptected : " + + token.image ); + } + StringBuffer buf = new StringBuffer( token.image ); + while (getToken( ptr ).kind == DOT + && getToken( ptr + 1 ).kind == IDENTIFIER) { + buf.append( "." ).append( getToken( ptr + 1 ).image ); + ptr += 2; + } + return new IntAndObj( ptr, buf.toString() ); + } + + /** + * This is used to check io.devnulllabs.openjava user modifier semantically. + */ + private final boolean OpenJavaModifierLookahead( Environment env ) { + return modifierCheck( env, getToken( 1 ) ); + } + + /** + * This is used to check OpenJava user modifier semantically. + */ + private final boolean ModifierLookahead( Environment env ) { + return modifierCheck( env, getToken( 1 ) ); + } + + boolean DeclSuffixLookahead( Environment env ) { + String typename = env.currentClassName(); + String keyword = consumeKeyword( 1 ); + if (keyword == null) return false; + Class meta = toExecutable( env, typename ); + return invokeOJClass_isRegisteredKeyword( meta, keyword ); + } + + boolean TypeSuffixLookahead( Environment env, String typename ) { + String keyword = consumeKeyword( 1 ); + if (keyword == null) return false; + Class meta = toExecutable( env, typename ); + return invokeOJClass_isRegisteredKeyword( meta, keyword ); + } + + private static final boolean modifierCheck( Environment env, Token t ) { + if (pureModifierCheck( t )) return true; + if (t.kind != IDENTIFIER) return false; + Class meta = toExecutable( env, env.currentClassName() ); + if (meta == null) return false; + return invokeOJClass_isRegisteredModifier( meta, t.image ); + } + + private String consumeKeyword( int ptr ) { + Token token = getToken( ptr ); + if (token.kind != IDENTIFIER) return null; + return token.image; + } + + static final Class toExecutable( Environment env, String typename ) { + String qname = env.toQualifiedName( typename ); + return OJSystem.getMetabind( qname ); + } + + static boolean invokeOJClass_isRegisteredKeyword( Class meta, + String keyword ) + { + try { + Method m = meta.getMethod( "isRegisteredKeyword", + new Class[]{ String . class} ); + Boolean b = (Boolean) m.invoke( null, new Object[]{ keyword } ); + return b.booleanValue(); + } catch ( Exception e ) {} + return false; + } + + static SyntaxRule invokeOJClass_getDeclSuffixRule(Environment env, + Class meta, + String keyword) + { + SyntaxRule result = null; + try { + Method m = meta.getMethod("getDeclSuffixRule", + new Class[]{ Environment.class, + String.class }); + result = (SyntaxRule) m.invoke(null, new Object[]{ env, keyword }); + } catch (Exception e) {} /* ignore if the method not provided */ + if (result != null) return result; + try { + Method m = meta.getMethod("getDeclSuffixRule", + new Class[]{ String.class }); + result = (SyntaxRule) m.invoke(null, new Object[]{ keyword }); + } catch (Exception e) {} /* ignore if the method not provided */ + return result; + } + + static SyntaxRule invokeOJClass_getTypeSuffixRule(Environment env, + Class meta, + String keyword) + { + SyntaxRule result = null; + try { + Method m = meta.getMethod("getTypeSuffixRule", + new Class[]{ Environment.class, + String.class }); + result = (SyntaxRule) m.invoke(null, new Object[]{ env, keyword }); + } catch (Exception e) {} /* ignore if the method not provided */ + if (result != null) return result; + try { + Method m = meta.getMethod("getTypeSuffixRule", + new Class[]{ String.class}); + result = (SyntaxRule) m.invoke(null, new Object[]{ keyword }); + } catch (Exception e) {} /* ignore if the method not provided */ + return result; + } + + static boolean invokeOJClass_isRegisteredModifier( Class meta, + String keyword ) + { + try { + Method m = meta.getMethod( "isRegisteredModifier", + new Class[]{ String . class} ); + Boolean b = (Boolean) m.invoke( null, new Object[]{ keyword } ); + return b.booleanValue(); + } catch ( Exception e ) {} + return false; + } + + /** + * This is used to check constructors semantically. + */ + private final boolean ConstructorDeclarationLookahead( + ClassEnvironment env ) { + int ptr; + for (ptr = 1; modifierCheck( env, getToken( ptr ) ) ; ++ptr) ; + String simplename = Environment.toSimpleName( env.currentClassName() ); + //if (! getToken( ptr ).image.equals( simplename ) + // || getToken( ptr + 1 ).kind != LPAREN) { + // return false; + //} + //return true; + return (getToken(ptr + 1).kind == LPAREN); + } + + /** + * This will used to check local variable declaration semantically. + */ + private final boolean LocalVariableDeclarationLookahead( + Environment env ) { + int ptr; + for (ptr = 1; modifierCheck( env, getToken( ptr ) ) ; ++ptr) ; + int old_ptr = ptr; + ptr = consumePureResultType( old_ptr ); + if (ptr != old_ptr && getToken( ptr ).kind == IDENTIFIER) { + return true; + } + return false; + } + + private final boolean roughModifierCheck( Token t ) { + if (pureModifierCheck( t )) return true; + return (t.kind == IDENTIFIER); + } + + private static final boolean pureModifierCheck( Token t ) { + switch (t.kind) { + case ABSTRACT : case FINAL : case PUBLIC : case PRIVATE : + case PROTECTED : case STATIC : case TRANSIENT : case VOLATILE : + case NATIVE : case SYNCHRONIZED : + return true; + } + return false; + } + + private final boolean ConstructorInvocationLookahead() { + int ptr = 1; + while (getToken(ptr).kind != EOF) { + if (getToken(ptr).kind == SUPER + && getToken(ptr + 1).kind == LPAREN) { + return true; + } + if (getToken(ptr).kind == SEMICOLON) return false; + if (getToken(ptr).kind == RBRACE) return false; + ++ptr; + } + return false; + } + + private final boolean AssignmentLookahead() { + int ptr = 1; + switch (getToken( ptr ).kind) { + case LPAREN : + ptr = consumeParenPair( ptr ); + break; + case IDENTIFIER : + case THIS : + case SUPER : + ptr++; + break; + default : + return false; + } + for (boolean cont = true; cont;) { + switch (getToken( ptr ).kind) { + case LPAREN : + ptr = consumeParenPair( ptr ); + break; + case LBRACKET : + ptr = consumeBracketPair( ptr ); + break; + case DOT : + ptr++; + if (getToken( ptr ).kind != IDENTIFIER) return false; + ptr++; + break; + default : + cont = false; + } + } + return assignmentOperatorCheck( getToken( ptr ) ); + } + + private final int consumeParenPair( int ptr ) { + int nest = 1; + for (++ptr; nest > 0; ptr++) { + if (getToken( ptr ).kind == LPAREN) nest++; + if (getToken( ptr ).kind == RPAREN) nest--; + } + return ptr; + } + + private final int consumeBracketPair( int ptr ) { + int nest = 1; + for (++ptr; nest > 0; ptr++) { + if (getToken( ptr ).kind == LBRACKET) nest++; + if (getToken( ptr ).kind == RBRACKET) nest--; + } + return ptr; + } + + private static final boolean assignmentOperatorCheck( Token t ) { + if (t.kind == ASSIGN) return true; + if (t.kind == PLUSASSIGN) return true; + if (t.kind == MINUSASSIGN) return true; + if (t.kind == STARASSIGN) return true; + if (t.kind == SLASHASSIGN) return true; + if (t.kind == ANDASSIGN) return true; + if (t.kind == ORASSIGN) return true; + if (t.kind == XORASSIGN) return true; + if (t.kind == REMASSIGN) return true; + if (t.kind == LSHIFTASSIGN) return true; + if (t.kind == RSIGNEDSHIFTASSIGN) return true; + if (t.kind == RUNSIGNEDSHIFTASSIGN) return true; + return false; + } + + private final boolean ClassLiteralLookahead() { + int ptr = 1; + ptr = consumePureResultType( ptr ); + if (ptr == 1) return false; + /** here should be user suffix check **/ + if (getToken( ptr ).kind != DOT) return false; + if (getToken( ptr + 1 ).kind != CLASS) return false; + return true; + } + + private final int consumePureResultType( int ptr ) { + Token token = getToken( ptr ); + if (primitiveTypeCheck( token )) { + ptr++; + } else if (token.kind == IDENTIFIER) { + ptr++; + while (getToken( ptr ).kind == DOT + && getToken( ptr + 1 ).kind == IDENTIFIER) { + ptr += 2; + } + } else { + return ptr; + } + + while (getToken( ptr ).kind == LBRACKET + && getToken( ptr + 1 ).kind == RBRACKET) { + ptr += 2; + } + + return ptr; + } + + private final boolean primitiveTypeCheck( Token t ) { + if (t.kind == BOOLEAN || t.kind == CHAR || t.kind == BYTE + || t.kind == SHORT || t.kind == INT || t.kind == LONG + || t.kind == FLOAT || t.kind == DOUBLE || t.kind == VOID) { + return true; + } + return false; + } + + void debug_message1() throws ParseException { + DebugOut.println( "debug1 : " + getToken( 0 ).image + + " , " + getToken( 1 ).image ); + } + + ParseTree UserDeclSuffix(Environment env, String keyword) throws ParseException { + String typename = env.currentClassName(); + Class meta = toExecutable(env, typename); + SyntaxRule rule = invokeOJClass_getDeclSuffixRule(env, meta, keyword); + CustomTokenManager token_mgr = new CustomTokenManager(this, env); + token_mgr.assume(); + ParseTree result = rule.consume(token_mgr); + token_mgr.fix(); + return result; + } + + ParseTree UserTypeSuffix(Environment env, String typename, String keyword) throws ParseException { + Class meta = toExecutable(env, typename); + SyntaxRule rule = invokeOJClass_getTypeSuffixRule(env, meta, keyword); + CustomTokenManager token_mgr = new CustomTokenManager(this, env); + token_mgr.assume(); + ParseTree result = rule.consume(token_mgr); + token_mgr.fix(); + return result; + } + + void E() throws ParseException { + } + +/***************************************** + * Syntactical Descriptions * + *****************************************/ + +/* + * Program structuring syntax follows. + */ + final public CompilationUnit CompilationUnit(Environment base_env) throws ParseException { + CompilationUnit result; + FileEnvironment env = new FileEnvironment( base_env ); + String p1; + String[] p2; + ClassDeclarationList p3; + /**/DebugOut.println( "#CompilationUnit()" ); + String comment = getComment(); + p1 = PackageDeclarationOpt(); + p2 = ImportDeclarationListOpt(); + env.setPackage( p1 ); + for (int i = 0; i < p2.length; ++i) { + if (CompilationUnit.isOnDemandImport( p2[i] )) { + String pack_cls = CompilationUnit.trimOnDemand( p2[i] ); + env.importPackage( pack_cls ); + } else { + env.importClass( p2[i] ); + } + } + label_1: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case SEMICOLON: + ; + break; + default: + jj_la1[0] = jj_gen; + break label_1; + } + jj_consume_token(SEMICOLON); + } + p3 = TypeDeclarationListOpt(env); + jj_consume_token(0); + result = new CompilationUnit( p1, p2, p3 ); + result.setComment( comment ); + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public String PackageDeclarationOpt() throws ParseException { + String p1; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PACKAGE: + jj_consume_token(PACKAGE); + p1 = Name(); + jj_consume_token(SEMICOLON); + {if (true) return p1;} + break; + default: + jj_la1[1] = jj_gen; + E(); + {if (true) return null;} + } + throw new Error("Missing return statement in function"); + } + + final public String[] ImportDeclarationListOpt() throws ParseException { + String[] result; + String p1; + Vector v = new Vector(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IMPORT: + label_2: + while (true) { + p1 = ImportDeclaration(); + v.addElement( p1 ); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IMPORT: + ; + break; + default: + jj_la1[2] = jj_gen; + break label_2; + } + } + result = new String[v.size()]; + for (int i = 0; i < result.length; ++i) { + result[i] = (String) v.elementAt( i ); + } + {if (true) return result;} + break; + default: + jj_la1[3] = jj_gen; + E(); + {if (true) return new String[0];} + } + throw new Error("Missing return statement in function"); + } + + final public String ImportDeclaration() throws ParseException { + String p1; + StringBuffer strbuf = new StringBuffer(); + jj_consume_token(IMPORT); + Identifier(); + strbuf.append( getToken( 0 ).image ); + label_3: + while (true) { + if (jj_2_1(2)) { + ; + } else { + break label_3; + } + jj_consume_token(DOT); + Identifier(); + strbuf.append( "." + getToken( 0 ).image ); + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case DOT: + jj_consume_token(DOT); + jj_consume_token(STAR); + strbuf.append( ".*" ); + break; + default: + jj_la1[4] = jj_gen; + ; + } + jj_consume_token(SEMICOLON); + {if (true) return strbuf.toString();} + throw new Error("Missing return statement in function"); + } + + final public ClassDeclarationList TypeDeclarationListOpt(Environment env) throws ParseException { + ClassEnvironment newenv; + ClassDeclarationList result = new ClassDeclarationList(); + ClassDeclaration p1; + if ((getToken( 1 ).kind != RBRACE + && getToken( 1 ).kind != EOF)) { + label_4: + while (true) { + newenv = setClassEnvironment( env ); + p1 = TypeDeclaration(newenv); + label_5: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case SEMICOLON: + ; + break; + default: + jj_la1[5] = jj_gen; + break label_5; + } + jj_consume_token(SEMICOLON); + } + result.add( p1 ); + if ((getToken( 1 ).kind != RBRACE + && getToken( 1 ).kind != EOF)) { + ; + } else { + break label_4; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public ClassDeclaration TypeDeclaration(ClassEnvironment env) throws ParseException { + ClassDeclaration result; + ClassDeclaration p1; + Token ctoken = getToken( 1 ).specialToken; + String comment = getComment(); + if (jj_2_2(2147483647)) { + p1 = ClassDeclaration(env); + } else { + p1 = InterfaceDeclaration(env); + } + result = p1; + result.setComment( comment ); + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public String Identifier() throws ParseException { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IDENTIFIER: + jj_consume_token(IDENTIFIER); + {if (true) return getToken( 0 ).image;} + break; + case METACLASS: + jj_consume_token(METACLASS); + {if (true) return "metaclass";} + break; + default: + jj_la1[6] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public String[] MetaclassesOpt(Environment env) throws ParseException { + String[] result; + String p1; + String p2; + Vector v = new Vector(); + String qname; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case METACLASS: + jj_consume_token(METACLASS); + p1 = Name(); + qname = env.toQualifiedName( p1 ); + v.addElement( qname ); + /****/DebugOut.print( "metaclass " + qname ); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + jj_consume_token(COMMA); + p2 = Name(); + qname = env.toQualifiedName( p2 ); + /****/DebugOut.print( ", " + qname ); + break; + default: + jj_la1[7] = jj_gen; + ; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COLON: + jj_consume_token(COLON); + break; + case SEMICOLON: + jj_consume_token(SEMICOLON); + break; + default: + jj_la1[8] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + /****/DebugOut.println( " :" ); + result = new String[v.size()]; + for (int i = 0; i < result.length; ++i) { + result[i] = (String) v.elementAt( i ); + } + {if (true) return result;} + break; + default: + jj_la1[9] = jj_gen; + E(); + {if (true) return new String[0];} + } + throw new Error("Missing return statement in function"); + } + + final public String InstantiatesPhraseOpt(ClassEnvironment env) throws ParseException { + String p1 = null; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INSTANTIATES: + jj_consume_token(INSTANTIATES); + p1 = Name(); + {if (true) return p1;} + break; + default: + jj_la1[10] = jj_gen; + E(); + {if (true) return p1;} + } + throw new Error("Missing return statement in function"); + } + + final public String OpenJavaModifier() throws ParseException { + String result; + jj_consume_token(IDENTIFIER); + result = getToken( 0 ).image; + DebugOut.println( "user modifier detected : " + result ); + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Hashtable OpenJavaDeclSuffixListOpt(Environment env) throws ParseException { + Hashtable result = new Hashtable(); + String p1; + ParseTree p2; + if (DeclSuffixLookahead( env )) { + label_6: + while (true) { + p1 = Identifier(); + p2 = UserDeclSuffix(env, p1); + DebugOut.println( "decl suffix : " + p1 + " " + p2 ); + result.put( p1, p2 ); + if (DeclSuffixLookahead( env )) { + ; + } else { + break label_6; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public Hashtable OpenJavaTypeSuffixListOpt(Environment env, String typename) throws ParseException { + Hashtable result = new Hashtable(); + String p1; + ParseTree p2; + if (TypeSuffixLookahead( env, typename )) { + label_7: + while (true) { + p1 = Identifier(); + p2 = UserTypeSuffix(env, typename, p1); + DebugOut.println( "type suffix : " + p1 + " " + p2 ); + result.put( p1, p2 ); + if (TypeSuffixLookahead( env, typename )) { + ; + } else { + break label_7; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public int Modifier() throws ParseException { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ABSTRACT: + jj_consume_token(ABSTRACT); + {if (true) return ModifierList.ABSTRACT;} + break; + case FINAL: + jj_consume_token(FINAL); + {if (true) return ModifierList.FINAL;} + break; + case PUBLIC: + jj_consume_token(PUBLIC); + {if (true) return ModifierList.PUBLIC;} + break; + case PRIVATE: + jj_consume_token(PRIVATE); + {if (true) return ModifierList.PRIVATE;} + break; + case PROTECTED: + jj_consume_token(PROTECTED); + {if (true) return ModifierList.PROTECTED;} + break; + case STATIC: + jj_consume_token(STATIC); + {if (true) return ModifierList.STATIC;} + break; + case TRANSIENT: + jj_consume_token(TRANSIENT); + {if (true) return ModifierList.TRANSIENT;} + break; + case VOLATILE: + jj_consume_token(VOLATILE); + {if (true) return ModifierList.VOLATILE;} + break; + case NATIVE: + jj_consume_token(NATIVE); + {if (true) return ModifierList.NATIVE;} + break; + case SYNCHRONIZED: + jj_consume_token(SYNCHRONIZED); + {if (true) return ModifierList.SYNCHRONIZED;} + break; + default: + jj_la1[11] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + +/* + * Declaration syntax follows. + */ + final public ClassDeclaration ClassDeclaration(ClassEnvironment env) throws ParseException { + ModifierList p1; + ClassDeclaration p2; + + DebugOut.println( "#ClassDeclaration()" ); + p1 = ClassModifiersOpt(env); + p2 = UnmodifiedClassDeclaration(env); + p2.setModifiers( p1 ); + {if (true) return p2;} + throw new Error("Missing return statement in function"); + } + + final public ModifierList ClassModifiersOpt(Environment env) throws ParseException { + ModifierList result = new ModifierList(); + int p1; + String p2; + if ((getToken( 1 ).kind != CLASS)) { + label_8: + while (true) { + if (jj_2_3(2147483647)) { + p1 = Modifier(); + result.add( p1 ); + } else if (OpenJavaModifierLookahead( env )) { + p2 = OpenJavaModifier(); + result.add( p2 ); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (ModifierLookahead( env )) { + ; + } else { + break label_8; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public ClassDeclaration UnmodifiedClassDeclaration(ClassEnvironment env) throws ParseException { + ClassDeclaration result; + String p1; + TypeName[] p2; + TypeName[] p3; + MemberDeclarationList p4; + String mm; + Hashtable sf; + jj_consume_token(CLASS); + p1 = Identifier(); + mm = InstantiatesPhraseOpt(env); + p2 = ExtendsPhraseOpt(env); + p3 = ImplementsPhraseOpt(env); + sf = OpenJavaDeclSuffixListOpt(env); + p4 = ClassBody(env); + result = new ClassDeclaration( null, p1, p2, p3, p4 ); + result.setSuffixes( sf ); + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public TypeName[] ExtendsPhraseOpt(Environment env) throws ParseException { + TypeName[] p1; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case EXTENDS: + jj_consume_token(EXTENDS); + p1 = TypeNameList(env); + {if (true) return p1;} + break; + default: + jj_la1[12] = jj_gen; + E(); + {if (true) return null;} + } + throw new Error("Missing return statement in function"); + } + + final public TypeName[] ImplementsPhraseOpt(Environment env) throws ParseException { + TypeName[] p1; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IMPLEMENTS: + jj_consume_token(IMPLEMENTS); + p1 = TypeNameList(env); + {if (true) return p1;} + break; + default: + jj_la1[13] = jj_gen; + E(); + {if (true) return null;} + } + throw new Error("Missing return statement in function"); + } + + final public MemberDeclarationList ClassBody(ClassEnvironment env) throws ParseException { + MemberDeclarationList p1; + + DebugOut.println( "#ClassBody()" ); + jj_consume_token(LBRACE); + label_9: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case SEMICOLON: + ; + break; + default: + jj_la1[14] = jj_gen; + break label_9; + } + jj_consume_token(SEMICOLON); + } + p1 = ClassBodyDeclarationListOpt(env); + jj_consume_token(RBRACE); + {if (true) return p1;} + throw new Error("Missing return statement in function"); + } + + final public MemberDeclarationList ClassBodyDeclarationListOpt(ClassEnvironment env) throws ParseException { + MemberDeclarationList result = new MemberDeclarationList(); + MemberDeclarationList p1; + if ((getToken( 1 ).kind != RBRACE)) { + label_10: + while (true) { + p1 = ClassBodyDeclaration(env); + label_11: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case SEMICOLON: + ; + break; + default: + jj_la1[15] = jj_gen; + break label_11; + } + jj_consume_token(SEMICOLON); + } + result.addAll( p1 ); + if ((getToken( 1 ).kind != RBRACE)) { + ; + } else { + break label_10; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public ClassDeclaration NestedTypeDeclaration(ClassEnvironment env) throws ParseException { + ClassDeclaration result; + ClassDeclaration p1; + Token ctoken = getToken( 1 ).specialToken; + String comment = getComment(); + if (jj_2_4(2147483647)) { + p1 = NestedClassDeclaration(env); + } else { + p1 = NestedInterfaceDeclaration(env); + } + result = p1; + result.setComment( comment ); + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public ClassDeclaration NestedClassDeclaration(ClassEnvironment env) throws ParseException { + ModifierList p1; + ClassDeclaration p2; + + DebugOut.println( "#NestedClassDeclaration()" ); + p1 = NestedClassModifiersOpt(env); + p2 = UnmodifiedClassDeclaration(env); + p2.setModifiers( p1 ); + {if (true) return p2;} + throw new Error("Missing return statement in function"); + } + + final public ModifierList NestedClassModifiersOpt(ClassEnvironment env) throws ParseException { + ModifierList result = new ModifierList(); + int p1; + String p2; + if ((getToken( 1 ).kind != CLASS)) { + label_12: + while (true) { + if (jj_2_5(2147483647)) { + p1 = Modifier(); + result.add( p1 ); + } else if (OpenJavaModifierLookahead( env )) { + p2 = OpenJavaModifier(); + result.add( p2 ); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (ModifierLookahead( env )) { + ; + } else { + break label_12; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public MemberDeclarationList ClassBodyDeclaration(ClassEnvironment env) throws ParseException { + ClassEnvironment newenv; + MemberDeclarationList result; + MemberDeclaration p1; + MemberDeclarationList p2; + if (jj_2_6(2147483647)) { + p1 = MemberInitializer(env); + result = new MemberDeclarationList( p1 ); + {if (true) return result;} + } else if (jj_2_7(2147483647)) { + newenv = setClassEnvironment( env ); + p1 = NestedTypeDeclaration(newenv); + result = new MemberDeclarationList( p1 ); + {if (true) return result;} + } else if (ConstructorDeclarationLookahead( env )) { + p1 = ConstructorDeclaration(env); + result = new MemberDeclarationList( p1 ); + {if (true) return result;} + } else { + p2 = MethodOrFieldDeclaration(env); + {if (true) return p2;} + } + throw new Error("Missing return statement in function"); + } + + final public MemberDeclarationList MethodOrFieldDeclaration(Environment base_env) throws ParseException { + Environment env = new ClosedEnvironment( base_env ); + MemberDeclarationList result = new MemberDeclarationList(); + ModifierList p1; + TypeName p2; + String p3; + ParameterList p4; + int p5; + TypeName[] p6; + StatementList p7; + VariableDeclarator p8; + Hashtable sf; + Token ctoken = getToken( 1 ).specialToken; + String comment = getComment(); + p1 = MemberModifiersOpt(base_env); + p2 = Type(base_env); + if (jj_2_8(2147483647)) { + p3 = Identifier(); + p4 = FormalParameters(env); + p5 = EmptyBracketsOpt(); + p6 = ThrowsPhraseOpt(base_env); + sf = OpenJavaDeclSuffixListOpt(env); + p7 = MethodBody(env); + p2.addDimension( p5 ); + MethodDeclaration mthd + = new MethodDeclaration( p1, p2, p3, p4, p6, p7 ); + mthd.setSuffixes( sf ); + mthd.setComment( comment ); + result.add( mthd ); + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case METACLASS: + case IDENTIFIER: + p8 = VariableDeclarator(base_env); + FieldDeclaration fld1 = new FieldDeclaration( p1, p2, p8 ); + fld1.setComment( comment ); + result.add( fld1 ); + label_13: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[16] = jj_gen; + break label_13; + } + jj_consume_token(COMMA); + p8 = VariableDeclarator(env); + FieldDeclaration fld2 = new FieldDeclaration( p1, p2, p8 ); + fld2.setComment( comment ); + result.add( fld2 ); + } + jj_consume_token(SEMICOLON); + break; + default: + jj_la1[17] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public TypeName[] ThrowsPhraseOpt(Environment env) throws ParseException { + TypeName[] p1; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case THROWS: + jj_consume_token(THROWS); + p1 = TypeNameList(env); + {if (true) return p1;} + break; + default: + jj_la1[18] = jj_gen; + E(); + {if (true) return null;} + } + throw new Error("Missing return statement in function"); + } + + final public StatementList MethodBody(Environment env) throws ParseException { + StatementList p1; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACE: + p1 = BlockedBody(env); + {if (true) return p1;} + break; + case SEMICOLON: + jj_consume_token(SEMICOLON); + {if (true) return null;} + break; + default: + jj_la1[19] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public ModifierList MemberModifiersOpt(Environment env) throws ParseException { + ModifierList result = new ModifierList(); + int p1; + String p2; + if (modifierCheck( env, getToken( 1 ) )) { + label_14: + while (true) { + if (jj_2_9(2147483647)) { + p1 = Modifier(); + result.add( p1 ); + } else if (OpenJavaModifierLookahead( env )) { + p2 = OpenJavaModifier(); + result.add( p2 ); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (ModifierLookahead( env )) { + ; + } else { + break label_14; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public ClassDeclaration InterfaceDeclaration(ClassEnvironment env) throws ParseException { + ModifierList p1; + ClassDeclaration p2; + + DebugOut.println( "#InterfaceDeclaration()" ); + p1 = InterfaceModifiersOpt(env); + p2 = UnmodifiedInterfaceDeclaration(env); + p2.setModifiers( p1 ); + {if (true) return p2;} + throw new Error("Missing return statement in function"); + } + + final public ModifierList InterfaceModifiersOpt(Environment env) throws ParseException { + ModifierList result = new ModifierList(); + int p1; + String p2; + if ((getToken( 1 ).kind != INTERFACE)) { + label_15: + while (true) { + if (jj_2_10(2147483647)) { + p1 = Modifier(); + result.add( p1 ); + } else if (OpenJavaModifierLookahead( env )) { + p2 = OpenJavaModifier(); + result.add( p2 ); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (ModifierLookahead( env )) { + ; + } else { + break label_15; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public ClassDeclaration NestedInterfaceDeclaration(ClassEnvironment env) throws ParseException { + ModifierList p1; + ClassDeclaration p2; + + DebugOut.println( "#NestedInterfaceDeclaration()" ); + p1 = NestedInterfaceModifiersOpt(env); + p2 = UnmodifiedInterfaceDeclaration(env); + p2.setModifiers( p1 ); + {if (true) return p2;} + throw new Error("Missing return statement in function"); + } + + final public ModifierList NestedInterfaceModifiersOpt(ClassEnvironment env) throws ParseException { + ModifierList result = new ModifierList(); + int p1; + String p2; + if ((getToken( 1 ).kind != INTERFACE)) { + label_16: + while (true) { + if (jj_2_11(2147483647)) { + p1 = Modifier(); + result.add( p1 ); + } else if (OpenJavaModifierLookahead( env )) { + p2 = OpenJavaModifier(); + result.add( p2 ); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (ModifierLookahead( env )) { + ; + } else { + break label_16; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public ClassDeclaration UnmodifiedInterfaceDeclaration(ClassEnvironment env) throws ParseException { + ClassDeclaration result; + String p1; + TypeName[] p2; + MemberDeclarationList p3; + String mm; + Hashtable sf; + jj_consume_token(INTERFACE); + p1 = Identifier(); + mm = InstantiatesPhraseOpt(env); + p2 = ExtendsPhraseOpt(env); + sf = OpenJavaDeclSuffixListOpt(env); + p3 = InterfaceBody(env); + result = new ClassDeclaration( null, p1, p2, null, p3, false ); + result.setSuffixes( sf ); + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public MemberDeclarationList InterfaceBody(ClassEnvironment env) throws ParseException { + MemberDeclarationList p1; + jj_consume_token(LBRACE); + p1 = InterfaceBodyDeclarationListOpt(env); + jj_consume_token(RBRACE); + {if (true) return p1;} + throw new Error("Missing return statement in function"); + } + + final public MemberDeclarationList InterfaceBodyDeclarationListOpt(ClassEnvironment env) throws ParseException { + MemberDeclarationList result = new MemberDeclarationList(); + MemberDeclarationList p1; + if ((getToken( 1 ).kind != RBRACE)) { + label_17: + while (true) { + p1 = InterfaceBodyDeclaration(env); + result.addAll( p1 ); + if ((getToken( 1 ).kind != RBRACE)) { + ; + } else { + break label_17; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public MemberDeclarationList InterfaceBodyDeclaration(ClassEnvironment env) throws ParseException { + ClassEnvironment newenv; + MemberDeclarationList result; + ClassDeclaration p1; + MemberDeclarationList p2; + if (jj_2_12(2147483647)) { + newenv = setClassEnvironment( env ); + p1 = NestedTypeDeclaration(newenv); + result = new MemberDeclarationList( p1 ); + {if (true) return result;} + } else { + p2 = MethodOrFieldDeclaration(env); + {if (true) return p2;} + } + throw new Error("Missing return statement in function"); + } + + final public VariableDeclarator VariableDeclarator(Environment env) throws ParseException { + String p1; + int p2; + VariableInitializer p3 = null; + p1 = Identifier(); + p2 = EmptyBracketsOpt(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ASSIGN: + jj_consume_token(ASSIGN); + p3 = VariableInitializer(env); + break; + default: + jj_la1[20] = jj_gen; + ; + } + {if (true) return new VariableDeclarator( p1, p2, p3 );} + throw new Error("Missing return statement in function"); + } + + final public int EmptyBracketsOpt() throws ParseException { + int result = 0; + if (jj_2_14(2147483647)) { + label_18: + while (true) { + jj_consume_token(LBRACKET); + jj_consume_token(RBRACKET); + result++; + if (jj_2_13(2)) { + ; + } else { + break label_18; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public VariableInitializer VariableInitializer(Environment env) throws ParseException { + VariableInitializer p1; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACE: + p1 = ArrayInitializer(env); + {if (true) return p1;} + break; + default: + jj_la1[21] = jj_gen; + if (jj_2_15(1)) { + p1 = Expression(env); + {if (true) return p1;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } + + final public ArrayInitializer ArrayInitializer(Environment env) throws ParseException { + ArrayInitializer result = new ArrayInitializer(); + VariableInitializer p1; + jj_consume_token(LBRACE); + if ((getToken( 1 ).kind != RBRACE + && getToken( 1 ).kind != COMMA)) { + p1 = VariableInitializer(env); + result.add( p1 ); + label_19: + while (true) { + if ((getToken( 1 ).kind == COMMA + && getToken( 2 ).kind != RBRACE)) { + ; + } else { + break label_19; + } + jj_consume_token(COMMA); + p1 = VariableInitializer(env); + result.add( p1 ); + } + } else { + ; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + jj_consume_token(COMMA); + result.omitRemainder( true ); + break; + default: + jj_la1[22] = jj_gen; + ; + } + jj_consume_token(RBRACE); + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public ParameterList FormalParameters(Environment env) throws ParseException { + ParameterList result = new ParameterList(); + Parameter p1; + + DebugOut.println( "#FormalParameters()" ); + jj_consume_token(LPAREN); + if ((getToken( 1 ).kind != RPAREN)) { + p1 = FormalParameter(env); + result.add( p1 ); + label_20: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[23] = jj_gen; + break label_20; + } + jj_consume_token(COMMA); + p1 = FormalParameter(env); + result.add( p1 ); + } + } else { + ; + } + jj_consume_token(RPAREN); + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Parameter FormalParameter(Environment env) throws ParseException { + ModifierList p1; + TypeName p2; + String p3; + int p4; + DebugOut.println( "#FormalParameter()" ); + p1 = FormalParameterModifiersOpt(env); + p2 = Type(env); + p3 = Identifier(); + p4 = EmptyBracketsOpt(); + p2.addDimension( p4 ); + /* binds the parameter variable as the null type */ + env.bindVariable(p3, OJSystem.NULLTYPE); + {if (true) return new Parameter( p1, p2, p3 );} + throw new Error("Missing return statement in function"); + } + + final public ModifierList FormalParameterModifiersOpt(Environment env) throws ParseException { + ModifierList result = new ModifierList(); + int p1; + String p2; + if (modifierCheck( env, getToken( 1 ) )) { + label_21: + while (true) { + if (jj_2_16(2147483647)) { + p1 = Modifier(); + result.add( p1 ); + } else if (OpenJavaModifierLookahead( env )) { + p2 = OpenJavaModifier(); + result.add( p2 ); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (ModifierLookahead( env )) { + ; + } else { + break label_21; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public ConstructorDeclaration ConstructorDeclaration(Environment base_env) throws ParseException { + Environment env = new ClosedEnvironment( base_env ); + ConstructorDeclaration result; + ModifierList p1; + String p2; + ParameterList p3; + TypeName[] p4; + ConstructorInvocation p5; + StatementList p6; + Hashtable sf; + + DebugOut.println( "#ConstructorDeclaration()" ); + p1 = ConstructorModifiersOpt(base_env); + p2 = Identifier(); + p3 = FormalParameters(env); + p4 = ThrowsPhraseOpt(base_env); + sf = OpenJavaDeclSuffixListOpt(env); + jj_consume_token(LBRACE); + p5 = ExplicitConstructorInvocationOpt(env); + p6 = BlockOrStatementListOpt(env); + jj_consume_token(RBRACE); + result = new ConstructorDeclaration( p1, p2, p3, p4, p5, p6 ); + result.setSuffixes( sf ); + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public ModifierList ConstructorModifiersOpt(Environment env) throws ParseException { + ModifierList result = new ModifierList(); + int p1; + String p2; + if (jj_2_17(2147483647)) { + p1 = Modifier(); + result.add( p1 ); + label_22: + while (true) { + if (OpenJavaModifierLookahead( env )) { + ; + } else { + break label_22; + } + p2 = OpenJavaModifier(); + result.add( p2 ); + } + {if (true) return result;} + } else if (OpenJavaModifierLookahead( env )) { + label_23: + while (true) { + p2 = OpenJavaModifier(); + result.add( p2 ); + if (OpenJavaModifierLookahead( env )) { + ; + } else { + break label_23; + } + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ABSTRACT: + case FINAL: + case NATIVE: + case PRIVATE: + case PROTECTED: + case PUBLIC: + case STATIC: + case SYNCHRONIZED: + case TRANSIENT: + case VOLATILE: + p1 = Modifier(); + result.add( p1 ); + label_24: + while (true) { + if (OpenJavaModifierLookahead( env )) { + ; + } else { + break label_24; + } + p2 = OpenJavaModifier(); + result.add( p2 ); + } + break; + default: + jj_la1[24] = jj_gen; + ; + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public ConstructorInvocation ExplicitConstructorInvocationOpt(Environment env) throws ParseException { + ExpressionList p1; + Expression p2 = null; + + DebugOut.println( "#ExplicitConstructorInvocationOpt()" ); + if (jj_2_18(2147483647)) { + jj_consume_token(THIS); + p1 = Arguments(env); + jj_consume_token(SEMICOLON); + {if (true) return new ConstructorInvocation( p1 );} + } else if (ConstructorInvocationLookahead()) { + if ((getToken( 1 ).kind != SUPER)) { + p2 = PrimaryExpression(env); + jj_consume_token(DOT); + } else { + ; + } + jj_consume_token(SUPER); + p1 = Arguments(env); + jj_consume_token(SEMICOLON); + {if (true) return new ConstructorInvocation( p1, p2 );} + } else { + E(); + {if (true) return null;} + } + throw new Error("Missing return statement in function"); + } + + final public MemberInitializer MemberInitializer(Environment env) throws ParseException { + MemberInitializer result; + StatementList p1; + boolean is_static = false; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STATIC: + jj_consume_token(STATIC); + is_static = true; + break; + default: + jj_la1[25] = jj_gen; + ; + } + p1 = BlockedBody(env); + if (is_static) { + result = new MemberInitializer( p1, true ); + } else { + result = new MemberInitializer( p1 ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + +/* + * Type, name and expression syntax follows. + */ + final public TypeName Type(Environment env) throws ParseException { + TypeName result; + String p1; + Hashtable p2; + int p3; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case BOOLEAN: + case BYTE: + case CHAR: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case SHORT: + case VOID: + p1 = PrimitiveType(); + break; + case METACLASS: + case IDENTIFIER: + p1 = Name(); + break; + default: + jj_la1[26] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + p2 = OpenJavaTypeSuffixListOpt(env, p1); + p3 = EmptyBracketsOpt(); + result = new TypeName( p1, p3, p2 ); + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public String PrimitiveType() throws ParseException { + String result; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case BOOLEAN: + jj_consume_token(BOOLEAN); + break; + case CHAR: + jj_consume_token(CHAR); + break; + case BYTE: + jj_consume_token(BYTE); + break; + case SHORT: + jj_consume_token(SHORT); + break; + case INT: + jj_consume_token(INT); + break; + case LONG: + jj_consume_token(LONG); + break; + case FLOAT: + jj_consume_token(FLOAT); + break; + case DOUBLE: + jj_consume_token(DOUBLE); + break; + case VOID: + jj_consume_token(VOID); + break; + default: + jj_la1[27] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + result = getToken( 0 ).image; + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public String Name() throws ParseException { + String p1; + StringBuffer strbuf = null; + p1 = Identifier(); + strbuf = new StringBuffer( p1 ); + label_25: + while (true) { + if (jj_2_19(2)) { + ; + } else { + break label_25; + } + jj_consume_token(DOT); + p1 = Identifier(); + strbuf.append( "." + p1 ); + } + {if (true) return strbuf.toString();} + throw new Error("Missing return statement in function"); + } + + final public TypeName TypeName(Environment env) throws ParseException { + TypeName result; + String p1; + Hashtable p2; + p1 = Name(); + p2 = OpenJavaTypeSuffixListOpt(env, p1); + result = new TypeName( p1, p2 ); + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public TypeName[] TypeNameList(Environment env) throws ParseException { + TypeName[] result; + TypeName p1; + Vector v = new Vector(); + p1 = TypeName(env); + v.addElement( p1 ); + label_26: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[28] = jj_gen; + break label_26; + } + jj_consume_token(COMMA); + p1 = TypeName(env); + v.addElement( p1 ); + } + result = new TypeName[v.size()]; + for (int i = 0; i < result.length; ++i) { + result[i] = (TypeName) v.elementAt( i ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public TypeName[] TypeNameListOpt(Environment env) throws ParseException { + TypeName[] result; + TypeName p1; + Vector v = new Vector(); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case METACLASS: + case IDENTIFIER: + p1 = TypeName(env); + v.addElement( p1 ); + label_27: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[29] = jj_gen; + break label_27; + } + jj_consume_token(COMMA); + p1 = TypeName(env); + v.addElement( p1 ); + } + result = new TypeName[v.size()]; + for (int i = 0; i < result.length; ++i) { + result[i] = (TypeName) v.elementAt( i ); + } + {if (true) return result;} + break; + default: + jj_la1[30] = jj_gen; + E(); + {if (true) return new TypeName[0];} + } + throw new Error("Missing return statement in function"); + } + +/* + * Expression syntax follows. + */ + final public Expression Expression(Environment env) throws ParseException { + Expression result; + Expression p1; + String p2 = null; + Expression p3 = null; + + DebugOut.println( "#Expression()" ); + p1 = ConditionalExpression(env); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ASSIGN: + case PLUSASSIGN: + case MINUSASSIGN: + case STARASSIGN: + case SLASHASSIGN: + case ANDASSIGN: + case ORASSIGN: + case XORASSIGN: + case REMASSIGN: + case LSHIFTASSIGN: + case RSIGNEDSHIFTASSIGN: + case RUNSIGNEDSHIFTASSIGN: + p2 = AssignmentOperator(); + p3 = Expression(env); + break; + default: + jj_la1[31] = jj_gen; + ; + } + if (p2 != null) { + result = new AssignmentExpression( p1, p2, p3 ); + } else { + result = p1; + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public AssignmentExpression AssignmentExpression(Environment env) throws ParseException { + Expression p1; + String p2; + Expression p3; + + DebugOut.println( "#AssignmentExpression()" ); + p1 = PrimaryExpression(env); + p2 = AssignmentOperator(); + p3 = Expression(env); + {if (true) return new AssignmentExpression( p1, p2, p3 );} + throw new Error("Missing return statement in function"); + } + + final public String AssignmentOperator() throws ParseException { + String result; + + DebugOut.println( "#AssignmentOperator()" ); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ASSIGN: + jj_consume_token(ASSIGN); + break; + case STARASSIGN: + jj_consume_token(STARASSIGN); + break; + case SLASHASSIGN: + jj_consume_token(SLASHASSIGN); + break; + case REMASSIGN: + jj_consume_token(REMASSIGN); + break; + case PLUSASSIGN: + jj_consume_token(PLUSASSIGN); + break; + case MINUSASSIGN: + jj_consume_token(MINUSASSIGN); + break; + case LSHIFTASSIGN: + jj_consume_token(LSHIFTASSIGN); + break; + case RSIGNEDSHIFTASSIGN: + jj_consume_token(RSIGNEDSHIFTASSIGN); + break; + case RUNSIGNEDSHIFTASSIGN: + jj_consume_token(RUNSIGNEDSHIFTASSIGN); + break; + case ANDASSIGN: + jj_consume_token(ANDASSIGN); + break; + case XORASSIGN: + jj_consume_token(XORASSIGN); + break; + case ORASSIGN: + jj_consume_token(ORASSIGN); + break; + default: + jj_la1[32] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + result = getToken( 0 ).image; + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression ConditionalExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + Expression p2 = null; + Expression p3 = null; + p1 = ConditionalOrExpression(env); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case HOOK: + jj_consume_token(HOOK); + p2 = Expression(env); + jj_consume_token(COLON); + p3 = ConditionalExpression(env); + break; + default: + jj_la1[33] = jj_gen; + ; + } + if (p2 != null) { + result = new ConditionalExpression( p1, p2, p3 ); + } else { + result = p1; + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression ConditionalOrExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + String p2; + Expression p3; + p1 = ConditionalAndExpression(env); + result = p1; + label_28: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case SC_OR: + ; + break; + default: + jj_la1[34] = jj_gen; + break label_28; + } + jj_consume_token(SC_OR); + p2 = getToken( 0 ).image; + p3 = ConditionalAndExpression(env); + result = new BinaryExpression( result, p2, p3 ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression ConditionalAndExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + String p2; + Expression p3; + p1 = InclusiveOrExpression(env); + result = p1; + label_29: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case SC_AND: + ; + break; + default: + jj_la1[35] = jj_gen; + break label_29; + } + jj_consume_token(SC_AND); + p2 = getToken( 0 ).image; + p3 = InclusiveOrExpression(env); + result = new BinaryExpression( result, p2, p3 ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression InclusiveOrExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + String p2; + Expression p3; + p1 = ExclusiveOrExpression(env); + result = p1; + label_30: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case BIT_OR: + ; + break; + default: + jj_la1[36] = jj_gen; + break label_30; + } + jj_consume_token(BIT_OR); + p2 = getToken( 0 ).image; + p3 = ExclusiveOrExpression(env); + result = new BinaryExpression( result, p2, p3 ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression ExclusiveOrExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + String p2; + Expression p3; + p1 = AndExpression(env); + result = p1; + label_31: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case XOR: + ; + break; + default: + jj_la1[37] = jj_gen; + break label_31; + } + jj_consume_token(XOR); + p2 = getToken( 0 ).image; + p3 = AndExpression(env); + result = new BinaryExpression( result, p2, p3 ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression AndExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + String p2; + Expression p3; + p1 = EqualityExpression(env); + result = p1; + label_32: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case BIT_AND: + ; + break; + default: + jj_la1[38] = jj_gen; + break label_32; + } + jj_consume_token(BIT_AND); + p2 = getToken( 0 ).image; + p3 = EqualityExpression(env); + result = new BinaryExpression( result, p2, p3 ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression EqualityExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + String p2; + Expression p3; + + DebugOut.println( "#EqualityExpression()" ); + p1 = InstanceofExpression(env); + result = p1; + label_33: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case EQ: + case NE: + ; + break; + default: + jj_la1[39] = jj_gen; + break label_33; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case EQ: + jj_consume_token(EQ); + break; + case NE: + jj_consume_token(NE); + break; + default: + jj_la1[40] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + p2 = getToken( 0 ).image; + p3 = InstanceofExpression(env); + result = new BinaryExpression( result, p2, p3 ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression InstanceofExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + TypeName p2 = null; + p1 = RelationalExpression(env); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INSTANCEOF: + jj_consume_token(INSTANCEOF); + p2 = Type(env); + break; + default: + jj_la1[41] = jj_gen; + ; + } + if (p2 != null) { + result = new InstanceofExpression( p1, p2 ); + } else { + result = p1; + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression RelationalExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + String p2; + Expression p3; + p1 = ShiftExpression(env); + result = p1; + label_34: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case GT: + case LT: + case LE: + case GE: + ; + break; + default: + jj_la1[42] = jj_gen; + break label_34; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LT: + jj_consume_token(LT); + break; + case GT: + jj_consume_token(GT); + break; + case LE: + jj_consume_token(LE); + break; + case GE: + jj_consume_token(GE); + break; + default: + jj_la1[43] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + p2 = getToken( 0 ).image; + p3 = ShiftExpression(env); + result = new BinaryExpression( result, p2, p3 ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression ShiftExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + String p2; + Expression p3; + p1 = AdditiveExpression(env); + result = p1; + label_35: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LSHIFT: + case RSIGNEDSHIFT: + case RUNSIGNEDSHIFT: + ; + break; + default: + jj_la1[44] = jj_gen; + break label_35; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LSHIFT: + jj_consume_token(LSHIFT); + break; + case RSIGNEDSHIFT: + jj_consume_token(RSIGNEDSHIFT); + break; + case RUNSIGNEDSHIFT: + jj_consume_token(RUNSIGNEDSHIFT); + break; + default: + jj_la1[45] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + p2 = getToken( 0 ).image; + p3 = AdditiveExpression(env); + result = new BinaryExpression( result, p2, p3 ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression AdditiveExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + String p2; + Expression p3; + p1 = MultiplicativeExpression(env); + result = p1; + label_36: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PLUS: + case MINUS: + ; + break; + default: + jj_la1[46] = jj_gen; + break label_36; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PLUS: + jj_consume_token(PLUS); + break; + case MINUS: + jj_consume_token(MINUS); + break; + default: + jj_la1[47] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + p2 = getToken( 0 ).image; + p3 = MultiplicativeExpression(env); + result = new BinaryExpression( result, p2, p3 ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression MultiplicativeExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + String p2; + Expression p3; + p1 = UnaryExpression(env); + result = p1; + label_37: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STAR: + case SLASH: + case REM: + ; + break; + default: + jj_la1[48] = jj_gen; + break label_37; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case STAR: + jj_consume_token(STAR); + break; + case SLASH: + jj_consume_token(SLASH); + break; + case REM: + jj_consume_token(REM); + break; + default: + jj_la1[49] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + p2 = getToken( 0 ).image; + p3 = UnaryExpression(env); + result = new BinaryExpression( result, p2, p3 ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression UnaryExpression(Environment env) throws ParseException { + int p1; + Expression p2; + if (jj_2_20(2147483647)) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case PLUS: + jj_consume_token(PLUS); + p1 = UnaryExpression.PLUS; + break; + case MINUS: + jj_consume_token(MINUS); + p1 = UnaryExpression.MINUS; + break; + default: + jj_la1[50] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + p2 = UnaryExpression(env); + {if (true) return new UnaryExpression( p1, p2 );} + } else if (jj_2_21(2147483647)) { + p2 = PreIncrementExpression(env); + {if (true) return p2;} + } else if (jj_2_22(1)) { + p2 = UnaryExpressionNotPlusMinus(env); + {if (true) return p2;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public Expression PreIncrementExpression(Environment env) throws ParseException { + int p1; + Expression p2; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INCR: + jj_consume_token(INCR); + p1 = UnaryExpression.PRE_INCREMENT; + break; + case DECR: + jj_consume_token(DECR); + p1 = UnaryExpression.PRE_DECREMENT; + break; + default: + jj_la1[51] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + p2 = PrimaryExpression(env); + {if (true) return new UnaryExpression( p1, p2 );} + throw new Error("Missing return statement in function"); + } + + final public Expression UnaryExpressionNotPlusMinus(Environment env) throws ParseException { + int p1; + Expression p2; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case BANG: + case TILDE: + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case TILDE: + jj_consume_token(TILDE); + p1 = UnaryExpression.BIT_NOT; + break; + case BANG: + jj_consume_token(BANG); + p1 = UnaryExpression.NOT; + break; + default: + jj_la1[52] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + p2 = UnaryExpression(env); + {if (true) return new UnaryExpression( p1, p2 );} + break; + default: + jj_la1[53] = jj_gen; + if (jj_2_23(2147483647)) { + p2 = CastExpression(env); + {if (true) return p2;} + } else if (jj_2_24(1)) { + p2 = PostfixExpression(env); + {if (true) return p2;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } + + final public void CastLookahead(Environment env) throws ParseException { + if (jj_2_25(2)) { + jj_consume_token(LPAREN); + PrimitiveType(); + } else if (jj_2_26(2147483647)) { + jj_consume_token(LPAREN); + Name(); + jj_consume_token(LBRACKET); + jj_consume_token(RBRACKET); + } else if (jj_2_27(2147483647)) { + jj_consume_token(LPAREN); + Name(); + jj_consume_token(RPAREN); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case TILDE: + jj_consume_token(TILDE); + break; + case BANG: + jj_consume_token(BANG); + break; + case LPAREN: + jj_consume_token(LPAREN); + break; + case METACLASS: + case IDENTIFIER: + Identifier(); + break; + case THIS: + jj_consume_token(THIS); + break; + case SUPER: + jj_consume_token(SUPER); + break; + case NEW: + jj_consume_token(NEW); + break; + case FALSE: + case NULL: + case TRUE: + case INTEGER_LITERAL: + case LONG_LITERAL: + case DOUBLE_FLOATING_POINT_LITERAL: + case FLOATING_POINT_LITERAL: + case CHARACTER_LITERAL: + case STRING_LITERAL: + Literal(); + break; + default: + jj_la1[54] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LPAREN: + jj_consume_token(LPAREN); + Name(); + Identifier(); + break; + default: + jj_la1[55] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + } + + final public Expression PostfixExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + int p2 = -1; + p1 = PrimaryExpression(env); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INCR: + case DECR: + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INCR: + jj_consume_token(INCR); + p2 = UnaryExpression.POST_INCREMENT; + break; + case DECR: + jj_consume_token(DECR); + p2 = UnaryExpression.POST_DECREMENT; + break; + default: + jj_la1[56] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + break; + default: + jj_la1[57] = jj_gen; + ; + } + if (p2 != -1) { + result = new UnaryExpression( p1, p2 ); + } else { + result = p1; + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public CastExpression CastExpression(Environment env) throws ParseException { + TypeName p1; + Expression p2; + + DebugOut.println( "#CastExpression()" ); + if (jj_2_28(2147483647)) { + jj_consume_token(LPAREN); + p1 = Type(env); + jj_consume_token(RPAREN); + p2 = UnaryExpression(env); + {if (true) return new CastExpression( p1, p2 );} + } else if (jj_2_29(2147483647)) { + jj_consume_token(LPAREN); + p1 = Type(env); + jj_consume_token(RPAREN); + p2 = UnaryExpressionNotPlusMinus(env); + {if (true) return new CastExpression( p1, p2 );} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public Expression SelfAccess(Environment env) throws ParseException { + Expression result; + String p1 = null; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case METACLASS: + case IDENTIFIER: + p1 = Name(); + jj_consume_token(DOT); + break; + default: + jj_la1[58] = jj_gen; + ; + } + jj_consume_token(THIS); + if (p1 != null) { + result = SelfAccess.makeThis( p1 ); + } else { + result = SelfAccess.constantThis(); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public ClassLiteral ClassLiteral(Environment env) throws ParseException { + TypeName p1; + p1 = Type(env); + jj_consume_token(DOT); + jj_consume_token(CLASS); + {if (true) return new ClassLiteral( p1 );} + throw new Error("Missing return statement in function"); + } + + final public Expression PrimaryExpression(Environment env) throws ParseException { + Expression result; + Expression p1; + Expression p2; + Expression p3; + String p4; + ExpressionList p5; + p1 = PrimaryPrefix(env); + result = p1; + label_38: + while (true) { + if (jj_2_30(2147483647)) { + ; + } else { + break label_38; + } + if (jj_2_31(2147483647)) { + jj_consume_token(DOT); + p2 = AllocationExpression(env); + AllocationExpression alloc = (AllocationExpression) p2; + alloc.setEncloser( result ); + result = alloc; + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACKET: + jj_consume_token(LBRACKET); + p3 = Expression(env); + jj_consume_token(RBRACKET); + result = new ArrayAccess( result, p3 ); + break; + case DOT: + jj_consume_token(DOT); + p4 = Identifier(); + result = new FieldAccess( result, p4 ); + break; + case LPAREN: + p5 = Arguments(env); + FieldAccess base = (FieldAccess) result; + Expression expr = base.getReferenceExpr(); + String name = base.getName(); + result = new MethodCall( expr, name, p5 ); + break; + default: + jj_la1[59] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression PrimaryPrefix(Environment env) throws ParseException { + Expression p1; + String p2; + + DebugOut.println( "#PrimaryPrefix()" ); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case FALSE: + case NULL: + case TRUE: + case INTEGER_LITERAL: + case LONG_LITERAL: + case DOUBLE_FLOATING_POINT_LITERAL: + case FLOATING_POINT_LITERAL: + case CHARACTER_LITERAL: + case STRING_LITERAL: + p1 = Literal(); + {if (true) return p1;} + break; + default: + jj_la1[60] = jj_gen; + if (jj_2_32(2147483647)) { + p1 = SelfAccess(env); + {if (true) return p1;} + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case SUPER: + jj_consume_token(SUPER); + jj_consume_token(DOT); + p2 = Identifier(); + {if (true) return new FieldAccess( SelfAccess.constantSuper(), p2 );} + break; + case LPAREN: + jj_consume_token(LPAREN); + p1 = Expression(env); + jj_consume_token(RPAREN); + {if (true) return p1;} + break; + case NEW: + p1 = AllocationExpression(env); + {if (true) return p1;} + break; + default: + jj_la1[61] = jj_gen; + if (ClassLiteralLookahead()) { + p1 = ClassLiteral(env); + {if (true) return p1;} + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case METACLASS: + case IDENTIFIER: + p1 = TempFieldAccess(env); + {if (true) return p1;} + break; + default: + jj_la1[62] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + } + } + } + throw new Error("Missing return statement in function"); + } + + final public FieldAccess TempFieldAccess(Environment env) throws ParseException { + FieldAccess result; + String p1; + StringBuffer strbuf = null; + p1 = Identifier(); + label_39: + while (true) { + if (jj_2_33(2147483647)) { + ; + } else { + break label_39; + } + jj_consume_token(DOT); + if (strbuf == null) { + strbuf = new StringBuffer( p1 ); + } else { + strbuf.append( "." + p1 ); + } + p1 = Identifier(); + } + if (strbuf == null || strbuf.length() == 0) { + result = new FieldAccess( (Variable) null, p1 ); + } else { + Variable var = new Variable( strbuf.toString() ); + result = new FieldAccess( var, p1 ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Literal Literal() throws ParseException { + String p1; + Literal p2; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INTEGER_LITERAL: + jj_consume_token(INTEGER_LITERAL); + p1 = getToken( 0 ).image; + {if (true) return new Literal( Literal.INTEGER, p1 );} + break; + case LONG_LITERAL: + jj_consume_token(LONG_LITERAL); + p1 = getToken( 0 ).image; + {if (true) return new Literal( Literal.LONG, p1 );} + break; + case FLOATING_POINT_LITERAL: + jj_consume_token(FLOATING_POINT_LITERAL); + p1 = getToken( 0 ).image; + {if (true) return new Literal( Literal.FLOAT, p1 );} + break; + case DOUBLE_FLOATING_POINT_LITERAL: + jj_consume_token(DOUBLE_FLOATING_POINT_LITERAL); + p1 = getToken( 0 ).image; + {if (true) return new Literal( Literal.DOUBLE, p1 );} + break; + case CHARACTER_LITERAL: + jj_consume_token(CHARACTER_LITERAL); + p1 = getToken( 0 ).image; + {if (true) return new Literal( Literal.CHARACTER, p1 );} + break; + case STRING_LITERAL: + jj_consume_token(STRING_LITERAL); + p1 = getToken( 0 ).image; + {if (true) return new Literal( Literal.STRING, p1 );} + break; + case TRUE: + jj_consume_token(TRUE); + {if (true) return Literal.constantTrue();} + break; + case FALSE: + jj_consume_token(FALSE); + {if (true) return Literal.constantFalse();} + break; + case NULL: + jj_consume_token(NULL); + {if (true) return Literal.constantNull();} + break; + default: + jj_la1[63] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public ExpressionList Arguments(Environment env) throws ParseException { + ExpressionList result = new ExpressionList(); + Expression p1; + + DebugOut.println( "#Arguments()" ); + jj_consume_token(LPAREN); + if (jj_2_34(1)) { + p1 = Expression(env); + result.add( p1 ); + label_40: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[64] = jj_gen; + break label_40; + } + jj_consume_token(COMMA); + p1 = Expression(env); + result.add( p1 ); + } + } else { + ; + } + jj_consume_token(RPAREN); + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public Expression AllocationExpression(Environment env) throws ParseException { + Expression result; + AllocationExpression aloc_result; + TypeName p1; + ArrayAllocationExpression p2; + ExpressionList p3; + MemberDeclarationList p4 = null; + + DebugOut.println( "#AllocationExpression()" ); + if (jj_2_36(2147483647)) { + jj_consume_token(NEW); + p1 = TypeWithoutDims(env); + p2 = ArrayDimsAndInits(env, p1); + result = p2; + {if (true) return result;} + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case NEW: + jj_consume_token(NEW); + p1 = TypeWithoutDims(env); + if (jj_2_35(2147483647)) { + p2 = ArrayDimsAndInits(env, p1); + result = p2; + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LPAREN: + p3 = Arguments(env); + aloc_result = new AllocationExpression( p1, p3, p4 ); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACE: + p4 = ClassBody(new ClassEnvironment( env )); + aloc_result.setClassBody( p4 ); + break; + default: + jj_la1[65] = jj_gen; + ; + } + result = aloc_result; + break; + default: + jj_la1[66] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + {if (true) return result;} + break; + default: + jj_la1[67] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } + + final public TypeName TypeWithoutDims(Environment env) throws ParseException { + String p1; + Hashtable p2; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case BOOLEAN: + case BYTE: + case CHAR: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case SHORT: + case VOID: + p1 = PrimitiveType(); + break; + case METACLASS: + case IDENTIFIER: + p1 = Name(); + break; + default: + jj_la1[68] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + p2 = OpenJavaTypeSuffixListOpt(env, p1); + {if (true) return new TypeName( p1, p2 );} + throw new Error("Missing return statement in function"); + } + + final public ArrayAllocationExpression ArrayDimsAndInits(Environment env, TypeName type) throws ParseException { + Expression p1; + int p2; + ArrayInitializer p3; + ExpressionList exprs = new ExpressionList(); + if (jj_2_37(2147483647)) { + p2 = EmptyBracketsOpt(); + p3 = ArrayInitializer(env); + for (int i = 0; i < p2; ++i) exprs.add( null ); + {if (true) return new ArrayAllocationExpression( type, exprs, p3 );} + } else if (jj_2_38(2147483647)) { + label_41: + while (true) { + jj_consume_token(LBRACKET); + p1 = Expression(env); + exprs.add( p1 ); + jj_consume_token(RBRACKET); + if ((getToken( 1 ).kind == LBRACKET + && getToken( 2 ).kind != RBRACKET)) { + ; + } else { + break label_41; + } + } + p2 = EmptyBracketsOpt(); + for (int i = 0; i < p2; ++i) exprs.add( null ); + {if (true) return new ArrayAllocationExpression( type, exprs );} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public StatementList BlockedBody(Environment env) throws ParseException { + StatementList p1; + jj_consume_token(LBRACE); + p1 = BlockOrStatementListOpt(env); + jj_consume_token(RBRACE); + {if (true) return p1;} + throw new Error("Missing return statement in function"); + } + +/* + * Statement syntax follows. + */ + final public Statement Statement(Environment env) throws ParseException { + Statement p1; + if (jj_2_39(2147483647)) { + p1 = LabeledStatement(env); + {if (true) return p1;} + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACE: + p1 = Block(env); + {if (true) return p1;} + break; + case SEMICOLON: + p1 = EmptyStatement(env); + {if (true) return p1;} + break; + case SWITCH: + p1 = SwitchStatement(env); + {if (true) return p1;} + break; + case IF: + p1 = IfStatement(env); + {if (true) return p1;} + break; + case WHILE: + p1 = WhileStatement(env); + {if (true) return p1;} + break; + case DO: + p1 = DoWhileStatement(env); + {if (true) return p1;} + break; + case FOR: + p1 = ForStatement(env); + {if (true) return p1;} + break; + case BREAK: + p1 = BreakStatement(env); + {if (true) return p1;} + break; + case CONTINUE: + p1 = ContinueStatement(env); + {if (true) return p1;} + break; + case RETURN: + p1 = ReturnStatement(env); + {if (true) return p1;} + break; + case THROW: + p1 = ThrowStatement(env); + {if (true) return p1;} + break; + case SYNCHRONIZED: + p1 = SynchronizedStatement(env); + {if (true) return p1;} + break; + case TRY: + p1 = TryStatement(env); + {if (true) return p1;} + break; + default: + jj_la1[69] = jj_gen; + if (jj_2_40(1)) { + p1 = ExpressionStatement(env); + {if (true) return p1;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + } + throw new Error("Missing return statement in function"); + } + + final public LabeledStatement LabeledStatement(Environment env) throws ParseException { + String p1; + Statement p2; + + DebugOut.println( "#LabeledStatement()" ); + p1 = Identifier(); + jj_consume_token(COLON); + p2 = Statement(env); + {if (true) return new LabeledStatement( p1, p2 );} + throw new Error("Missing return statement in function"); + } + + final public Block Block(Environment env) throws ParseException { + StatementList p1; + DebugOut.println( "#Block()" ); + jj_consume_token(LBRACE); + p1 = BlockOrStatementListOpt(env); + jj_consume_token(RBRACE); + {if (true) return new Block( p1 );} + throw new Error("Missing return statement in function"); + } + + final public StatementList BlockOrStatementListOpt(Environment env) throws ParseException { + StatementList result = new StatementList(); + StatementList p1; + if ((getToken( 1 ).kind != RBRACE + && getToken( 1 ).kind != EOF + && getToken( 1 ).kind != CASE + && getToken( 1 ).kind != _DEFAULT )) { + label_42: + while (true) { + p1 = BlockOrStatement(env); + result.addAll( p1 ); + if ((getToken( 1 ).kind != RBRACE + && getToken( 1 ).kind != EOF + && getToken( 1 ).kind != CASE + && getToken( 1 ).kind != _DEFAULT )) { + ; + } else { + break label_42; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public StatementList BlockOrStatement(Environment env) throws ParseException { + Statement p1; + StatementList p2; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case CLASS: + p1 = UnmodifiedClassDeclaration(new ClassEnvironment( env )); + {if (true) return new StatementList( p1 );} + break; + default: + jj_la1[70] = jj_gen; + if (LocalVariableDeclarationLookahead( env )) { + p2 = LocalVariableDeclaration(env); + jj_consume_token(SEMICOLON); + {if (true) return p2;} + } else if (jj_2_41(1)) { + p1 = Statement(env); + {if (true) return new StatementList( p1 );} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } + + final public StatementList LocalVariableDeclaration(Environment env) throws ParseException { + StatementList result = new StatementList(); + ModifierList p1; + TypeName p2; + VariableDeclarator p3; + TypeName tspec; + String vname; + VariableInitializer vinit; + DebugOut.println( "#LocalVariableDeclaration()" ); + p1 = VariableModifiersOpt(env); + p2 = Type(env); + p3 = VariableDeclarator(env); + tspec = (TypeName) p2.makeRecursiveCopy(); + tspec.addDimension( p3.getDimension() ); + vname = p3.getVariable(); + vinit = p3.getInitializer(); + result.add( new VariableDeclaration( p1, tspec, vname, vinit ) ); + label_43: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[71] = jj_gen; + break label_43; + } + jj_consume_token(COMMA); + p3 = VariableDeclarator(env); + tspec = (TypeName) p2.makeRecursiveCopy(); + tspec.addDimension( p3.getDimension() ); + vname = p3.getVariable(); + vinit = p3.getInitializer(); + result.add( new VariableDeclaration( p1, tspec, vname, vinit ) ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public ModifierList VariableModifiersOpt(Environment env) throws ParseException { + ModifierList result = new ModifierList(); + int p1; + String p2; + if (modifierCheck( env, getToken( 1 ) )) { + label_44: + while (true) { + if (jj_2_42(2147483647)) { + p1 = Modifier(); + result.add( p1 ); + } else if (OpenJavaModifierLookahead( env )) { + p2 = OpenJavaModifier(); + result.add( p2 ); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + if (ModifierLookahead( env )) { + ; + } else { + break label_44; + } + } + {if (true) return result;} + } else { + E(); + {if (true) return result;} + } + throw new Error("Missing return statement in function"); + } + + final public EmptyStatement EmptyStatement(Environment env) throws ParseException { + DebugOut.println( "#EmptyStatement()" ); + jj_consume_token(SEMICOLON); + {if (true) return new EmptyStatement();} + throw new Error("Missing return statement in function"); + } + + final public ExpressionStatement ExpressionStatement(Environment env) throws ParseException { + Expression p1; + + DebugOut.println( "#ExpressionStatement()" ); + p1 = StatementExpression(env); + jj_consume_token(SEMICOLON); + {if (true) return new ExpressionStatement( p1 );} + throw new Error("Missing return statement in function"); + } + + final public Expression StatementExpression(Environment env) throws ParseException { + Expression p1; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INCR: + case DECR: + p1 = PreIncrementExpression(env); + {if (true) return p1;} + break; + default: + jj_la1[72] = jj_gen; + if (AssignmentLookahead()) { + p1 = AssignmentExpression(env); + {if (true) return p1;} + } else if (jj_2_43(1)) { + p1 = PostfixExpression(env); + {if (true) return p1;} + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + throw new Error("Missing return statement in function"); + } + + final public SwitchStatement SwitchStatement(Environment env) throws ParseException { + Expression p1; + Expression p2; + StatementList p3; + CaseGroupList cplist = new CaseGroupList(); + ExpressionList exprs; + + DebugOut.println( "#SwitchStatement()" ); + jj_consume_token(SWITCH); + jj_consume_token(LPAREN); + p1 = Expression(env); + jj_consume_token(RPAREN); + jj_consume_token(LBRACE); + label_45: + while (true) { + if (jj_2_44(2147483647)) { + ; + } else { + break label_45; + } + exprs = new ExpressionList(); + label_46: + while (true) { + p2 = SwitchLabel(env); + exprs.add( p2 ); + if (jj_2_45(2147483647)) { + ; + } else { + break label_46; + } + } + p3 = BlockOrStatementListOpt(env); + cplist.add( new CaseGroup( exprs, p3 ) ); + } + jj_consume_token(RBRACE); + {if (true) return new SwitchStatement( p1, cplist );} + throw new Error("Missing return statement in function"); + } + + final public Expression SwitchLabel(Environment env) throws ParseException { + Expression p1; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case CASE: + jj_consume_token(CASE); + p1 = Expression(env); + jj_consume_token(COLON); + {if (true) return p1;} + break; + case _DEFAULT: + jj_consume_token(_DEFAULT); + jj_consume_token(COLON); + {if (true) return null;} + break; + default: + jj_la1[73] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + throw new Error("Missing return statement in function"); + } + + final public IfStatement IfStatement(Environment env) throws ParseException { + IfStatement result; + Expression p1; + StatementList p2; + Statement p3; + StatementList true_part; + StatementList false_part = null; + + DebugOut.println( "#IfStatement()" ); + jj_consume_token(IF); + jj_consume_token(LPAREN); + p1 = Expression(env); + jj_consume_token(RPAREN); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACE: + p2 = BlockedBody(env); + true_part = p2; + break; + default: + jj_la1[74] = jj_gen; + if (jj_2_46(1)) { + p3 = Statement(env); + true_part = new StatementList( p3 ); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ELSE: + jj_consume_token(ELSE); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACE: + p2 = BlockedBody(env); + false_part = p2; + break; + default: + jj_la1[75] = jj_gen; + if (jj_2_47(1)) { + p3 = Statement(env); + false_part = new StatementList( p3 ); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + break; + default: + jj_la1[76] = jj_gen; + ; + } + {if (true) return new IfStatement( p1, true_part, false_part );} + throw new Error("Missing return statement in function"); + } + + final public WhileStatement WhileStatement(Environment env) throws ParseException { + Expression p1; + StatementList p2; + Statement p3; + StatementList body; + + DebugOut.println( "#WhileStatement()" ); + jj_consume_token(WHILE); + jj_consume_token(LPAREN); + p1 = Expression(env); + jj_consume_token(RPAREN); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACE: + p2 = BlockedBody(env); + body = p2; + break; + default: + jj_la1[77] = jj_gen; + if (jj_2_48(1)) { + p3 = Statement(env); + body = new StatementList( p3 ); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + {if (true) return new WhileStatement( p1, body );} + throw new Error("Missing return statement in function"); + } + + final public DoWhileStatement DoWhileStatement(Environment env) throws ParseException { + StatementList p1; + Statement p2; + Expression p3; + StatementList body; + + DebugOut.println( "#DoWhileStatement()" ); + jj_consume_token(DO); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACE: + p1 = BlockedBody(env); + body = p1; + break; + default: + jj_la1[78] = jj_gen; + if (jj_2_49(1)) { + p2 = Statement(env); + body = new StatementList( p2 ); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + jj_consume_token(WHILE); + jj_consume_token(LPAREN); + p3 = Expression(env); + jj_consume_token(RPAREN); + jj_consume_token(SEMICOLON); + {if (true) return new DoWhileStatement( body, p3 );} + throw new Error("Missing return statement in function"); + } + + final public ForStatement ForStatement(Environment env) throws ParseException { + ForStatement result; + TypeName p1 = null; + VariableDeclarator[] p2 = null; + ExpressionList p3 = null; + Expression p4 = null; + ExpressionList p5 = null; + StatementList p6; + Statement p7; + StatementList body; + + DebugOut.println( "#ForStatement()" ); + jj_consume_token(FOR); + jj_consume_token(LPAREN); + if ((getToken( 1 ).kind != SEMICOLON)) { + if (LocalVariableDeclarationLookahead( env )) { + p1 = Type(env); + p2 = VariableDeclaratorList(env); + } else if (jj_2_50(1)) { + p3 = StatementExpressionList(env); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } else { + ; + } + jj_consume_token(SEMICOLON); + if ((getToken( 1 ).kind != SEMICOLON)) { + p4 = Expression(env); + } else { + ; + } + jj_consume_token(SEMICOLON); + if ((getToken( 1 ).kind != RPAREN)) { + p5 = StatementExpressionList(env); + } else { + ; + } + jj_consume_token(RPAREN); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACE: + p6 = BlockedBody(env); + body = p6; + break; + default: + jj_la1[79] = jj_gen; + if (jj_2_51(1)) { + p7 = Statement(env); + body = new StatementList( p7 ); + } else { + jj_consume_token(-1); + throw new ParseException(); + } + } + if (p1 != null) { + result = new ForStatement( p1, p2, p4, p5, body ); + } else if (p3 != null) { + result = new ForStatement( p3, p4, p5, body ); + } else { + result = new ForStatement( new ExpressionList(), p4, p5, body ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public VariableDeclarator[] VariableDeclaratorList(Environment env) throws ParseException { + VariableDeclarator[] result; + VariableDeclarator p1; + Vector v = new Vector(); + + DebugOut.println( "#LocalVariableDeclaration()" ); + p1 = VariableDeclarator(env); + v.addElement( p1 ); + label_47: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[80] = jj_gen; + break label_47; + } + jj_consume_token(COMMA); + p1 = VariableDeclarator(env); + v.addElement( p1 ); + } + result = new VariableDeclarator[v.size()]; + for (int i = 0; i < result.length; ++i) { + result[i] = (VariableDeclarator) v.elementAt( i ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public ExpressionList StatementExpressionList(Environment env) throws ParseException { + ExpressionList result = new ExpressionList(); + Expression p1; + p1 = StatementExpression(env); + result.add( p1 ); + label_48: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[81] = jj_gen; + break label_48; + } + jj_consume_token(COMMA); + p1 = StatementExpression(env); + result.add( p1 ); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public BreakStatement BreakStatement(Environment env) throws ParseException { + BreakStatement result; + String p1 = null; + + DebugOut.println( "#BreakStatement()" ); + jj_consume_token(BREAK); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case METACLASS: + case IDENTIFIER: + p1 = Identifier(); + break; + default: + jj_la1[82] = jj_gen; + ; + } + jj_consume_token(SEMICOLON); + if (p1 != null) { + result = new BreakStatement( p1 ); + } else { + result = new BreakStatement(); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public ContinueStatement ContinueStatement(Environment env) throws ParseException { + ContinueStatement result; + String p1 = null; + + DebugOut.println( "#ContinueStatement()" ); + jj_consume_token(CONTINUE); + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case METACLASS: + case IDENTIFIER: + p1 = Identifier(); + break; + default: + jj_la1[83] = jj_gen; + ; + } + jj_consume_token(SEMICOLON); + if (p1 != null) { + result = new ContinueStatement( p1 ); + } else { + result = new ContinueStatement(); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public ReturnStatement ReturnStatement(Environment env) throws ParseException { + ReturnStatement result; + Expression p1 = null; + + DebugOut.println( "#ReturnStatement()" ); + jj_consume_token(RETURN); + if ((getToken(1).kind != SEMICOLON)) { + p1 = Expression(env); + } else { + ; + } + jj_consume_token(SEMICOLON); + if (p1 != null) { + result = new ReturnStatement( p1 ); + } else { + result = new ReturnStatement(); + } + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final public ThrowStatement ThrowStatement(Environment env) throws ParseException { + Statement result; + Expression p1; + + DebugOut.println( "#ThrowStatement()" ); + jj_consume_token(THROW); + p1 = Expression(env); + jj_consume_token(SEMICOLON); + {if (true) return new ThrowStatement( p1 );} + throw new Error("Missing return statement in function"); + } + + final public SynchronizedStatement SynchronizedStatement(Environment env) throws ParseException { + Expression p1; + StatementList p2; + + DebugOut.println( "#SynchronizedStatement()" ); + jj_consume_token(SYNCHRONIZED); + jj_consume_token(LPAREN); + p1 = Expression(env); + jj_consume_token(RPAREN); + p2 = BlockedBody(env); + {if (true) return new SynchronizedStatement( p1, p2 );} + throw new Error("Missing return statement in function"); + } + + final public TryStatement TryStatement(Environment base_env) throws ParseException { + Environment env = new ClosedEnvironment( base_env ); + TryStatement result; + StatementList p1; + Parameter p2; + StatementList p3; + StatementList p4 = null; + CatchList catches = new CatchList(); + + DebugOut.println( "#TryStatement()" ); + jj_consume_token(TRY); + p1 = BlockedBody(env); + label_49: + while (true) { + if (jj_2_52(2147483647)) { + ; + } else { + break label_49; + } + env = new ClosedEnvironment( base_env ); + jj_consume_token(CATCH); + jj_consume_token(LPAREN); + p2 = FormalParameter(env); + jj_consume_token(RPAREN); + p3 = BlockedBody(env); + catches.add( new CatchBlock( p2, p3 ) ); + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case FINALLY: + jj_consume_token(FINALLY); + p4 = BlockedBody(new ClosedEnvironment( base_env )); + break; + default: + jj_la1[84] = jj_gen; + ; + } + result = new TryStatement( p1, catches, p4 ); + {if (true) return result;} + throw new Error("Missing return statement in function"); + } + + final private boolean jj_2_1(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_1(); + jj_save(0, xla); + return retval; + } + + final private boolean jj_2_2(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_2(); + jj_save(1, xla); + return retval; + } + + final private boolean jj_2_3(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_3(); + jj_save(2, xla); + return retval; + } + + final private boolean jj_2_4(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_4(); + jj_save(3, xla); + return retval; + } + + final private boolean jj_2_5(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_5(); + jj_save(4, xla); + return retval; + } + + final private boolean jj_2_6(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_6(); + jj_save(5, xla); + return retval; + } + + final private boolean jj_2_7(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_7(); + jj_save(6, xla); + return retval; + } + + final private boolean jj_2_8(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_8(); + jj_save(7, xla); + return retval; + } + + final private boolean jj_2_9(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_9(); + jj_save(8, xla); + return retval; + } + + final private boolean jj_2_10(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_10(); + jj_save(9, xla); + return retval; + } + + final private boolean jj_2_11(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_11(); + jj_save(10, xla); + return retval; + } + + final private boolean jj_2_12(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_12(); + jj_save(11, xla); + return retval; + } + + final private boolean jj_2_13(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_13(); + jj_save(12, xla); + return retval; + } + + final private boolean jj_2_14(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_14(); + jj_save(13, xla); + return retval; + } + + final private boolean jj_2_15(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_15(); + jj_save(14, xla); + return retval; + } + + final private boolean jj_2_16(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_16(); + jj_save(15, xla); + return retval; + } + + final private boolean jj_2_17(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_17(); + jj_save(16, xla); + return retval; + } + + final private boolean jj_2_18(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_18(); + jj_save(17, xla); + return retval; + } + + final private boolean jj_2_19(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_19(); + jj_save(18, xla); + return retval; + } + + final private boolean jj_2_20(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_20(); + jj_save(19, xla); + return retval; + } + + final private boolean jj_2_21(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_21(); + jj_save(20, xla); + return retval; + } + + final private boolean jj_2_22(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_22(); + jj_save(21, xla); + return retval; + } + + final private boolean jj_2_23(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_23(); + jj_save(22, xla); + return retval; + } + + final private boolean jj_2_24(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_24(); + jj_save(23, xla); + return retval; + } + + final private boolean jj_2_25(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_25(); + jj_save(24, xla); + return retval; + } + + final private boolean jj_2_26(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_26(); + jj_save(25, xla); + return retval; + } + + final private boolean jj_2_27(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_27(); + jj_save(26, xla); + return retval; + } + + final private boolean jj_2_28(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_28(); + jj_save(27, xla); + return retval; + } + + final private boolean jj_2_29(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_29(); + jj_save(28, xla); + return retval; + } + + final private boolean jj_2_30(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_30(); + jj_save(29, xla); + return retval; + } + + final private boolean jj_2_31(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_31(); + jj_save(30, xla); + return retval; + } + + final private boolean jj_2_32(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_32(); + jj_save(31, xla); + return retval; + } + + final private boolean jj_2_33(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_33(); + jj_save(32, xla); + return retval; + } + + final private boolean jj_2_34(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_34(); + jj_save(33, xla); + return retval; + } + + final private boolean jj_2_35(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_35(); + jj_save(34, xla); + return retval; + } + + final private boolean jj_2_36(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_36(); + jj_save(35, xla); + return retval; + } + + final private boolean jj_2_37(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_37(); + jj_save(36, xla); + return retval; + } + + final private boolean jj_2_38(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_38(); + jj_save(37, xla); + return retval; + } + + final private boolean jj_2_39(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_39(); + jj_save(38, xla); + return retval; + } + + final private boolean jj_2_40(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_40(); + jj_save(39, xla); + return retval; + } + + final private boolean jj_2_41(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_41(); + jj_save(40, xla); + return retval; + } + + final private boolean jj_2_42(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_42(); + jj_save(41, xla); + return retval; + } + + final private boolean jj_2_43(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_43(); + jj_save(42, xla); + return retval; + } + + final private boolean jj_2_44(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_44(); + jj_save(43, xla); + return retval; + } + + final private boolean jj_2_45(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_45(); + jj_save(44, xla); + return retval; + } + + final private boolean jj_2_46(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_46(); + jj_save(45, xla); + return retval; + } + + final private boolean jj_2_47(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_47(); + jj_save(46, xla); + return retval; + } + + final private boolean jj_2_48(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_48(); + jj_save(47, xla); + return retval; + } + + final private boolean jj_2_49(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_49(); + jj_save(48, xla); + return retval; + } + + final private boolean jj_2_50(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_50(); + jj_save(49, xla); + return retval; + } + + final private boolean jj_2_51(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_51(); + jj_save(50, xla); + return retval; + } + + final private boolean jj_2_52(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + boolean retval = !jj_3_52(); + jj_save(51, xla); + return retval; + } + + final private boolean jj_3R_133() { + if (jj_scan_token(FINAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_31() { + if (jj_scan_token(DOT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(NEW)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_14() { + if (jj_scan_token(LBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_101() { + if (jj_scan_token(LBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_30() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_100()) { + jj_scanpos = xsp; + if (jj_3R_101()) { + jj_scanpos = xsp; + if (jj_3R_102()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_100() { + if (jj_scan_token(DOT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_13() { + if (jj_scan_token(LBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_52() { + if (jj_scan_token(CATCH)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_132() { + if (jj_scan_token(ABSTRACT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_135() { + if (jj_3R_166()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_86() { + if (jj_scan_token(INTERFACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_141() { + if (jj_3R_178()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_194() { + if (jj_scan_token(TRY)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_85() { + if (jj_scan_token(CLASS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_84() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_131()) { + jj_scanpos = xsp; + if (jj_3R_132()) { + jj_scanpos = xsp; + if (jj_3R_133()) { + jj_scanpos = xsp; + if (jj_3R_134()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_131() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_12() { + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_84()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + xsp = jj_scanpos; + if (jj_3R_85()) { + jj_scanpos = xsp; + if (jj_3R_86()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_207() { + if (jj_3R_141()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_220() { + if (jj_3R_228()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_193() { + if (jj_scan_token(SYNCHRONIZED)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_177() { + if (jj_3R_198()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_54() { + if (jj_scan_token(PUBLIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_176() { + if (jj_scan_token(NEW)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_225() { + if (jj_3R_99()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_53() { + if (jj_scan_token(FINAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_41() { + if (jj_3R_105()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_218() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_225()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(THIS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_29() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_99()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_192() { + if (jj_scan_token(THROW)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_87() { + if (jj_3R_135()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_28() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_98()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_175() { + if (jj_scan_token(SUPER)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_83() { + if (jj_scan_token(PRIVATE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_197() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_52() { + if (jj_scan_token(ABSTRACT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_3() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_52()) { + jj_scanpos = xsp; + if (jj_3R_53()) { + jj_scanpos = xsp; + if (jj_3R_54()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_80() { + if (jj_scan_token(FINAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_196() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_169() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_196()) { + jj_scanpos = xsp; + if (jj_3R_197()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_174() { + if (jj_scan_token(THIS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_82() { + if (jj_scan_token(PROTECTED)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_191() { + if (jj_scan_token(RETURN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_79() { + if (jj_scan_token(ABSTRACT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_173() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_81() { + if (jj_scan_token(PUBLIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_11() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_78()) { + jj_scanpos = xsp; + if (jj_3R_79()) { + jj_scanpos = xsp; + if (jj_3R_80()) { + jj_scanpos = xsp; + if (jj_3R_81()) { + jj_scanpos = xsp; + if (jj_3R_82()) { + jj_scanpos = xsp; + if (jj_3R_83()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_78() { + if (jj_scan_token(STATIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_172() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_182() { + if (jj_scan_token(LBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_97() { + if (jj_3R_141()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_171() { + if (jj_scan_token(BANG)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_27() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_99()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_190() { + if (jj_scan_token(CONTINUE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_26() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_99()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_170() { + if (jj_scan_token(TILDE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_140() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_99()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_181() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_147() { + if (jj_scan_token(LONG)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_139() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_99()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_170()) { + jj_scanpos = xsp; + if (jj_3R_171()) { + jj_scanpos = xsp; + if (jj_3R_172()) { + jj_scanpos = xsp; + if (jj_3R_173()) { + jj_scanpos = xsp; + if (jj_3R_174()) { + jj_scanpos = xsp; + if (jj_3R_175()) { + jj_scanpos = xsp; + if (jj_3R_176()) { + jj_scanpos = xsp; + if (jj_3R_177()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_138() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_99()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_146() { + if (jj_scan_token(INT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_25() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_98()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_96() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_25()) { + jj_scanpos = xsp; + if (jj_3R_138()) { + jj_scanpos = xsp; + if (jj_3R_139()) { + jj_scanpos = xsp; + if (jj_3R_140()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_23() { + if (jj_3R_96()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_77() { + if (jj_scan_token(PUBLIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_40() { + if (jj_3R_104()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_189() { + if (jj_scan_token(BREAK)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_165() { + if (jj_3R_194()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_24() { + if (jj_3R_97()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_164() { + if (jj_3R_193()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_145() { + if (jj_scan_token(SHORT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_163() { + if (jj_3R_192()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_137() { + if (jj_3R_169()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_168() { + if (jj_scan_token(BANG)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_150() { + if (jj_scan_token(VOID)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_167() { + if (jj_scan_token(TILDE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_162() { + if (jj_3R_191()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_10() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_76()) { + jj_scanpos = xsp; + if (jj_3R_77()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_75() { + if (jj_scan_token(SYNCHRONIZED)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_76() { + if (jj_scan_token(ABSTRACT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_161() { + if (jj_3R_190()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_144() { + if (jj_scan_token(BYTE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_95() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_136()) { + jj_scanpos = xsp; + if (jj_3R_137()) { + jj_scanpos = xsp; + if (jj_3_24()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_136() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_167()) { + jj_scanpos = xsp; + if (jj_3R_168()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_160() { + if (jj_3R_189()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_110() { + if (jj_3R_151()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_19() { + if (jj_scan_token(DOT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_159() { + if (jj_3R_188()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_149() { + if (jj_scan_token(DOUBLE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_99() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_19()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + return false; + } + + final private boolean jj_3R_158() { + if (jj_3R_187()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_74() { + if (jj_scan_token(NATIVE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_223() { + if (jj_scan_token(DECR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_143() { + if (jj_scan_token(CHAR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_222() { + if (jj_scan_token(INCR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_157() { + if (jj_3R_186()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_71() { + if (jj_scan_token(FINAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_94() { + if (jj_scan_token(DECR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_68() { + if (jj_scan_token(PRIVATE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_231() { + if (jj_3R_99()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_156() { + if (jj_3R_185()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_206() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_222()) { + jj_scanpos = xsp; + if (jj_3R_223()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_148() { + if (jj_scan_token(FLOAT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_39() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(COLON)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_155() { + if (jj_3R_184()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_21() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_93()) { + jj_scanpos = xsp; + if (jj_3R_94()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_93() { + if (jj_scan_token(INCR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_154() { + if (jj_3R_183()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_142() { + if (jj_scan_token(BOOLEAN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_73() { + if (jj_scan_token(VOLATILE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_92() { + if (jj_scan_token(MINUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_153() { + if (jj_3R_182()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_98() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_142()) { + jj_scanpos = xsp; + if (jj_3R_143()) { + jj_scanpos = xsp; + if (jj_3R_144()) { + jj_scanpos = xsp; + if (jj_3R_145()) { + jj_scanpos = xsp; + if (jj_3R_146()) { + jj_scanpos = xsp; + if (jj_3R_147()) { + jj_scanpos = xsp; + if (jj_3R_148()) { + jj_scanpos = xsp; + if (jj_3R_149()) { + jj_scanpos = xsp; + if (jj_3R_150()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_70() { + if (jj_scan_token(ABSTRACT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_22() { + if (jj_3R_95()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_152() { + if (jj_3R_181()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_67() { + if (jj_scan_token(PROTECTED)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_105() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_152()) { + jj_scanpos = xsp; + if (jj_3R_153()) { + jj_scanpos = xsp; + if (jj_3R_154()) { + jj_scanpos = xsp; + if (jj_3R_155()) { + jj_scanpos = xsp; + if (jj_3R_156()) { + jj_scanpos = xsp; + if (jj_3R_157()) { + jj_scanpos = xsp; + if (jj_3R_158()) { + jj_scanpos = xsp; + if (jj_3R_159()) { + jj_scanpos = xsp; + if (jj_3R_160()) { + jj_scanpos = xsp; + if (jj_3R_161()) { + jj_scanpos = xsp; + if (jj_3R_162()) { + jj_scanpos = xsp; + if (jj_3R_163()) { + jj_scanpos = xsp; + if (jj_3R_164()) { + jj_scanpos = xsp; + if (jj_3R_165()) { + jj_scanpos = xsp; + if (jj_3_40()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_20() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_91()) { + jj_scanpos = xsp; + if (jj_3R_92()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_91() { + if (jj_scan_token(PLUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_240() { + if (jj_3R_206()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_242() { + if (jj_scan_token(MINUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_241() { + if (jj_scan_token(PLUS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_230() { + if (jj_3R_98()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_72() { + if (jj_scan_token(TRANSIENT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_69() { + if (jj_scan_token(STATIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_228() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_230()) { + jj_scanpos = xsp; + if (jj_3R_231()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_66() { + if (jj_scan_token(PUBLIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_9() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_66()) { + jj_scanpos = xsp; + if (jj_3R_67()) { + jj_scanpos = xsp; + if (jj_3R_68()) { + jj_scanpos = xsp; + if (jj_3R_69()) { + jj_scanpos = xsp; + if (jj_3R_70()) { + jj_scanpos = xsp; + if (jj_3R_71()) { + jj_scanpos = xsp; + if (jj_3R_72()) { + jj_scanpos = xsp; + if (jj_3R_73()) { + jj_scanpos = xsp; + if (jj_3R_74()) { + jj_scanpos = xsp; + if (jj_3R_75()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_239() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_241()) { + jj_scanpos = xsp; + if (jj_3R_242()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_238() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_239()) { + jj_scanpos = xsp; + if (jj_3R_240()) { + jj_scanpos = xsp; + if (jj_3_22()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_51() { + if (jj_3R_105()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_38() { + if (jj_scan_token(LBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_37() { + if (jj_scan_token(LBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_237() { + if (jj_3R_238()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_50() { + if (jj_3R_110()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_188() { + if (jj_scan_token(FOR)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_18() { + if (jj_scan_token(THIS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_236() { + if (jj_3R_237()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_116() { + if (jj_scan_token(PUBLIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_115() { + if (jj_scan_token(FINAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_90() { + if (jj_scan_token(PRIVATE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_35() { + if (jj_scan_token(LBRACKET)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_49() { + if (jj_3R_105()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_235() { + if (jj_3R_236()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_114() { + if (jj_scan_token(ABSTRACT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_36() { + if (jj_scan_token(NEW)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_98()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_89() { + if (jj_scan_token(PROTECTED)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_187() { + if (jj_scan_token(DO)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_227() { + if (jj_scan_token(NEW)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_226() { + if (jj_scan_token(NEW)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_219() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_226()) { + jj_scanpos = xsp; + if (jj_3R_227()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_112() { + if (jj_scan_token(METACLASS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_17() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_88()) { + jj_scanpos = xsp; + if (jj_3R_89()) { + jj_scanpos = xsp; + if (jj_3R_90()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_88() { + if (jj_scan_token(PUBLIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_234() { + if (jj_3R_235()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_48() { + if (jj_3R_105()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_51() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_113()) { + jj_scanpos = xsp; + if (jj_3R_114()) { + jj_scanpos = xsp; + if (jj_3R_115()) { + jj_scanpos = xsp; + if (jj_3R_116()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_50() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_111()) { + jj_scanpos = xsp; + if (jj_3R_112()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_111() { + if (jj_scan_token(IDENTIFIER)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_113() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_8() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_127() { + if (jj_scan_token(FINAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_2() { + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_51()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + if (jj_scan_token(CLASS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_186() { + if (jj_scan_token(WHILE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_130() { + if (jj_scan_token(PRIVATE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_126() { + if (jj_scan_token(ABSTRACT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_34() { + if (jj_3R_87()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_233() { + if (jj_3R_234()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_47() { + if (jj_3R_105()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_125() { + if (jj_scan_token(STATIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_129() { + if (jj_scan_token(PROTECTED)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_65() { + if (jj_scan_token(INTERFACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_46() { + if (jj_3R_105()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_217() { + if (jj_scan_token(NULL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_232() { + if (jj_3R_233()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_216() { + if (jj_scan_token(FALSE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_61() { + if (jj_scan_token(PRIVATE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_64() { + if (jj_scan_token(CLASS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_128() { + if (jj_scan_token(PUBLIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_215() { + if (jj_scan_token(TRUE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_185() { + if (jj_scan_token(IF)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_58() { + if (jj_scan_token(FINAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_63() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_124()) { + jj_scanpos = xsp; + if (jj_3R_125()) { + jj_scanpos = xsp; + if (jj_3R_126()) { + jj_scanpos = xsp; + if (jj_3R_127()) { + jj_scanpos = xsp; + if (jj_3R_128()) { + jj_scanpos = xsp; + if (jj_3R_129()) { + jj_scanpos = xsp; + if (jj_3R_130()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_124() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_214() { + if (jj_scan_token(STRING_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_7() { + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_63()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + xsp = jj_scanpos; + if (jj_3R_64()) { + jj_scanpos = xsp; + if (jj_3R_65()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_16() { + if (jj_scan_token(FINAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_213() { + if (jj_scan_token(CHARACTER_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_62() { + if (jj_scan_token(STATIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_6() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_62()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LBRACE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_212() { + if (jj_scan_token(DOUBLE_FLOATING_POINT_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_60() { + if (jj_scan_token(PROTECTED)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_211() { + if (jj_scan_token(FLOATING_POINT_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_109() { + if (jj_scan_token(_DEFAULT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_57() { + if (jj_scan_token(ABSTRACT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_229() { + if (jj_3R_232()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_210() { + if (jj_scan_token(LONG_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_209() { + if (jj_scan_token(INTEGER_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_198() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_209()) { + jj_scanpos = xsp; + if (jj_3R_210()) { + jj_scanpos = xsp; + if (jj_3R_211()) { + jj_scanpos = xsp; + if (jj_3R_212()) { + jj_scanpos = xsp; + if (jj_3R_213()) { + jj_scanpos = xsp; + if (jj_3R_214()) { + jj_scanpos = xsp; + if (jj_3R_215()) { + jj_scanpos = xsp; + if (jj_3R_216()) { + jj_scanpos = xsp; + if (jj_3R_217()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_107() { + if (jj_scan_token(_DEFAULT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_1() { + if (jj_scan_token(DOT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_45() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_108()) { + jj_scanpos = xsp; + if (jj_3R_109()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_108() { + if (jj_scan_token(CASE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_59() { + if (jj_scan_token(PUBLIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_56() { + if (jj_scan_token(STATIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_5() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_56()) { + jj_scanpos = xsp; + if (jj_3R_57()) { + jj_scanpos = xsp; + if (jj_3R_58()) { + jj_scanpos = xsp; + if (jj_3R_59()) { + jj_scanpos = xsp; + if (jj_3R_60()) { + jj_scanpos = xsp; + if (jj_3R_61()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_120() { + if (jj_scan_token(FINAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_44() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_106()) { + jj_scanpos = xsp; + if (jj_3R_107()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_106() { + if (jj_scan_token(CASE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_224() { + if (jj_3R_229()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_33() { + if (jj_scan_token(DOT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_123() { + if (jj_scan_token(PRIVATE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_119() { + if (jj_scan_token(ABSTRACT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_184() { + if (jj_scan_token(SWITCH)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_221() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_118() { + if (jj_scan_token(STATIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_208() { + if (jj_3R_224()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_122() { + if (jj_scan_token(PROTECTED)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_43() { + if (jj_3R_97()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_180() { + if (jj_3R_207()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_121() { + if (jj_scan_token(PUBLIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_205() { + if (jj_3R_221()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_55() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_117()) { + jj_scanpos = xsp; + if (jj_3R_118()) { + jj_scanpos = xsp; + if (jj_3R_119()) { + jj_scanpos = xsp; + if (jj_3R_120()) { + jj_scanpos = xsp; + if (jj_3R_121()) { + jj_scanpos = xsp; + if (jj_3R_122()) { + jj_scanpos = xsp; + if (jj_3R_123()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_117() { + if (jj_3R_50()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_179() { + if (jj_3R_206()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_151() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_179()) { + jj_scanpos = xsp; + lookingAhead = true; + jj_semLA = AssignmentLookahead(); + lookingAhead = false; + if (!jj_semLA || jj_3R_180()) { + jj_scanpos = xsp; + if (jj_3_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_4() { + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_55()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } + if (jj_scan_token(CLASS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_204() { + if (jj_3R_220()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_103() { + if (jj_3R_99()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(DOT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_195() { + if (jj_3R_208()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_32() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_103()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(THIS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_203() { + if (jj_3R_219()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_202() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_104() { + if (jj_3R_151()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_201() { + if (jj_scan_token(SUPER)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_200() { + if (jj_3R_218()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_199() { + if (jj_3R_198()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_178() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_199()) { + jj_scanpos = xsp; + if (jj_3R_200()) { + jj_scanpos = xsp; + if (jj_3R_201()) { + jj_scanpos = xsp; + if (jj_3R_202()) { + jj_scanpos = xsp; + if (jj_3R_203()) { + jj_scanpos = xsp; + lookingAhead = true; + jj_semLA = ClassLiteralLookahead(); + lookingAhead = false; + if (!jj_semLA || jj_3R_204()) { + jj_scanpos = xsp; + if (jj_3R_205()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_183() { + if (jj_scan_token(SEMICOLON)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_166() { + if (jj_3R_195()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_134() { + if (jj_scan_token(PUBLIC)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_42() { + if (jj_scan_token(FINAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_102() { + if (jj_scan_token(LPAREN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3_15() { + if (jj_3R_87()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + public ParserTokenManager token_source; + JavaCharStream jj_input_stream; + public Token token, jj_nt; + private int jj_ntk; + private Token jj_scanpos, jj_lastpos; + private int jj_la; + public boolean lookingAhead = false; + private boolean jj_semLA; + private int jj_gen; + final private int[] jj_la1 = new int[85]; + final private int[] jj_la1_0 = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20002000,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20002000,0x0,0x82094000,0x82094000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x82094000,0x1408000,0x100000,0x0,0x0,0x820000,0x0,0x0,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,}; + final private int[] jj_la1_1 = {0x0,0x1000,0x10,0x10,0x0,0x0,0x80000000,0x0,0x0,0x80000000,0x0,0x2224e200,0x0,0x8,0x0,0x0,0x0,0x80000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x2224e200,0x40000,0x90020140,0x10020140,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x84480c00,0x0,0x0,0x0,0x80000000,0x0,0x4000800,0x80400,0x80000000,0x4000800,0x0,0x0,0x0,0x400,0x90020140,0x48b10005,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x80000000,0x0,}; + final private int[] jj_la1_2 = {0x100000,0x0,0x0,0x0,0x400000,0x100000,0x800,0x200000,0x20100000,0x0,0x1,0x0,0x0,0x0,0x100000,0x100000,0x200000,0x800,0x0,0x110000,0x800000,0x10000,0x200000,0x200000,0x0,0x0,0x800,0x0,0x200000,0x200000,0x800,0x800000,0x800000,0x10000000,0x0,0x0,0x0,0x0,0x0,0x40000000,0x40000000,0x0,0x83000000,0x83000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc000000,0xc000000,0xc004ec6,0x4000,0x0,0x0,0x800,0x444000,0x6c6,0x4000,0x800,0x6c6,0x200000,0x10000,0x4000,0x0,0x800,0x110000,0x0,0x200000,0x0,0x0,0x10000,0x10000,0x0,0x10000,0x10000,0x10000,0x200000,0x200000,0x800,0x800,0x0,}; + final private int[] jj_la1_3 = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffe0000,0xffe0000,0x0,0x4,0x8,0x800,0x1000,0x400,0x2,0x2,0x0,0x1,0x1,0x1c000,0x1c000,0xc0,0xc0,0x2300,0x2300,0xc0,0x30,0x0,0x0,0x0,0x0,0x30,0x30,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + final private JJCalls[] jj_2_rtns = new JJCalls[52]; + private boolean jj_rescan = false; + private int jj_gc = 0; + + public Parser(java.io.InputStream stream) { + jj_input_stream = new JavaCharStream(stream, 1, 1); + token_source = new ParserTokenManager(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 85; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public void ReInit(java.io.InputStream stream) { + jj_input_stream.ReInit(stream, 1, 1); + token_source.ReInit(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 85; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public Parser(java.io.Reader stream) { + jj_input_stream = new JavaCharStream(stream, 1, 1); + token_source = new ParserTokenManager(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 85; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public void ReInit(java.io.Reader stream) { + jj_input_stream.ReInit(stream, 1, 1); + token_source.ReInit(jj_input_stream); + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 85; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public Parser(ParserTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 85; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + public void ReInit(ParserTokenManager tm) { + token_source = tm; + token = new Token(); + jj_ntk = -1; + jj_gen = 0; + for (int i = 0; i < 85; i++) jj_la1[i] = -1; + for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); + } + + final private Token jj_consume_token(int kind) throws ParseException { + Token oldToken; + if ((oldToken = token).next != null) token = token.next; + else token = token.next = token_source.getNextToken(); + jj_ntk = -1; + if (token.kind == kind) { + jj_gen++; + if (++jj_gc > 100) { + jj_gc = 0; + for (int i = 0; i < jj_2_rtns.length; i++) { + JJCalls c = jj_2_rtns[i]; + while (c != null) { + if (c.gen < jj_gen) c.first = null; + c = c.next; + } + } + } + return token; + } + token = oldToken; + jj_kind = kind; + throw generateParseException(); + } + + final private boolean jj_scan_token(int kind) { + if (jj_scanpos == jj_lastpos) { + jj_la--; + if (jj_scanpos.next == null) { + jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); + } else { + jj_lastpos = jj_scanpos = jj_scanpos.next; + } + } else { + jj_scanpos = jj_scanpos.next; + } + if (jj_rescan) { + int i = 0; Token tok = token; + while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } + if (tok != null) jj_add_error_token(kind, i); + } + return (jj_scanpos.kind != kind); + } + + final public Token getNextToken() { + if (token.next != null) token = token.next; + else token = token.next = token_source.getNextToken(); + jj_ntk = -1; + jj_gen++; + return token; + } + + final public Token getToken(int index) { + Token t = lookingAhead ? jj_scanpos : token; + for (int i = 0; i < index; i++) { + if (t.next != null) t = t.next; + else t = t.next = token_source.getNextToken(); + } + return t; + } + + final private int jj_ntk() { + if ((jj_nt=token.next) == null) + return (jj_ntk = (token.next=token_source.getNextToken()).kind); + else + return (jj_ntk = jj_nt.kind); + } + + private java.util.Vector jj_expentries = new java.util.Vector(); + private int[] jj_expentry; + private int jj_kind = -1; + private int[] jj_lasttokens = new int[100]; + private int jj_endpos; + + private void jj_add_error_token(int kind, int pos) { + if (pos >= 100) return; + if (pos == jj_endpos + 1) { + jj_lasttokens[jj_endpos++] = kind; + } else if (jj_endpos != 0) { + jj_expentry = new int[jj_endpos]; + for (int i = 0; i < jj_endpos; i++) { + jj_expentry[i] = jj_lasttokens[i]; + } + boolean exists = false; + for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) { + int[] oldentry = (int[])(enum.nextElement()); + if (oldentry.length == jj_expentry.length) { + exists = true; + for (int i = 0; i < jj_expentry.length; i++) { + if (oldentry[i] != jj_expentry[i]) { + exists = false; + break; + } + } + if (exists) break; + } + } + if (!exists) jj_expentries.addElement(jj_expentry); + if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; + } + } + + final public ParseException generateParseException() { + jj_expentries.removeAllElements(); + boolean[] la1tokens = new boolean[124]; + for (int i = 0; i < 124; i++) { + la1tokens[i] = false; + } + if (jj_kind >= 0) { + la1tokens[jj_kind] = true; + jj_kind = -1; + } + for (int i = 0; i < 85; i++) { + if (jj_la1[i] == jj_gen) { + for (int j = 0; j < 32; j++) { + if ((jj_la1_0[i] & (1<<j)) != 0) { + la1tokens[j] = true; + } + if ((jj_la1_1[i] & (1<<j)) != 0) { + la1tokens[32+j] = true; + } + if ((jj_la1_2[i] & (1<<j)) != 0) { + la1tokens[64+j] = true; + } + if ((jj_la1_3[i] & (1<<j)) != 0) { + la1tokens[96+j] = true; + } + } + } + } + for (int i = 0; i < 124; i++) { + if (la1tokens[i]) { + jj_expentry = new int[1]; + jj_expentry[0] = i; + jj_expentries.addElement(jj_expentry); + } + } + jj_endpos = 0; + jj_rescan_token(); + jj_add_error_token(0, 0); + int[][] exptokseq = new int[jj_expentries.size()][]; + for (int i = 0; i < jj_expentries.size(); i++) { + exptokseq[i] = (int[])jj_expentries.elementAt(i); + } + return new ParseException(token, exptokseq, tokenImage); + } + + final public void enable_tracing() { + } + + final public void disable_tracing() { + } + + final private void jj_rescan_token() { + jj_rescan = true; + for (int i = 0; i < 52; i++) { + JJCalls p = jj_2_rtns[i]; + do { + if (p.gen > jj_gen) { + jj_la = p.arg; jj_lastpos = jj_scanpos = p.first; + switch (i) { + case 0: jj_3_1(); break; + case 1: jj_3_2(); break; + case 2: jj_3_3(); break; + case 3: jj_3_4(); break; + case 4: jj_3_5(); break; + case 5: jj_3_6(); break; + case 6: jj_3_7(); break; + case 7: jj_3_8(); break; + case 8: jj_3_9(); break; + case 9: jj_3_10(); break; + case 10: jj_3_11(); break; + case 11: jj_3_12(); break; + case 12: jj_3_13(); break; + case 13: jj_3_14(); break; + case 14: jj_3_15(); break; + case 15: jj_3_16(); break; + case 16: jj_3_17(); break; + case 17: jj_3_18(); break; + case 18: jj_3_19(); break; + case 19: jj_3_20(); break; + case 20: jj_3_21(); break; + case 21: jj_3_22(); break; + case 22: jj_3_23(); break; + case 23: jj_3_24(); break; + case 24: jj_3_25(); break; + case 25: jj_3_26(); break; + case 26: jj_3_27(); break; + case 27: jj_3_28(); break; + case 28: jj_3_29(); break; + case 29: jj_3_30(); break; + case 30: jj_3_31(); break; + case 31: jj_3_32(); break; + case 32: jj_3_33(); break; + case 33: jj_3_34(); break; + case 34: jj_3_35(); break; + case 35: jj_3_36(); break; + case 36: jj_3_37(); break; + case 37: jj_3_38(); break; + case 38: jj_3_39(); break; + case 39: jj_3_40(); break; + case 40: jj_3_41(); break; + case 41: jj_3_42(); break; + case 42: jj_3_43(); break; + case 43: jj_3_44(); break; + case 44: jj_3_45(); break; + case 45: jj_3_46(); break; + case 46: jj_3_47(); break; + case 47: jj_3_48(); break; + case 48: jj_3_49(); break; + case 49: jj_3_50(); break; + case 50: jj_3_51(); break; + case 51: jj_3_52(); break; + } + } + p = p.next; + } while (p != null); + } + jj_rescan = false; + } + + final private void jj_save(int index, int xla) { + JJCalls p = jj_2_rtns[index]; + while (p.gen > jj_gen) { + if (p.next == null) { p = p.next = new JJCalls(); break; } + p = p.next; + } + p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla; + } + + static final class JJCalls { + int gen; + Token first; + int arg; + JJCalls next; + } + +} + +class IntAndObj +{ + IntAndObj( int ptr, Object obj ) { + super(); this.ptr = ptr; this.obj = obj; + } + int ptr; + Object obj; +} |