Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 149501 Details for
Bug 287648
[1.8][compiler] Add support for JSR 308 - Type Annotations Specification
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Grammar + Parser changes v0.8
jsr308.1410.patch (text/plain), 271.12 KB, created by
Srikanth Sankaran
on 2009-10-14 04:57:05 EDT
(
hide
)
Description:
Grammar + Parser changes v0.8
Filename:
MIME Type:
Creator:
Srikanth Sankaran
Created:
2009-10-14 04:57:05 EDT
Size:
271.12 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java,v >retrieving revision 1.51 >diff -u -r1.51 ParameterizedSingleTypeReference.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java 28 Apr 2009 16:53:03 -0000 1.51 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java 14 Oct 2009 06:05:30 -0000 >@@ -29,6 +29,10 @@ > this.originalSourceEnd = this.sourceEnd; > this.typeArguments = typeArguments; > } >+ public ParameterizedSingleTypeReference(char[] name, TypeReference[] typeArguments, int dim, Annotation[][] annotationsOnDimensions, long pos) { >+ this(name, typeArguments, dim, pos); >+ this.annotationsOnDimensions = annotationsOnDimensions; >+ } > public void checkBounds(Scope scope) { > if (this.resolvedType == null) return; > >@@ -48,6 +52,9 @@ > public TypeReference copyDims(int dim) { > return new ParameterizedSingleTypeReference(this.token, this.typeArguments, dim, (((long)this.sourceStart)<<32)+this.sourceEnd); > } >+ public TypeReference copyDims(int dim, Annotation [][] annotationsOnDims) { >+ return new ParameterizedSingleTypeReference(this.token, this.typeArguments, dim, annotationsOnDims, (((long)this.sourceStart)<<32)+this.sourceEnd); >+ } > > /** > * @return char[][] >@@ -81,6 +88,10 @@ > protected TypeBinding getTypeBinding(Scope scope) { > return null; // not supported here - combined with resolveType(...) > } >+ >+ public boolean isParametrizedTypeReference() { >+ return true; >+ } > > /* > * No need to check for reference to raw type per construction >@@ -252,6 +263,9 @@ > } > > public StringBuffer printExpression(int indent, StringBuffer output){ >+ if (this.annotations != null) { >+ printAnnotations(this.annotations, output); >+ } > output.append(this.token); > output.append("<"); //$NON-NLS-1$ > int max = this.typeArguments.length - 1; >@@ -263,11 +277,23 @@ > output.append(">"); //$NON-NLS-1$ > if ((this.bits & IsVarArgs) != 0) { > for (int i= 0 ; i < this.dimensions - 1; i++) { >+ if (this.annotationsOnDimensions != null && this.annotationsOnDimensions[i] != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.annotationsOnDimensions[i], output); >+ } > output.append("[]"); //$NON-NLS-1$ > } >+ if (this.annotationsOnDimensions != null && this.annotationsOnDimensions[this.dimensions - 1] != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.annotationsOnDimensions[this.dimensions - 1], output); >+ } > output.append("..."); //$NON-NLS-1$ > } else { > for (int i= 0 ; i < this.dimensions; i++) { >+ if (this.annotationsOnDimensions != null && this.annotationsOnDimensions[i] != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.annotationsOnDimensions[i], output); >+ } > output.append("[]"); //$NON-NLS-1$ > } > } >Index: compiler/org/eclipse/jdt/internal/compiler/ast/ArrayTypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ArrayTypeReference.java,v >retrieving revision 1.32 >diff -u -r1.32 ArrayTypeReference.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/ArrayTypeReference.java 27 Jun 2008 16:03:55 -0000 1.32 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/ArrayTypeReference.java 14 Oct 2009 06:05:29 -0000 >@@ -19,6 +19,7 @@ > > public class ArrayTypeReference extends SingleTypeReference { > public int dimensions; >+ public Annotation[][] annotationsOnDimensions; // jsr308 style type annotations on dimensions. > public int originalSourceEnd; > > /** >@@ -32,12 +33,22 @@ > super(source, pos); > this.originalSourceEnd = this.sourceEnd; > this.dimensions = dimensions ; >+ this.annotationsOnDimensions = null; >+ } >+ >+ public ArrayTypeReference(char[] source, int dimensions, Annotation[][] annotationsOnDimensions, long pos) { >+ this(source, dimensions, pos); >+ this.annotationsOnDimensions = annotationsOnDimensions; > } > > public int dimensions() { > > return this.dimensions; > } >+ >+ public Annotation[][] getAnnotationsOnDimensions() { >+ return this.annotationsOnDimensions; >+ } > /** > * @return char[][] > */ >@@ -69,11 +80,23 @@ > super.printExpression(indent, output); > if ((this.bits & IsVarArgs) != 0) { > for (int i= 0 ; i < this.dimensions - 1; i++) { >+ if (this.annotationsOnDimensions != null && this.annotationsOnDimensions[i] != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.annotationsOnDimensions[i], output); >+ } > output.append("[]"); //$NON-NLS-1$ > } >+ if (this.annotationsOnDimensions != null && this.annotationsOnDimensions[this.dimensions - 1] != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.annotationsOnDimensions[this.dimensions - 1], output); >+ } > output.append("..."); //$NON-NLS-1$ > } else { > for (int i= 0 ; i < this.dimensions; i++) { >+ if (this.annotationsOnDimensions != null && this.annotationsOnDimensions[i] != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.annotationsOnDimensions[i], output); >+ } > output.append("[]"); //$NON-NLS-1$ > } > } >Index: compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedTypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedTypeReference.java,v >retrieving revision 1.48 >diff -u -r1.48 QualifiedTypeReference.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedTypeReference.java 27 Jun 2008 16:03:54 -0000 1.48 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedTypeReference.java 14 Oct 2009 06:05:30 -0000 >@@ -33,6 +33,12 @@ > //warning : the new type ref has a null binding > return new ArrayQualifiedTypeReference(this.tokens, dim, this.sourcePositions); > } >+ >+ public TypeReference copyDims(int dim, Annotation[][] annotationsOnDimensions) { >+ //return a type reference copy of me with some dimensions >+ //warning : the new type ref has a null binding >+ return new ArrayQualifiedTypeReference(this.tokens, dim, annotationsOnDimensions, this.sourcePositions); >+ } > > protected TypeBinding findNextTypeBinding(int tokenIndex, Scope scope, PackageBinding packageBinding) { > LookupEnvironment env = scope.environment(); >@@ -122,7 +128,9 @@ > } > > public StringBuffer printExpression(int indent, StringBuffer output) { >- >+ if (this.annotations != null) { >+ printAnnotations(this.annotations, output); >+ } > for (int i = 0; i < this.tokens.length; i++) { > if (i > 0) output.append('.'); > output.append(this.tokens[i]); >Index: compiler/org/eclipse/jdt/internal/compiler/ast/TypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeReference.java,v >retrieving revision 1.41 >diff -u -r1.41 TypeReference.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/TypeReference.java 27 Jun 2008 16:03:55 -0000 1.41 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/TypeReference.java 14 Oct 2009 06:05:30 -0000 >@@ -31,7 +31,7 @@ > /* > * Answer a base type reference (can be an array of base type). > */ >-public static final TypeReference baseTypeReference(int baseType, int dim) { >+public static final TypeReference baseTypeReference(int baseType, int dim, Annotation [][] dimAnnotations) { > > if (dim == 0) { > switch (baseType) { >@@ -57,26 +57,29 @@ > } > switch (baseType) { > case (TypeIds.T_void) : >- return new ArrayTypeReference(TypeBinding.VOID.simpleName, dim, 0); >+ return new ArrayTypeReference(TypeBinding.VOID.simpleName, dim, dimAnnotations, 0); > case (TypeIds.T_boolean) : >- return new ArrayTypeReference(TypeBinding.BOOLEAN.simpleName, dim, 0); >+ return new ArrayTypeReference(TypeBinding.BOOLEAN.simpleName, dim, dimAnnotations, 0); > case (TypeIds.T_char) : >- return new ArrayTypeReference(TypeBinding.CHAR.simpleName, dim, 0); >+ return new ArrayTypeReference(TypeBinding.CHAR.simpleName, dim, dimAnnotations, 0); > case (TypeIds.T_float) : >- return new ArrayTypeReference(TypeBinding.FLOAT.simpleName, dim, 0); >+ return new ArrayTypeReference(TypeBinding.FLOAT.simpleName, dim, dimAnnotations, 0); > case (TypeIds.T_double) : >- return new ArrayTypeReference(TypeBinding.DOUBLE.simpleName, dim, 0); >+ return new ArrayTypeReference(TypeBinding.DOUBLE.simpleName, dim, dimAnnotations, 0); > case (TypeIds.T_byte) : >- return new ArrayTypeReference(TypeBinding.BYTE.simpleName, dim, 0); >+ return new ArrayTypeReference(TypeBinding.BYTE.simpleName, dim, dimAnnotations, 0); > case (TypeIds.T_short) : >- return new ArrayTypeReference(TypeBinding.SHORT.simpleName, dim, 0); >+ return new ArrayTypeReference(TypeBinding.SHORT.simpleName, dim, dimAnnotations, 0); > case (TypeIds.T_int) : >- return new ArrayTypeReference(TypeBinding.INT.simpleName, dim, 0); >+ return new ArrayTypeReference(TypeBinding.INT.simpleName, dim, dimAnnotations, 0); > default : //T_long >- return new ArrayTypeReference(TypeBinding.LONG.simpleName, dim, 0); >+ return new ArrayTypeReference(TypeBinding.LONG.simpleName, dim, dimAnnotations, 0); > } > } > >+// JSR308 type annotations... >+public Annotation[] annotations = null; >+ > // allows us to trap completion & selection nodes > public void aboutToResolve(Scope scope) { > // default implementation: do nothing >@@ -88,9 +91,13 @@ > // only parameterized type references have bounds > } > public abstract TypeReference copyDims(int dim); >+public abstract TypeReference copyDims(int dim, Annotation[][] annotationsOnDimensions); > public int dimensions() { > return 0; > } >+public Annotation[][] getAnnotationsOnDimensions() { >+ return null; >+} > > public abstract char[] getLastToken(); > >@@ -166,6 +173,10 @@ > return true; > } > >+public boolean isParametrizedTypeReference() { >+ return false; >+} >+ > protected void reportDeprecatedType(TypeBinding type, Scope scope) { > scope.problemReporter().deprecatedType(type, this); > } >Index: compiler/org/eclipse/jdt/internal/compiler/ast/SingleTypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SingleTypeReference.java,v >retrieving revision 1.32 >diff -u -r1.32 SingleTypeReference.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/SingleTypeReference.java 27 Jun 2008 16:03:54 -0000 1.32 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/SingleTypeReference.java 14 Oct 2009 06:05:30 -0000 >@@ -33,6 +33,13 @@ > > return new ArrayTypeReference(this.token, dim,(((long)this.sourceStart)<<32)+this.sourceEnd); > } >+ >+ public TypeReference copyDims(int dim, Annotation[][] annotationsOnDimensions){ >+ //return a type reference copy of me with some dimensions >+ //warning : the new type ref has a null binding >+ >+ return new ArrayTypeReference(this.token, dim, annotationsOnDimensions, (((long)this.sourceStart)<<32)+this.sourceEnd); >+ } > > public char[] getLastToken() { > return this.token; >@@ -54,7 +61,9 @@ > } > > public StringBuffer printExpression(int indent, StringBuffer output){ >- >+ if (this.annotations != null) { >+ printAnnotations(this.annotations, output); >+ } > return output.append(this.token); > } > >Index: compiler/org/eclipse/jdt/internal/compiler/ast/ArrayQualifiedTypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ArrayQualifiedTypeReference.java,v >retrieving revision 1.32 >diff -u -r1.32 ArrayQualifiedTypeReference.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/ArrayQualifiedTypeReference.java 7 Mar 2009 01:08:07 -0000 1.32 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/ArrayQualifiedTypeReference.java 14 Oct 2009 06:05:29 -0000 >@@ -17,17 +17,28 @@ > > public class ArrayQualifiedTypeReference extends QualifiedTypeReference { > int dimensions; >+ Annotation[][] annotationsOnDimensions; // jsr308 style type annotations on dimensions > > public ArrayQualifiedTypeReference(char[][] sources , int dim, long[] poss) { > > super( sources , poss); > this.dimensions = dim ; >+ this.annotationsOnDimensions = null; >+ } >+ >+ public ArrayQualifiedTypeReference(char[][] sources, int dim, Annotation[][] annotationsOnDimensions, long[] poss) { >+ this(sources, dim, poss); >+ this.annotationsOnDimensions = annotationsOnDimensions; > } > > public int dimensions() { > > return this.dimensions; > } >+ >+ public Annotation[][] getAnnotationsOnDimensions() { >+ return this.annotationsOnDimensions; >+ } > > /** > * @return char[][] >@@ -72,11 +83,23 @@ > super.printExpression(indent, output); > if ((this.bits & IsVarArgs) != 0) { > for (int i= 0 ; i < this.dimensions - 1; i++) { >+ if (this.annotationsOnDimensions != null && this.annotationsOnDimensions[i] != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.annotationsOnDimensions[i], output); >+ } > output.append("[]"); //$NON-NLS-1$ > } >+ if (this.annotationsOnDimensions != null && this.annotationsOnDimensions[this.dimensions - 1] != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.annotationsOnDimensions[this.dimensions - 1], output); >+ } > output.append("..."); //$NON-NLS-1$ > } else { > for (int i= 0 ; i < this.dimensions; i++) { >+ if (this.annotationsOnDimensions != null && this.annotationsOnDimensions[i] != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.annotationsOnDimensions[i], output); >+ } > output.append("[]"); //$NON-NLS-1$ > } > } >Index: compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java,v >retrieving revision 1.55 >diff -u -r1.55 ParameterizedQualifiedTypeReference.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java 28 Apr 2009 16:53:03 -0000 1.55 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java 14 Oct 2009 06:05:29 -0000 >@@ -34,6 +34,10 @@ > super(tokens, dim, positions); > this.typeArguments = typeArguments; > } >+ public ParameterizedQualifiedTypeReference(char[][] tokens, TypeReference[][] typeArguments, int dim, Annotation[][] annotationsOnDimensions, long[] positions) { >+ this(tokens, typeArguments, dim, positions); >+ this.annotationsOnDimensions = annotationsOnDimensions; >+ } > public void checkBounds(Scope scope) { > if (this.resolvedType == null) return; > >@@ -59,6 +63,12 @@ > public TypeReference copyDims(int dim){ > return new ParameterizedQualifiedTypeReference(this.tokens, this.typeArguments, dim, this.sourcePositions); > } >+ public TypeReference copyDims(int dim, Annotation[][] dimensionAnnotations){ >+ return new ParameterizedQualifiedTypeReference(this.tokens, this.typeArguments, dim, dimensionAnnotations, this.sourcePositions); >+ } >+ public boolean isParametrizedTypeReference() { >+ return true; >+ } > > /** > * @return char[][] >@@ -295,6 +305,10 @@ > } > > public StringBuffer printExpression(int indent, StringBuffer output) { >+ if (this.annotations != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.annotations, output); >+ } > int length = this.tokens.length; > for (int i = 0; i < length - 1; i++) { > output.append(this.tokens[i]); >@@ -325,11 +339,23 @@ > } > if ((this.bits & IsVarArgs) != 0) { > for (int i= 0 ; i < this.dimensions - 1; i++) { >+ if (this.annotationsOnDimensions != null && this.annotationsOnDimensions[i] != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.annotationsOnDimensions[i], output); >+ } > output.append("[]"); //$NON-NLS-1$ > } >+ if (this.annotationsOnDimensions != null && this.annotationsOnDimensions[this.dimensions - 1] != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.annotationsOnDimensions[this.dimensions - 1], output); >+ } > output.append("..."); //$NON-NLS-1$ > } else { > for (int i= 0 ; i < this.dimensions; i++) { >+ if (this.annotationsOnDimensions != null && this.annotationsOnDimensions[i] != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.annotationsOnDimensions[i], output); >+ } > output.append("[]"); //$NON-NLS-1$ > } > } >Index: compiler/org/eclipse/jdt/internal/compiler/ast/JavadocImplicitTypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/JavadocImplicitTypeReference.java,v >retrieving revision 1.15 >diff -u -r1.15 JavadocImplicitTypeReference.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/JavadocImplicitTypeReference.java 27 Jun 2008 16:03:55 -0000 1.15 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/JavadocImplicitTypeReference.java 14 Oct 2009 06:05:29 -0000 >@@ -30,6 +30,10 @@ > public TypeReference copyDims(int dim) { > return null; > } >+ >+ public TypeReference copyDims(int dim, Annotation[][] annotationsOnDimensions) { >+ return null; >+ } > > /* (non-Javadoc) > * @see org.eclipse.jdt.internal.compiler.ast.TypeReference#getTypeBinding(org.eclipse.jdt.internal.compiler.lookup.Scope) >Index: compiler/org/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration.java,v >retrieving revision 1.103 >diff -u -r1.103 AbstractMethodDeclaration.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration.java 7 Mar 2009 01:08:07 -0000 1.103 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration.java 14 Oct 2009 06:05:29 -0000 >@@ -35,6 +35,7 @@ > public int modifiers; > public int modifiersSourceStart; > public Annotation[] annotations; >+ public Annotation[] receiverAnnotations; > public Argument[] arguments; > public TypeReference[] thrownExceptions; > public Statement[] statements; >@@ -359,6 +360,10 @@ > } > } > output.append(')'); >+ if (this.receiverAnnotations != null) { >+ output.append(" "); //$NON-NLS-1$ >+ printAnnotations(this.receiverAnnotations, output); >+ } > if (this.thrownExceptions != null) { > output.append(" throws "); //$NON-NLS-1$ > for (int i = 0; i < this.thrownExceptions.length; i++) { >@@ -403,6 +408,12 @@ > bindThrownExceptions(); > resolveJavadoc(); > resolveAnnotations(this.scope, this.annotations, this.binding); >+ // jsr308 >+ if (this.receiverAnnotations != null && this.scope.isStatic) { >+ int last = this.receiverAnnotations.length - 1; >+ this.scope.problemReporter().illegalReceiverAnnotations(this.receiverAnnotations[0], >+ this.receiverAnnotations[last]); >+ } > resolveStatements(); > // check @Deprecated annotation presence > if (this.binding != null >Index: compiler/org/eclipse/jdt/internal/compiler/ast/TypeParameter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeParameter.java,v >retrieving revision 1.12 >diff -u -r1.12 TypeParameter.java >--- compiler/org/eclipse/jdt/internal/compiler/ast/TypeParameter.java 7 Mar 2009 01:08:07 -0000 1.12 >+++ compiler/org/eclipse/jdt/internal/compiler/ast/TypeParameter.java 14 Oct 2009 06:05:30 -0000 >@@ -67,6 +67,9 @@ > * @see org.eclipse.jdt.internal.compiler.ast.AstNode#print(int, java.lang.StringBuffer) > */ > public StringBuffer printStatement(int indent, StringBuffer output) { >+ if (this.annotations != null) { >+ printAnnotations(this.annotations, output); >+ } > output.append(this.name); > if (this.type != null) { > output.append(" extends "); //$NON-NLS-1$ >Index: codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java,v >retrieving revision 1.90 >diff -u -r1.90 AssistParser.java >--- codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java 22 Jun 2009 14:00:52 -0000 1.90 >+++ codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java 14 Oct 2009 06:05:29 -0000 >@@ -889,13 +889,13 @@ > /* > * Build specific type reference nodes in case the cursor is located inside the type reference > */ >-protected TypeReference getTypeReference(int dim) { >+protected TypeReference getUnannotatedTypeReference(int dim) { > > int index; > > /* no need to take action if not inside completed identifiers */ > if ((index = indexOfAssistIdentifier(true)) < 0) { >- return super.getTypeReference(dim); >+ return super.getUnannotatedTypeReference(dim); > } > int length = this.identifierLengthStack[this.identifierLengthPtr]; > TypeReference reference; >@@ -1602,6 +1602,9 @@ > this.astLengthPtr = -1; > this.expressionPtr = -1; > this.expressionLengthPtr = -1; >+ this.unattachedAnnotationPtr = -1; >+ this.typeAnnotationLengthPtr = -1; >+ this.typeAnnotationPtr = -1; > this.identifierPtr = -1; > this.identifierLengthPtr = -1; > this.intPtr = -1; >Index: grammar/java.g >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/grammar/java.g,v >retrieving revision 1.10 >diff -u -r1.10 java.g >--- grammar/java.g 7 May 2009 08:49:43 -0000 1.10 >+++ grammar/java.g 14 Oct 2009 06:05:38 -0000 >@@ -178,8 +178,11 @@ > Goal ::= '>>' Initializer > -- error recovery > -- Modifiersopt is used to properly consume a header and exit the rule reduction at the end of the parse() method >-Goal ::= '>>>' Header1 Modifiersopt >-Goal ::= '!' Header2 Modifiersopt >+-- 1.7, we now use NonAnnotModifiersopt, since using Modifiersopt here pollutes the follow set of >+-- various non terminals and results in shift/reduce conflicts in various places. (e.g, ConstructorHeader >+-- cannot really have Modifiers in its follow set.) >+Goal ::= '>>>' Header1 NonAnnotModifiersopt >+Goal ::= '!' Header2 NonAnnotModifiersopt > Goal ::= '*' BlockStatements > Goal ::= '*' CatchHeader > -- JDOM >@@ -213,9 +216,37 @@ > BooleanLiteral -> false > /:$readableName BooleanLiteral:/ > >-Type ::= PrimitiveType >+-- Type is a wrapper that automatically allows for jsr308 style >+-- annotations to prefix a (Java5/6) Type. If type annotations >+-- are illegal in a certain place, use TypeInternal instead. >+-- If type annotations are legal, but so are java5/6 style >+-- declaration annotations, use Type0 instead. >+ >+Type ::= TypeInternal >+-- consumeUnannotatedType inserts 0 at the suitable place in the type >+-- annotation stacks, so that the TOS(typeAnnotationsLengthStack) is the right >+-- length of the type annotations 0 or otherwise. >+/.$putCase consumeUnannotatedType(); $break ./ >+Type ::= TypeAnnotations TypeInternal >+/:$compliance 1.7:/ >+/:$readableName Type:/ >+ >+-- Type0 is to be used in places where type annotations are legal >+-- but are not consumed as TypeAnnotations, but as modifiers. This >+-- is because from the parser's point of view there are places where >+-- java5/6 style declarations annotations can occur in the same place >+-- and it is too early to tell which is which. >+Type0 ::= TypeInternal >+-- consumeUnannotatedType inserts 0 at the suitable place in the type >+-- annotation stacks, so that the TOS(typeAnnotationsLengthStack) is the right >+-- length of the type annotations 0 or otherwise. >+/.$putCase consumeUnannotatedType(); $break ./ >+/:$readableName Type:/ >+ >+-- TypeInternal is the Java5/6 Type >+TypeInternal ::= PrimitiveType > /.$putCase consumePrimitiveType(); $break ./ >-Type -> ReferenceType >+TypeInternal -> ReferenceType0 > /:$readableName Type:/ > > PrimitiveType -> NumericType >@@ -236,28 +267,74 @@ > FloatingPointType -> 'double' > /:$readableName FloatingPointType:/ > >-ReferenceType ::= ClassOrInterfaceType >+---------------------------- JSR308------------------------------------------- >+-- ReferenceType has been wrapped now, so that it can be used by itself without >+-- having to spell out the rule once with TypeAnnotations & once without. >+-- Or alternately without prefixing it with Annotationsopt (which in many contexts >+-- will lead to shift/reduce conflicts.) If type annotations are not legal prefixes >+-- to ReferenceType at some point, use ReferenceType0 instead. Otherwise reject the >+-- annotations in the parser. >+ >+ReferenceType ::= ReferenceType0 >+-- consumeUnannotatedType inserts 0 at the suitable place in the type >+-- annotation stacks, so that the TOS(typeAnnotationsLengthStack) is the right >+-- length of the type annotations 0 or otherwise. >+/.$putCase consumeUnannotatedType(); $break ./ >+ReferenceType ::= TypeAnnotations ReferenceType0 >+/:$compliance 1.7:/ >+/:$readableName ReferenceType:/ >+ >+ReferenceType0 ::= ClassOrInterfaceType0 > /.$putCase consumeReferenceType(); $break ./ >-ReferenceType -> ArrayType >+ReferenceType0 -> ArrayType > /:$readableName ReferenceType:/ > >---------------------------------------------------------------- >--- 1.5 feature >---------------------------------------------------------------- >-ClassOrInterfaceType -> ClassOrInterface >-ClassOrInterfaceType -> GenericType >+Annotationsopt ::= $empty >+/.$putCase consumeZeroTypeAnnotations(true); $break ./ >+Annotationsopt ::= TypeAnnotations >+/:$compliance 1.7:/ >+/:$readableName Annotationsopt:/ >+ >+-- ClassOrInterfaceType has now been wrapped so that it automatically includes >+-- JSR308 style optional annotations. Use ClassOrInterfaceType0 if annotations >+-- are illegal in some place - otherwise reject the annotations in the parser. >+ClassOrInterfaceType ::= Annotationsopt ClassOrInterfaceType0 > /:$readableName Type:/ > >-ClassOrInterface ::= Name >+ClassOrInterfaceType0 -> ClassOrInterface0 >+ClassOrInterfaceType0 -> GenericType >+/:$readableName Type:/ >+---------------------------- JSR308------------------------------------------- >+ >+-- ClassOrInterface has been wrapped now so that it ALWAYS PUSHES >+-- A 0 IN THE TYPE ANNOTATIONS LENGTH STACK. If this behavior is >+-- not desirable, then (a) use ClassOrInterface0 if possible or (b) >+-- if that is not possible due to conflicts, then this 0 will have >+-- to be popped suitably when erroneous/extraneous. See the use of >+-- the production PopZeroTypeAnnotations for examples. >+ >+ClassOrInterface ::= ClassOrInterface0 >+/.$putCase consumeZeroTypeAnnotations(true); $break ./ >+/:$readableName Type:/ >+ >+ClassOrInterface0 ::= Name > /.$putCase consumeClassOrInterfaceName(); $break ./ >-ClassOrInterface ::= GenericType '.' Name >-/.$putCase consumeClassOrInterface(); $break ./ >+ClassOrInterface0 ::= GenericTypeDotName > /:$readableName Type:/ > >-GenericType ::= ClassOrInterface TypeArguments >+PopZeroTypeAnnotations ::= $empty >+/.$putCase consumeZeroTypeAnnotations(false); $break ./ >+/:$readableName PopZeroTypeAnnotations:/ >+ >+GenericType ::= ClassOrInterface TypeArguments PopZeroTypeAnnotations > /.$putCase consumeGenericType(); $break ./ >+/:$compliance 1.5:/ > /:$readableName GenericType:/ > >+GenericTypeDotName ::= GenericType '.' Name >+/.$putCase consumeClassOrInterface(); $break ./ >+/:$readableName GenericTypeDotName:/ >+ > -- > -- These rules have been rewritten to avoid some conflicts introduced > -- by adding the 1.1 features >@@ -267,8 +344,7 @@ > -- ArrayType ::= ArrayType '[' ']' > -- > >-ArrayTypeWithTypeArgumentsName ::= GenericType '.' Name >-/.$putCase consumeArrayTypeWithTypeArgumentsName(); $break ./ >+ArrayTypeWithTypeArgumentsName ::= GenericTypeDotName > /:$readableName ArrayTypeWithTypeArgumentsName:/ > > ArrayType ::= PrimitiveType Dims >@@ -422,11 +498,29 @@ > > --18.7 Only in the LALR(1) Grammar > >+NonAnnotModifiers -> NonAnnotModifier >+NonAnnotModifiers -> NonAnnotModifiers NonAnnotModifier >+/.$putCase consumeModifiers2(); $break ./ >+/:$readableName Modifiers:/ >+ > Modifiers -> Modifier > Modifiers ::= Modifiers Modifier > /.$putCase consumeModifiers2(); $break ./ > /:$readableName Modifiers:/ > >+NonAnnotModifier -> 'public' >+NonAnnotModifier -> 'protected' >+NonAnnotModifier -> 'private' >+NonAnnotModifier -> 'static' >+NonAnnotModifier -> 'abstract' >+NonAnnotModifier -> 'final' >+NonAnnotModifier -> 'native' >+NonAnnotModifier -> 'synchronized' >+NonAnnotModifier -> 'transient' >+NonAnnotModifier -> 'volatile' >+NonAnnotModifier -> 'strictfp' >+/:$readableName Modifier:/ >+ > Modifier -> 'public' > Modifier -> 'protected' > Modifier -> 'private' >@@ -548,7 +642,7 @@ > -- | 'transient' > -- | 'volatile' > >-FieldDeclaration ::= Modifiersopt Type VariableDeclarators ';' >+FieldDeclaration ::= Modifiersopt Type0 VariableDeclarators ';' > /.$putCase consumeFieldDeclaration(); $break ./ > /:$readableName FieldDeclaration:/ > >@@ -619,7 +713,7 @@ > > MethodHeaderName ::= Modifiersopt TypeParameters Type 'Identifier' '(' > /.$putCase consumeMethodHeaderNameWithTypeParameters(false); $break ./ >-MethodHeaderName ::= Modifiersopt Type 'Identifier' '(' >+MethodHeaderName ::= Modifiersopt Type0 'Identifier' '(' > /.$putCase consumeMethodHeaderName(false); $break ./ > /:$readableName MethodHeaderName:/ > >@@ -628,7 +722,7 @@ > /:$readableName ):/ > /:$recovery_template ):/ > >-MethodHeaderExtendedDims ::= Dimsopt >+MethodHeaderExtendedDims ::= DimsoptAnnotsopt > /.$putCase consumeMethodHeaderExtendedDims(); $break ./ > /:$readableName MethodHeaderExtendedDims:/ > >@@ -636,7 +730,7 @@ > /.$putCase consumeMethodHeaderThrowsClause(); $break ./ > /:$readableName MethodHeaderThrowsClause:/ > >-ConstructorHeader ::= ConstructorHeaderName FormalParameterListopt MethodHeaderRightParen MethodHeaderThrowsClauseopt >+ConstructorHeader ::= ConstructorHeaderName FormalParameterListopt MethodHeaderRightParen Annotationsopt MethodHeaderThrowsClauseopt > /.$putCase consumeConstructorHeader(); $break ./ > /:$readableName ConstructorDeclaration:/ > >@@ -651,10 +745,33 @@ > /.$putCase consumeFormalParameterList(); $break ./ > /:$readableName FormalParameterList:/ > >+PotentialNameArray -> $empty >+/.$putCase consumePotentialNameArrayType(); $break ./ >+/:$readableName PotentialNameArray:/ >+ > --1.1 feature >-FormalParameter ::= Modifiersopt Type VariableDeclaratorId >+--FormalParameter ::= Modifiersopt Type VariableDeclaratorId >+--FormalParameter ::= Modifiersopt Type '...' VariableDeclaratorId >+--The above rules have been rewritten by inlinng the type subgrammar >+--to avoid the conflicts resulting from jsr308 changes. >+FormalParameter ::= Modifiersopt PrimitiveType DimsoptAnnotsopt VariableDeclaratorId >+/.$putCase consumeFormalParameter(false); $break ./ >+FormalParameter ::= Modifiersopt PrimitiveType DimsoptAnnotsopt '...' VariableDeclaratorId >+/.$putCase consumeFormalParameter(true); $break ./ >+/:$compliance 1.5:/ >+FormalParameter ::= Modifiersopt Name DimsoptAnnotsopt PotentialNameArray VariableDeclaratorId >+/.$putCase consumeFormalParameter(false); $break ./ >+FormalParameter ::= Modifiersopt Name DimsoptAnnotsopt PotentialNameArray '...' VariableDeclaratorId >+/.$putCase consumeFormalParameter(true); $break ./ >+/:$compliance 1.5:/ >+FormalParameter ::= Modifiersopt GenericType DimsoptAnnotsopt VariableDeclaratorId >+/.$putCase consumeFormalParameter(false); $break ./ >+FormalParameter ::= Modifiersopt GenericType DimsoptAnnotsopt '...' VariableDeclaratorId >+/.$putCase consumeFormalParameter(true); $break ./ >+/:$compliance 1.5:/ >+FormalParameter ::= Modifiersopt GenericTypeDotName DimsoptAnnotsopt VariableDeclaratorId > /.$putCase consumeFormalParameter(false); $break ./ >-FormalParameter ::= Modifiersopt Type '...' VariableDeclaratorId >+FormalParameter ::= Modifiersopt GenericTypeDotName DimsoptAnnotsopt '...' VariableDeclaratorId > /.$putCase consumeFormalParameter(true); $break ./ > /:$readableName FormalParameter:/ > /:$compliance 1.5:/ >@@ -865,13 +982,13 @@ > /.$putCase consumeLocalVariableDeclarationStatement(); $break ./ > /:$readableName LocalVariableDeclarationStatement:/ > >-LocalVariableDeclaration ::= Type PushModifiers VariableDeclarators >+LocalVariableDeclaration ::= Type0 PushModifiers VariableDeclarators > /.$putCase consumeLocalVariableDeclaration(); $break ./ > -- 1.1 feature > -- The modifiers part of this rule makes the grammar more permissive. > -- The only modifier here is final. We put Modifiers to allow multiple modifiers > -- This will require to check the validity of the modifier >-LocalVariableDeclaration ::= Modifiers Type PushRealModifiers VariableDeclarators >+LocalVariableDeclaration ::= Modifiers Type0 PushRealModifiers VariableDeclarators > /.$putCase consumeLocalVariableDeclaration(); $break ./ > /:$readableName LocalVariableDeclaration:/ > >@@ -1108,6 +1225,10 @@ > /.$putCase consumeLeftParen(); $break ./ > /:$readableName (:/ > /:$recovery_template (:/ >+PushRPARENForUnannotatedTypeCast ::= ')' >+/.$putCase consumeRightParenForUnannotatedTypeCast(); $break ./ >+/:$readableName ):/ >+/:$recovery_template ):/ > PushRPAREN ::= ')' > /.$putCase consumeRightParen(); $break ./ > /:$readableName ):/ >@@ -1131,6 +1252,7 @@ > PrimaryNoNewArray -> ClassInstanceCreationExpression > PrimaryNoNewArray -> FieldAccess > --1.1 feature >+-- javac doesn't permit type annotations here. > PrimaryNoNewArray ::= Name '.' 'this' > /.$putCase consumePrimaryNoNewArrayNameThis(); $break ./ > PrimaryNoNewArray ::= Name '.' 'super' >@@ -1217,18 +1339,27 @@ > /.$putCase consumeArgumentList(); $break ./ > /:$readableName ArgumentList:/ > >+-- ArrayCreationHeader is used only in recovery and the consume* method is a NOP. > ArrayCreationHeader ::= 'new' PrimitiveType DimWithOrWithOutExprs > /.$putCase consumeArrayCreationHeader(); $break ./ >- >+ArrayCreationHeader ::= 'new' TypeAnnotations PrimitiveType DimWithOrWithOutExprs >+/:$compliance 1.7:/ >+/.$putCase consumeArrayCreationHeader(); $break ./ > ArrayCreationHeader ::= 'new' ClassOrInterfaceType DimWithOrWithOutExprs > /.$putCase consumeArrayCreationHeader(); $break ./ > /:$readableName ArrayCreationHeader:/ > >-ArrayCreationWithoutArrayInitializer ::= 'new' PrimitiveType DimWithOrWithOutExprs >+ArrayCreationWithoutArrayInitializer ::= 'new' PushZeroTypeAnnotations PrimitiveType DimWithOrWithOutExprs >+/.$putCase consumeArrayCreationExpressionWithoutInitializer(); $break ./ >+ArrayCreationWithoutArrayInitializer ::= 'new' TypeAnnotations PrimitiveType DimWithOrWithOutExprs >+/:$compliance 1.7:/ > /.$putCase consumeArrayCreationExpressionWithoutInitializer(); $break ./ > /:$readableName ArrayCreationWithoutArrayInitializer:/ > >-ArrayCreationWithArrayInitializer ::= 'new' PrimitiveType DimWithOrWithOutExprs ArrayInitializer >+ArrayCreationWithArrayInitializer ::= 'new' PushZeroTypeAnnotations PrimitiveType DimWithOrWithOutExprs ArrayInitializer >+/.$putCase consumeArrayCreationExpressionWithInitializer(); $break ./ >+ArrayCreationWithArrayInitializer ::= 'new' TypeAnnotations PrimitiveType DimWithOrWithOutExprs ArrayInitializer >+/:$compliance 1.7:/ > /.$putCase consumeArrayCreationExpressionWithInitializer(); $break ./ > /:$readableName ArrayCreationWithArrayInitializer:/ > >@@ -1243,12 +1374,46 @@ > /.$putCase consumeDimWithOrWithOutExprs(); $break ./ > /:$readableName Dimensions:/ > >-DimWithOrWithOutExpr ::= '[' Expression ']' >-DimWithOrWithOutExpr ::= '[' ']' >-/. $putCase consumeDimWithOrWithOutExpr(); $break ./ >+DimWithOrWithOutExpr ::= '[' PushZeroTypeAnnotations Expression ']' >+DimWithOrWithOutExpr ::= TypeAnnotations '[' Expression ']' >+/:$compliance 1.7:/ >+DimWithOrWithOutExpr ::= '[' PushZeroTypeAnnotations ']' >+/. $putCase consumeDimWithOutExpr(); $break ./ >+DimWithOrWithOutExpr ::= TypeAnnotations '[' ']' >+/. $putCase consumeDimWithOutExpr(); $break ./ >+/:$compliance 1.7:/ > /:$readableName Dimension:/ > -- ----------------------------------------------- > >+-- jsr 308 >+ >+DimsoptAnnotsopt -> $empty >+/. $putCase consumeEmptyDimsoptAnnotsopt(); $break ./ >+/:$readableName AnnotationsDimensionsSequence:/ >+DimsoptAnnotsopt -> DimsAnnotLoop >+/. $putCase consumeDimsWithTrailingAnnotsopt(); $break ./ >+/:$readableName Dimensionsoptannotsopt:/ >+DimsAnnotLoop ::= OneDimOrAnnot >+DimsAnnotLoop ::= DimsAnnotLoop OneDimOrAnnot >+/:$readableName DimsAnnotLoop:/ >+ >+OneDimOrAnnot ::= Annotation >+/. $putCase consumeTypeAnnotation(true); $break ./ >+-- Complain if source level < 1.7 >+/:$compliance 1.7:/ >+OneDimOrAnnot -> '[' ']' >+/. $putCase consumeOneDimLoop(true); $break ./ >+-- Bump up dimensions && mark zero annotations. >+/:$readableName OneDimensionOrAnnotation:/ >+ >+TypeAnnotations ::= Annotation >+/. $putCase consumeTypeAnnotation(false); $break ./ >+/:$compliance 1.7:/ >+TypeAnnotations ::= TypeAnnotations Annotation >+/. $putCase consumeOneMoreTypeAnnotation(); $break ./ >+/:$compliance 1.7:/ >+/:$readableName TypeAnnotations:/ >+ > Dims ::= DimsLoop > /. $putCase consumeDims(); $break ./ > /:$readableName Dimensions:/ >@@ -1256,8 +1421,14 @@ > DimsLoop ::= DimsLoop OneDimLoop > /:$readableName Dimensions:/ > OneDimLoop ::= '[' ']' >-/. $putCase consumeOneDimLoop(); $break ./ >+/. $putCase consumeOneDimLoop(false); $break ./ >+-- Bump up dimensions && mark zero annotations. > /:$readableName Dimension:/ >+OneDimLoop ::= TypeAnnotations '[' ']' >+/:$compliance 1.7:/ >+/. $putCase consumeOneDimLoopWithAnnotations(); $break ./ >+-- Bump up dimensions >+/:$readableName DimensionWithAnnotations:/ > > FieldAccess ::= Primary '.' 'Identifier' > /.$putCase consumeFieldAccess(false); $break ./ >@@ -1338,15 +1509,30 @@ > UnaryExpressionNotPlusMinus -> CastExpression > /:$readableName Expression:/ > >-CastExpression ::= PushLPAREN PrimitiveType Dimsopt PushRPAREN InsideCastExpression UnaryExpression >+CastExpression ::= PushLPAREN PrimitiveType Dimsopt PushRPARENForUnannotatedTypeCast InsideCastExpression UnaryExpression > /.$putCase consumeCastExpressionWithPrimitiveType(); $break ./ >-CastExpression ::= PushLPAREN Name OnlyTypeArgumentsForCastExpression Dimsopt PushRPAREN InsideCastExpression UnaryExpressionNotPlusMinus >+CastExpression ::= PushLPAREN TypeAnnotations PrimitiveType Dimsopt PushRPAREN InsideCastExpression UnaryExpression >+/:$compliance 1.7:/ >+/.$putCase consumeCastExpressionWithPrimitiveType(); $break ./ >+CastExpression ::= PushLPAREN Name OnlyTypeArgumentsForCastExpression Dimsopt PushRPARENForUnannotatedTypeCast InsideCastExpression UnaryExpressionNotPlusMinus >+/.$putCase consumeCastExpressionWithGenericsArray(); $break ./ >+CastExpression ::= PushLPAREN TypeAnnotations Name OnlyTypeArgumentsForCastExpression Dimsopt PushRPAREN InsideCastExpression UnaryExpressionNotPlusMinus >+/:$compliance 1.7:/ > /.$putCase consumeCastExpressionWithGenericsArray(); $break ./ >-CastExpression ::= PushLPAREN Name OnlyTypeArgumentsForCastExpression '.' ClassOrInterfaceType Dimsopt PushRPAREN InsideCastExpressionWithQualifiedGenerics UnaryExpressionNotPlusMinus >+CastExpression ::= PushLPAREN Name OnlyTypeArgumentsForCastExpression '.' ClassOrInterfaceType0 Dimsopt PushRPARENForUnannotatedTypeCast InsideCastExpressionWithQualifiedGenerics UnaryExpressionNotPlusMinus > /.$putCase consumeCastExpressionWithQualifiedGenericsArray(); $break ./ >-CastExpression ::= PushLPAREN Name PushRPAREN InsideCastExpressionLL1 UnaryExpressionNotPlusMinus >+CastExpression ::= PushLPAREN TypeAnnotations Name OnlyTypeArgumentsForCastExpression '.' ClassOrInterfaceType0 Dimsopt PushRPAREN InsideCastExpressionWithQualifiedGenerics UnaryExpressionNotPlusMinus >+/:$compliance 1.7:/ >+/.$putCase consumeCastExpressionWithQualifiedGenericsArray(); $break ./ >+CastExpression ::= PushLPAREN Name PushRPAREN PushZeroTypeAnnotations InsideCastExpressionLL1 UnaryExpressionNotPlusMinus >+/.$putCase consumeCastExpressionLL1(); $break ./ >+CastExpression ::= PushLPAREN TypeAnnotations Name PushRPAREN InsideCastExpressionLL1 UnaryExpressionNotPlusMinus >+/:$compliance 1.7:/ > /.$putCase consumeCastExpressionLL1(); $break ./ >-CastExpression ::= PushLPAREN Name Dims PushRPAREN InsideCastExpression UnaryExpressionNotPlusMinus >+CastExpression ::= PushLPAREN Name Dims PushRPARENForUnannotatedTypeCast InsideCastExpression UnaryExpressionNotPlusMinus >+/.$putCase consumeCastExpressionWithNameArray(); $break ./ >+CastExpression ::= PushLPAREN TypeAnnotations Name Dims PushRPAREN InsideCastExpression UnaryExpressionNotPlusMinus >+/:$compliance 1.7:/ > /.$putCase consumeCastExpressionWithNameArray(); $break ./ > /:$readableName CastExpression:/ > >@@ -1526,6 +1712,12 @@ > /.$putCase consumeClassBodyDeclarationsopt(); $break ./ > /:$readableName ClassBodyDeclarations:/ > >+NonAnnotModifiersopt ::= $empty >+/. $putCase consumeDefaultModifiers(); $break ./ >+NonAnnotModifiersopt ::= NonAnnotModifiers >+/.$putCase consumeModifiers(); $break ./ >+/:$readableName Modifiers:/ >+ > Modifiersopt ::= $empty > /. $putCase consumeDefaultModifiers(); $break ./ > Modifiersopt ::= Modifiers >@@ -1666,11 +1858,11 @@ > /.$putCase consumeEnhancedForStatement(); $break ./ > /:$readableName EnhancedForStatementNoShortIf:/ > >-EnhancedForStatementHeaderInit ::= 'for' '(' Type PushModifiers Identifier Dimsopt >+EnhancedForStatementHeaderInit ::= 'for' '(' Type0 PushModifiers Identifier Dimsopt > /.$putCase consumeEnhancedForStatementHeaderInit(false); $break ./ > /:$readableName EnhancedForStatementHeaderInit:/ > >-EnhancedForStatementHeaderInit ::= 'for' '(' Modifiers Type PushRealModifiers Identifier Dimsopt >+EnhancedForStatementHeaderInit ::= 'for' '(' Modifiers Type0 PushRealModifiers Identifier Dimsopt > /.$putCase consumeEnhancedForStatementHeaderInit(true); $break ./ > /:$readableName EnhancedForStatementHeaderInit:/ > >@@ -1745,8 +1937,11 @@ > /:$compliance 1.5:/ > ReferenceType1 ::= ClassOrInterface '<' TypeArgumentList2 > /.$putCase consumeTypeArgumentReferenceType1(); $break ./ >-/:$readableName ReferenceType1:/ > /:$compliance 1.5:/ >+ReferenceType1 ::= TypeAnnotations ClassOrInterface '<' TypeArgumentList2 PopZeroTypeAnnotations >+/:$compliance 1.7:/ >+/.$putCase consumeTypeArgumentReferenceType1(); $break ./ >+/:$readableName ReferenceType1:/ > > TypeArgumentList2 -> TypeArgument2 > /:$compliance 1.5:/ >@@ -1766,8 +1961,11 @@ > /:$compliance 1.5:/ > ReferenceType2 ::= ClassOrInterface '<' TypeArgumentList3 > /.$putCase consumeTypeArgumentReferenceType2(); $break ./ >-/:$readableName ReferenceType2:/ > /:$compliance 1.5:/ >+ReferenceType2 ::= TypeAnnotations ClassOrInterface '<' TypeArgumentList3 PopZeroTypeAnnotations >+/:$compliance 1.7:/ >+/.$putCase consumeTypeArgumentReferenceType2(); $break ./ >+/:$readableName ReferenceType2:/ > > TypeArgumentList3 -> TypeArgument3 > TypeArgumentList3 ::= TypeArgumentList ',' TypeArgument3 >@@ -1849,10 +2047,17 @@ > /:$readableName WildcardBound3:/ > /:$compliance 1.5:/ > >-TypeParameterHeader ::= Identifier >+PushZeroTypeAnnotations ::= $empty >+/.$putCase consumeZeroTypeAnnotations(true); $break ./ >+/:$readableName ZeroTypeAnnotations:/ >+ >+TypeParameterHeader ::= PushZeroTypeAnnotations Identifier > /.$putCase consumeTypeParameterHeader(); $break ./ >-/:$readableName TypeParameter:/ > /:$compliance 1.5:/ >+TypeParameterHeader ::= TypeAnnotations Identifier >+/:$compliance 1.7:/ >+/.$putCase consumeTypeParameterHeader(); $break ./ >+/:$readableName TypeParameter:/ > > TypeParameters ::= '<' TypeParameterList1 > /.$putCase consumeTypeParameters(); $break ./ >@@ -2119,7 +2324,7 @@ > > AnnotationMethodHeaderName ::= Modifiersopt TypeParameters Type 'Identifier' '(' > /.$putCase consumeMethodHeaderNameWithTypeParameters(true); $break ./ >-AnnotationMethodHeaderName ::= Modifiersopt Type 'Identifier' '(' >+AnnotationMethodHeaderName ::= Modifiersopt Type0 'Identifier' '(' > /.$putCase consumeMethodHeaderName(true); $break ./ > /:$readableName MethodHeaderName:/ > /:$compliance 1.5:/ >@@ -2262,7 +2467,7 @@ > RecoveryMethodHeaderName ::= Modifiersopt TypeParameters Type 'Identifier' '(' > /.$putCase consumeRecoveryMethodHeaderNameWithTypeParameters(); $break ./ > /:$compliance 1.5:/ >-RecoveryMethodHeaderName ::= Modifiersopt Type 'Identifier' '(' >+RecoveryMethodHeaderName ::= Modifiersopt Type0 'Identifier' '(' > /.$putCase consumeRecoveryMethodHeaderName(); $break ./ > /:$readableName MethodHeaderName:/ > >@@ -2331,3 +2536,4 @@ > > $end > -- need a carriage return after the $end >+ >Index: model/org/eclipse/jdt/internal/compiler/SourceElementParser.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/compiler/SourceElementParser.java,v >retrieving revision 1.90 >diff -u -r1.90 SourceElementParser.java >--- model/org/eclipse/jdt/internal/compiler/SourceElementParser.java 28 Apr 2009 16:53:03 -0000 1.90 >+++ model/org/eclipse/jdt/internal/compiler/SourceElementParser.java 14 Oct 2009 06:05:39 -0000 >@@ -717,13 +717,16 @@ > return null; > } > } >-public TypeReference getTypeReference(int dim) { >+public TypeReference getUnannotatedTypeReference(int dim) { > /* build a Reference on a variable that may be qualified or not > * This variable is a type reference and dim will be its dimensions > */ >+ Annotation [][] annotationsOnDimensions = null; >+ TypeReference ref; > int length = this.identifierLengthStack[this.identifierLengthPtr--]; > if (length < 0) { //flag for precompiled type reference on base types >- TypeReference ref = TypeReference.baseTypeReference(-length, dim); >+ annotationsOnDimensions = getAnnotationsOnDimensions(dim); >+ ref = TypeReference.baseTypeReference(-length, dim, annotationsOnDimensions); > ref.sourceStart = this.intStack[this.intPtr--]; > if (dim == 0) { > ref.sourceEnd = this.intStack[this.intPtr--]; >@@ -734,12 +737,11 @@ > if (this.reportReferenceInfo){ > this.requestor.acceptTypeReference(ref.getParameterizedTypeName(), ref.sourceStart, ref.sourceEnd); > } >- return ref; > } else { > int numberOfIdentifiers = this.genericsIdentifiersLengthStack[this.genericsIdentifiersLengthPtr--]; > if (length != numberOfIdentifiers || this.genericsLengthStack[this.genericsLengthPtr] != 0) { > // generic type >- TypeReference ref = getTypeReferenceForGenericType(dim, length, numberOfIdentifiers); >+ ref = getTypeReferenceForGenericType(dim, length, numberOfIdentifiers); > if (this.reportReferenceInfo) { > if (length == 1 && numberOfIdentifiers == 1) { > ParameterizedSingleTypeReference parameterizedSingleTypeReference = (ParameterizedSingleTypeReference) ref; >@@ -749,30 +751,29 @@ > this.requestor.acceptTypeReference(parameterizedQualifiedTypeReference.tokens, parameterizedQualifiedTypeReference.sourceStart, parameterizedQualifiedTypeReference.sourceEnd); > } > } >- return ref; > } else if (length == 1) { > // single variable reference > this.genericsLengthPtr--; // pop the 0 > if (dim == 0) { >- SingleTypeReference ref = >+ ref = > new SingleTypeReference( > this.identifierStack[this.identifierPtr], > this.identifierPositionStack[this.identifierPtr--]); > if (this.reportReferenceInfo) { >- this.requestor.acceptTypeReference(ref.token, ref.sourceStart); >+ this.requestor.acceptTypeReference(((SingleTypeReference)ref).token, ref.sourceStart); > } >- return ref; > } else { >- ArrayTypeReference ref = >+ annotationsOnDimensions = getAnnotationsOnDimensions(dim); >+ ref = > new ArrayTypeReference( > this.identifierStack[this.identifierPtr], > dim, >+ annotationsOnDimensions, > this.identifierPositionStack[this.identifierPtr--]); > ref.sourceEnd = this.endPosition; > if (this.reportReferenceInfo) { >- this.requestor.acceptTypeReference(ref.token, ref.sourceStart); >+ this.requestor.acceptTypeReference(((ArrayTypeReference)ref).token, ref.sourceStart); > } >- return ref; > } > } else {//Qualified variable reference > this.genericsLengthPtr--; >@@ -787,22 +788,22 @@ > 0, > length); > if (dim == 0) { >- QualifiedTypeReference ref = new QualifiedTypeReference(tokens, positions); >+ ref = new QualifiedTypeReference(tokens, positions); > if (this.reportReferenceInfo) { >- this.requestor.acceptTypeReference(ref.tokens, ref.sourceStart, ref.sourceEnd); >+ this.requestor.acceptTypeReference(((QualifiedTypeReference)ref).tokens, ref.sourceStart, ref.sourceEnd); > } >- return ref; > } else { >- ArrayQualifiedTypeReference ref = >- new ArrayQualifiedTypeReference(tokens, dim, positions); >+ annotationsOnDimensions = getAnnotationsOnDimensions(dim); >+ ref = >+ new ArrayQualifiedTypeReference(tokens, dim, annotationsOnDimensions, positions); > ref.sourceEnd = this.endPosition; > if (this.reportReferenceInfo) { >- this.requestor.acceptTypeReference(ref.tokens, ref.sourceStart, ref.sourceEnd); >+ this.requestor.acceptTypeReference(((ArrayQualifiedTypeReference)ref).tokens, ref.sourceStart, ref.sourceEnd); > } >- return ref; > } > } > } >+ return ref; > } > public NameReference getUnspecifiedReference() { > /* build a (unspecified) NameReference which may be qualified*/ >Index: model/org/eclipse/jdt/internal/compiler/DocumentElementParser.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/compiler/DocumentElementParser.java,v >retrieving revision 1.31 >diff -u -r1.31 DocumentElementParser.java >--- model/org/eclipse/jdt/internal/compiler/DocumentElementParser.java 23 Apr 2009 14:53:48 -0000 1.31 >+++ model/org/eclipse/jdt/internal/compiler/DocumentElementParser.java 14 Oct 2009 06:05:39 -0000 >@@ -830,6 +830,17 @@ > // MethodHeaderExtendedDims ::= Dimsopt > // now we update the returnType of the method > MethodDeclaration md = (MethodDeclaration) this.astStack[this.astPtr]; >+ // jsr308 -- consume receiver annotations >+ md.receiverAnnotations = null; >+ int length; >+ if ((length = this.typeAnnotationLengthStack[this.typeAnnotationLengthPtr--]) != 0) { >+ System.arraycopy( >+ this.typeAnnotationStack, >+ (this.typeAnnotationPtr -= length) + 1, >+ md.receiverAnnotations = new Annotation[length], >+ 0, >+ length); >+ } > int extendedDims = this.intStack[this.intPtr--]; > this.extendsDim = extendedDims; > if (extendedDims != 0) { >@@ -1357,7 +1368,7 @@ > * This variable is a type reference and dim will be its dimensions. > * We don't have any side effect on the stacks' pointers. > */ >- >+ Annotation [][] annotationsOnDimensions = dim == 0 ? null : getAnnotationsOnDimensions(dim); > int length; > TypeReference ref; > if ((length = this.identifierLengthStack[localIdentifierLengthPtr]) == 1) { >@@ -1372,12 +1383,13 @@ > new ArrayTypeReference( > this.identifierStack[localIdentifierPtr], > dim, >+ annotationsOnDimensions, > this.identifierPositionStack[localIdentifierPtr--]); > ref.sourceEnd = this.endPosition; > } > } else { > if (length < 0) { //flag for precompiled type reference on base types >- ref = TypeReference.baseTypeReference(-length, dim); >+ ref = TypeReference.baseTypeReference(-length, dim, annotationsOnDimensions); > ref.sourceStart = this.intStack[this.localIntPtr--]; > if (dim == 0) { > ref.sourceEnd = this.intStack[this.localIntPtr--]; >@@ -1399,7 +1411,7 @@ > if (dim == 0) > ref = new QualifiedTypeReference(tokens, positions); > else >- ref = new ArrayQualifiedTypeReference(tokens, dim, positions); >+ ref = new ArrayQualifiedTypeReference(tokens, dim, annotationsOnDimensions, positions); > } > } > return ref; >Index: search/org/eclipse/jdt/internal/core/search/matching/MatchLocatorParser.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/MatchLocatorParser.java,v >retrieving revision 1.85 >diff -u -r1.85 MatchLocatorParser.java >--- search/org/eclipse/jdt/internal/core/search/matching/MatchLocatorParser.java 27 Jun 2008 16:04:00 -0000 1.85 >+++ search/org/eclipse/jdt/internal/core/search/matching/MatchLocatorParser.java 14 Oct 2009 06:05:39 -0000 >@@ -729,8 +729,16 @@ > this.nodeSet.addTrustedMatch(result, true); > return result; > } >-protected TypeReference getTypeReference(int dim) { >- TypeReference typeRef = super.getTypeReference(dim); >+protected TypeReference copyDims(TypeReference typeRef, int dim, Annotation [][] annotationsOnDimensions) { >+ TypeReference result = super.copyDims(typeRef, dim, annotationsOnDimensions); >+ if (this.nodeSet.removePossibleMatch(typeRef) != null) >+ this.nodeSet.addPossibleMatch(result); >+ else if (this.nodeSet.removeTrustedMatch(typeRef) != null) >+ this.nodeSet.addTrustedMatch(result, true); >+ return result; >+} >+protected TypeReference getUnannotatedTypeReference(int dim) { >+ TypeReference typeRef = super.getUnannotatedTypeReference(dim); > if (this.patternFineGrain == 0) { > this.patternLocator.match(typeRef, this.nodeSet); // NB: Don't check container since type reference can happen anywhere > } >Index: codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnSingleTypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnSingleTypeReference.java,v >retrieving revision 1.30 >diff -u -r1.30 CompletionOnSingleTypeReference.java >--- codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnSingleTypeReference.java 27 Jun 2008 16:03:58 -0000 1.30 >+++ codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnSingleTypeReference.java 14 Oct 2009 06:05:27 -0000 >@@ -55,6 +55,12 @@ > public TypeReference copyDims(int dim){ > return this; > } >+/* >+ * No expansion of the completion reference into an array one >+ */ >+public TypeReference copyDims(int dim, Annotation[][] annotationsOnDimensions){ >+ return this; >+} > protected TypeBinding getTypeBinding(Scope scope) { > if (this.fieldTypeCompletionNode != null) { > throw new CompletionNodeFound(this.fieldTypeCompletionNode, scope); >Index: codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java,v >retrieving revision 1.208 >diff -u -r1.208 CompletionParser.java >--- codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java 7 May 2009 08:49:43 -0000 1.208 >+++ codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java 14 Oct 2009 06:05:28 -0000 >@@ -1280,7 +1280,8 @@ > if ((length = this.identifierLengthStack[this.identifierLengthPtr-1]) < 0) { > // build the primitive type node > int dim = isAfterArrayType() ? this.intStack[this.intPtr--] : 0; >- SingleTypeReference typeRef = (SingleTypeReference)TypeReference.baseTypeReference(-length, dim); >+ Annotation [][] annotationsOnDimensions = dim == 0 ? null : getAnnotationsOnDimensions(dim); >+ SingleTypeReference typeRef = (SingleTypeReference)TypeReference.baseTypeReference(-length, dim, annotationsOnDimensions); > typeRef.sourceStart = this.intStack[this.intPtr--]; > if (dim == 0) { > typeRef.sourceEnd = this.intStack[this.intPtr--]; >@@ -2441,6 +2442,10 @@ > } > } > protected void consumeFormalParameter(boolean isVarArgs) { >+ >+ this.invocationType = NO_RECEIVER; >+ this.qualifier = -1; >+ > if (this.indexOfAssistIdentifier() < 0) { > super.consumeFormalParameter(isVarArgs); > if (this.pendingAnnotation != null) { >@@ -4200,6 +4205,16 @@ > } > return result; > } >+protected TypeReference copyDims(TypeReference typeRef, int dim, Annotation[][] annotationsOnDimensions) { >+ if (this.assistNode == typeRef) { >+ return typeRef; >+ } >+ TypeReference result = super.copyDims(typeRef, dim, annotationsOnDimensions); >+ if (this.assistNodeParent == typeRef) { >+ this.assistNodeParent = result; >+ } >+ return result; >+} > public CompilationUnitDeclaration dietParse(ICompilationUnit sourceUnit, CompilationResult compilationResult, int cursorLoc) { > > this.cursorLocation = cursorLoc; >Index: codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnQualifiedTypeReference.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnQualifiedTypeReference.java,v >retrieving revision 1.29 >diff -u -r1.29 CompletionOnQualifiedTypeReference.java >--- codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnQualifiedTypeReference.java 16 Jan 2009 14:29:29 -0000 1.29 >+++ codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnQualifiedTypeReference.java 14 Oct 2009 06:05:27 -0000 >@@ -55,6 +55,9 @@ > public TypeReference copyDims(int dim){ > return this; > } >+public TypeReference copyDims(int dim, Annotation[][] annotationsOnDimensions){ >+ return this; >+} > protected TypeBinding getTypeBinding(Scope scope) { > // it can be a package, type or member type > Binding binding = scope.parent.getTypeOrPackage(this.tokens); // step up from the ClassScope >Index: compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java,v >retrieving revision 1.407 >diff -u -r1.407 Parser.java >--- compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java 6 Oct 2009 19:24:22 -0000 1.407 >+++ compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java 14 Oct 2009 06:05:34 -0000 >@@ -11,7 +11,12 @@ > *******************************************************************************/ > package org.eclipse.jdt.internal.compiler.parser; > >-import java.io.*; >+import java.io.BufferedInputStream; >+import java.io.BufferedWriter; >+import java.io.File; >+import java.io.FileWriter; >+import java.io.IOException; >+import java.io.InputStream; > import java.util.ArrayList; > import java.util.Collections; > import java.util.Iterator; >@@ -24,14 +29,102 @@ > import org.eclipse.jdt.core.compiler.InvalidInputException; > import org.eclipse.jdt.internal.compiler.ASTVisitor; > import org.eclipse.jdt.internal.compiler.CompilationResult; >-import org.eclipse.jdt.internal.compiler.ast.*; >+import org.eclipse.jdt.internal.compiler.ast.AND_AND_Expression; >+import org.eclipse.jdt.internal.compiler.ast.ASTNode; >+import org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration; >+import org.eclipse.jdt.internal.compiler.ast.AbstractVariableDeclaration; >+import org.eclipse.jdt.internal.compiler.ast.AllocationExpression; >+import org.eclipse.jdt.internal.compiler.ast.Annotation; >+import org.eclipse.jdt.internal.compiler.ast.AnnotationMethodDeclaration; >+import org.eclipse.jdt.internal.compiler.ast.Argument; >+import org.eclipse.jdt.internal.compiler.ast.ArrayAllocationExpression; >+import org.eclipse.jdt.internal.compiler.ast.ArrayInitializer; >+import org.eclipse.jdt.internal.compiler.ast.ArrayQualifiedTypeReference; >+import org.eclipse.jdt.internal.compiler.ast.ArrayReference; >+import org.eclipse.jdt.internal.compiler.ast.ArrayTypeReference; >+import org.eclipse.jdt.internal.compiler.ast.AssertStatement; >+import org.eclipse.jdt.internal.compiler.ast.Assignment; >+import org.eclipse.jdt.internal.compiler.ast.BinaryExpression; >+import org.eclipse.jdt.internal.compiler.ast.Block; >+import org.eclipse.jdt.internal.compiler.ast.BreakStatement; >+import org.eclipse.jdt.internal.compiler.ast.CaseStatement; >+import org.eclipse.jdt.internal.compiler.ast.CastExpression; >+import org.eclipse.jdt.internal.compiler.ast.CharLiteral; >+import org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess; >+import org.eclipse.jdt.internal.compiler.ast.CombinedBinaryExpression; >+import org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration; >+import org.eclipse.jdt.internal.compiler.ast.CompoundAssignment; >+import org.eclipse.jdt.internal.compiler.ast.ConditionalExpression; >+import org.eclipse.jdt.internal.compiler.ast.ConstructorDeclaration; >+import org.eclipse.jdt.internal.compiler.ast.ContinueStatement; >+import org.eclipse.jdt.internal.compiler.ast.DoStatement; >+import org.eclipse.jdt.internal.compiler.ast.DoubleLiteral; >+import org.eclipse.jdt.internal.compiler.ast.EmptyStatement; >+import org.eclipse.jdt.internal.compiler.ast.EqualExpression; >+import org.eclipse.jdt.internal.compiler.ast.ExplicitConstructorCall; >+import org.eclipse.jdt.internal.compiler.ast.Expression; >+import org.eclipse.jdt.internal.compiler.ast.FalseLiteral; >+import org.eclipse.jdt.internal.compiler.ast.FieldDeclaration; >+import org.eclipse.jdt.internal.compiler.ast.FieldReference; >+import org.eclipse.jdt.internal.compiler.ast.FloatLiteral; >+import org.eclipse.jdt.internal.compiler.ast.ForStatement; >+import org.eclipse.jdt.internal.compiler.ast.ForeachStatement; >+import org.eclipse.jdt.internal.compiler.ast.IfStatement; >+import org.eclipse.jdt.internal.compiler.ast.ImportReference; >+import org.eclipse.jdt.internal.compiler.ast.Initializer; >+import org.eclipse.jdt.internal.compiler.ast.InstanceOfExpression; >+import org.eclipse.jdt.internal.compiler.ast.IntLiteral; >+import org.eclipse.jdt.internal.compiler.ast.IntLiteralMinValue; >+import org.eclipse.jdt.internal.compiler.ast.Javadoc; >+import org.eclipse.jdt.internal.compiler.ast.LabeledStatement; >+import org.eclipse.jdt.internal.compiler.ast.LocalDeclaration; >+import org.eclipse.jdt.internal.compiler.ast.LongLiteral; >+import org.eclipse.jdt.internal.compiler.ast.LongLiteralMinValue; >+import org.eclipse.jdt.internal.compiler.ast.MarkerAnnotation; >+import org.eclipse.jdt.internal.compiler.ast.MemberValuePair; >+import org.eclipse.jdt.internal.compiler.ast.MessageSend; >+import org.eclipse.jdt.internal.compiler.ast.MethodDeclaration; >+import org.eclipse.jdt.internal.compiler.ast.NameReference; >+import org.eclipse.jdt.internal.compiler.ast.NormalAnnotation; >+import org.eclipse.jdt.internal.compiler.ast.NullLiteral; >+import org.eclipse.jdt.internal.compiler.ast.OR_OR_Expression; >+import org.eclipse.jdt.internal.compiler.ast.OperatorIds; >+import org.eclipse.jdt.internal.compiler.ast.ParameterizedQualifiedTypeReference; >+import org.eclipse.jdt.internal.compiler.ast.ParameterizedSingleTypeReference; >+import org.eclipse.jdt.internal.compiler.ast.PostfixExpression; >+import org.eclipse.jdt.internal.compiler.ast.PrefixExpression; >+import org.eclipse.jdt.internal.compiler.ast.QualifiedAllocationExpression; >+import org.eclipse.jdt.internal.compiler.ast.QualifiedNameReference; >+import org.eclipse.jdt.internal.compiler.ast.QualifiedSuperReference; >+import org.eclipse.jdt.internal.compiler.ast.QualifiedThisReference; >+import org.eclipse.jdt.internal.compiler.ast.QualifiedTypeReference; >+import org.eclipse.jdt.internal.compiler.ast.Reference; >+import org.eclipse.jdt.internal.compiler.ast.ReturnStatement; >+import org.eclipse.jdt.internal.compiler.ast.SingleMemberAnnotation; >+import org.eclipse.jdt.internal.compiler.ast.SingleNameReference; >+import org.eclipse.jdt.internal.compiler.ast.SingleTypeReference; >+import org.eclipse.jdt.internal.compiler.ast.Statement; >+import org.eclipse.jdt.internal.compiler.ast.StringLiteral; >+import org.eclipse.jdt.internal.compiler.ast.SuperReference; >+import org.eclipse.jdt.internal.compiler.ast.SwitchStatement; >+import org.eclipse.jdt.internal.compiler.ast.SynchronizedStatement; >+import org.eclipse.jdt.internal.compiler.ast.ThisReference; >+import org.eclipse.jdt.internal.compiler.ast.ThrowStatement; >+import org.eclipse.jdt.internal.compiler.ast.TrueLiteral; >+import org.eclipse.jdt.internal.compiler.ast.TryStatement; >+import org.eclipse.jdt.internal.compiler.ast.TypeDeclaration; >+import org.eclipse.jdt.internal.compiler.ast.TypeParameter; >+import org.eclipse.jdt.internal.compiler.ast.TypeReference; >+import org.eclipse.jdt.internal.compiler.ast.UnaryExpression; >+import org.eclipse.jdt.internal.compiler.ast.WhileStatement; >+import org.eclipse.jdt.internal.compiler.ast.Wildcard; > import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; > import org.eclipse.jdt.internal.compiler.env.ICompilationUnit; > import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; > import org.eclipse.jdt.internal.compiler.impl.ReferenceContext; >+import org.eclipse.jdt.internal.compiler.lookup.Binding; > import org.eclipse.jdt.internal.compiler.lookup.BlockScope; > import org.eclipse.jdt.internal.compiler.lookup.ClassScope; >-import org.eclipse.jdt.internal.compiler.lookup.Binding; > import org.eclipse.jdt.internal.compiler.lookup.ExtraCompilerModifiers; > import org.eclipse.jdt.internal.compiler.lookup.MethodScope; > import org.eclipse.jdt.internal.compiler.lookup.TypeIds; >@@ -64,7 +157,10 @@ > private static final String ERROR_TOKEN = "$error" ; //$NON-NLS-1$ > //expression stack > protected final static int ExpressionStackIncrement = 100; >- >+ >+ // annotation stack >+ protected final static int TypeAnnotationStackIncrement = 100; >+ > protected final static int GenericsStackIncrement = 10; > > private final static String FILEPREFIX = "parser"; //$NON-NLS-1$ >@@ -786,7 +882,25 @@ > protected int[] expressionLengthStack; > protected int expressionPtr; > protected Expression[] expressionStack = new Expression[ExpressionStackIncrement]; >+ protected int unattachedAnnotationPtr; // used for figuring out whether some set of annotations are annotating a dimension or not. > public int firstToken ; // handle for multiple parsing goals >+ >+ /* jsr308 -- Type annotation management, we now maintain type annotations in a separate stack >+ as otherwise they get interspersed with other expressions and some of the code is not prepared >+ to handle such interleaving and will look ugly if changed. >+ >+ See consumeArrayCreationExpressionWithoutInitializer for example. >+ >+ See that annotations gets pushed into expression stack the moment an annotation is discovered and >+ get moved to the new type annotations stack only later when the annotation is recognized to be a >+ type annotation. Where ambiguities exist (i.e 1.7 annotation occurs in a place sanctioned for an >+ 1.5 type annotation, the annotation continues to stay in the expression stack, but in these case >+ interleaving is not an issue. >+ */ >+ protected int typeAnnotationPtr; >+ protected int typeAnnotationLengthPtr; >+ protected Annotation [] typeAnnotationStack = new Annotation[TypeAnnotationStackIncrement]; >+ protected int [] typeAnnotationLengthStack; > // generics management > protected int genericsIdentifiersLengthPtr; > protected int[] genericsIdentifiersLengthStack = new int[GenericsStackIncrement]; >@@ -877,6 +991,7 @@ > initializeScanner(); > this.astLengthStack = new int[50]; > this.expressionLengthStack = new int[30]; >+ this.typeAnnotationLengthStack = new int[30]; > this.intStack = new int[50]; > this.identifierStack = new char[30][]; > this.identifierLengthStack = new int[30]; >@@ -2610,6 +2725,19 @@ > > AbstractMethodDeclaration method = (AbstractMethodDeclaration)this.astStack[this.astPtr]; > >+ // jsr308 -- consume receiver annotations >+ method.receiverAnnotations = null; >+ int length; >+ if ((length = this.typeAnnotationLengthStack[this.typeAnnotationLengthPtr--]) != 0) { >+ System.arraycopy( >+ this.typeAnnotationStack, >+ (this.typeAnnotationPtr -= length) + 1, >+ method.receiverAnnotations = new Annotation[length], >+ 0, >+ length); >+ } >+ >+ > if (this.currentToken == TokenNameLBRACE){ > method.bodyStart = this.scanner.currentPosition; > } >@@ -2768,8 +2896,10 @@ > pushOnIntStack(this.dimensions); > this.dimensions = 0; > } >-protected void consumeDimWithOrWithOutExpr() { >- // DimWithOrWithOutExpr ::= '[' ']' >+ >+protected void consumeDimWithOutExpr() { >+ // DimWithOrWithOutExpr ::= '[' ']' >+ // DimWithOrWithOutExpr ::= OneOrMoreAnnotations '[' ']' > pushOnExpressionStack(null); > > if(this.currentElement != null && this.currentToken == TokenNameLBRACE) { >@@ -2959,7 +3089,7 @@ > this.intPtr-=2; > } > >- type = getTypeReference(this.intStack[this.intPtr--] + extraDims); // type dimension >+ type = getTypeReference(this.intStack[this.intPtr--] + extraDims); // type dimension // TODO (Srikanth) > > // consume annotations > int length; >@@ -3067,6 +3197,8 @@ > char[] identifierName = this.identifierStack[this.identifierPtr]; > long namePosition = this.identifierPositionStack[this.identifierPtr]; > int extendedDimension = this.intStack[this.intPtr--]; >+ // pop any annotations on extended dimensions now, so they don't pollute the base dimensions. >+ Annotation [][] annotationsOnExtendedDimensions = extendedDimension == 0 ? null : getAnnotationsOnDimensions(extendedDimension); > AbstractVariableDeclaration declaration; > // create the ast node > boolean isLocalDeclaration = this.nestedMethod[this.nestedType] != 0; >@@ -3144,7 +3276,12 @@ > declaration.type = type; > } else { > int dimension = typeDim + extendedDimension; >- declaration.type = copyDims(type, dimension); >+ Annotation [][] annotationsOnAllDimensions = null; >+ Annotation[][] annotationsOnDimensions = type.getAnnotationsOnDimensions(); >+ if (annotationsOnDimensions != null || annotationsOnExtendedDimensions != null) { >+ annotationsOnAllDimensions = getMergedAnnotationsOnDimensions(typeDim, annotationsOnDimensions, extendedDimension, annotationsOnExtendedDimensions); >+ } >+ declaration.type = copyDims(type, dimension, annotationsOnAllDimensions); > } > this.variablesCounter[this.nestedType]++; > pushOnAstStack(declaration); >@@ -3171,6 +3308,30 @@ > this.lastIgnoredToken = -1; > } > } >+private Annotation[][] getMergedAnnotationsOnDimensions(int dims, Annotation[][] annotationsOnDimensions, >+ int extendedDims, Annotation[][] annotationsOnExtendedDimensions) { >+ >+ if (annotationsOnDimensions == null && annotationsOnExtendedDimensions == null) >+ return null; >+ >+ Annotation [][] mergedAnnotations = new Annotation[dims + extendedDims][]; >+ for (int i = 0; i < dims; i++) { >+ if (annotationsOnDimensions != null) { >+ mergedAnnotations[i] = annotationsOnDimensions[i]; >+ } else { >+ mergedAnnotations[i] = null; >+ } >+ } >+ for (int i = dims, j = 0; i < dims + extendedDims; i++, j++) { >+ if (annotationsOnExtendedDimensions != null) { >+ mergedAnnotations[i] = annotationsOnExtendedDimensions[j]; >+ } else { >+ mergedAnnotations[i] = null; >+ } >+ } >+ >+ return mergedAnnotations; >+} > protected void consumeEnumBodyNoConstants() { > // nothing to do > // The 0 on the astLengthStack has been pushed by EnumBodyDeclarationsopt >@@ -3774,10 +3935,32 @@ > endOfEllipsis = this.intStack[this.intPtr--]; > } > int firstDimensions = this.intStack[this.intPtr--]; >- final int typeDimensions = firstDimensions + extendedDimensions; >- TypeReference type = getTypeReference(typeDimensions); >+ TypeReference type = getUnannotatedTypeReference(extendedDimensions); >+ Annotation [] varArgsAnnotations = null; >+ int length; >+ if ((length = this.typeAnnotationLengthStack[this.typeAnnotationLengthPtr--]) != 0) { >+ System.arraycopy( >+ this.typeAnnotationStack, >+ (this.typeAnnotationPtr -= length) + 1, >+ varArgsAnnotations = new Annotation[length], >+ 0, >+ length); >+ } >+ final int typeDimensions = firstDimensions + extendedDimensions + (isVarArgs ? 1 : 0); >+ >+ if (typeDimensions != extendedDimensions) { >+ // jsr308 type annotations management >+ Annotation [][] annotationsOnFirstDimensions = firstDimensions == 0 ? null : getAnnotationsOnDimensions(firstDimensions); >+ Annotation [][] annotationsOnExtendedDimensions = extendedDimensions == 0 ? null : type.getAnnotationsOnDimensions(); >+ Annotation [][] annotationsOnAllDimensions = null; >+ if (annotationsOnFirstDimensions != null || annotationsOnExtendedDimensions != null || varArgsAnnotations != null) { >+ annotationsOnAllDimensions = getMergedAnnotationsOnDimensions(firstDimensions, annotationsOnFirstDimensions, extendedDimensions, annotationsOnExtendedDimensions); >+ annotationsOnAllDimensions = getMergedAnnotationsOnDimensions(firstDimensions + extendedDimensions, annotationsOnAllDimensions, isVarArgs ? 1 : 0, isVarArgs ? new Annotation[][]{varArgsAnnotations} : null); >+ } >+ type = copyDims(type, typeDimensions, annotationsOnAllDimensions); >+ type.sourceEnd = type.isParametrizedTypeReference() ? this.endStatementPosition : this.endPosition; >+ } > if (isVarArgs) { >- type = copyDims(type, typeDimensions + 1); > if (extendedDimensions == 0) { > type.sourceEnd = endOfEllipsis; > } >@@ -3793,7 +3976,7 @@ > this.intStack[this.intPtr + 1] & ~ClassFileConstants.AccDeprecated); // modifiers > arg.declarationSourceStart = modifierPositions; > // consume annotations >- int length; >+ > if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) { > System.arraycopy( > this.expressionStack, >@@ -3817,7 +4000,37 @@ > extendedDimensions > 0) { > problemReporter().illegalExtendedDimensions(arg); > } >+ } else { >+ // The grammar allows trailing annotations in FormalParameter as in >+ // "int @NonNull[] @Misplaced parameter" in order to allow for constructs such as >+ // "Object @NonNull[] @Correct ... objects" -- we prune these here. >+ if (varArgsAnnotations != null) { >+ problemReporter().misplacedTypeAnnotations(varArgsAnnotations[0], >+ varArgsAnnotations[varArgsAnnotations.length-1]); >+ } >+ } >+} >+protected Annotation[][] getAnnotationsOnDimensions(int dimensionsCount) { >+ Annotation [][] dimensionsAnnotations = null; >+ if (dimensionsCount > 0) { >+ for (int i = 0; i < dimensionsCount; i++) { >+ Annotation [] annotations = null; >+ int length; >+ if ((length = this.typeAnnotationLengthStack[this.typeAnnotationLengthPtr--]) != 0) { >+ System.arraycopy( >+ this.typeAnnotationStack, >+ (this.typeAnnotationPtr -= length) + 1, >+ annotations = new Annotation[length], >+ 0, >+ length); >+ if (dimensionsAnnotations == null) { >+ dimensionsAnnotations = new Annotation[dimensionsCount][]; >+ } >+ dimensionsAnnotations[dimensionsCount - i - 1] = annotations; >+ } >+ } > } >+ return dimensionsAnnotations; > } > protected void consumeFormalParameterList() { > // FormalParameterList ::= FormalParameterList ',' FormalParameter >@@ -4407,6 +4620,17 @@ > // MethodHeaderExtendedDims ::= Dimsopt > // now we update the returnType of the method > MethodDeclaration md = (MethodDeclaration) this.astStack[this.astPtr]; >+ // jsr308 -- consume receiver annotations >+ md.receiverAnnotations = null; >+ int length; >+ if ((length = this.typeAnnotationLengthStack[this.typeAnnotationLengthPtr--]) != 0) { >+ System.arraycopy( >+ this.typeAnnotationStack, >+ (this.typeAnnotationPtr -= length) + 1, >+ md.receiverAnnotations = new Annotation[length], >+ 0, >+ length); >+ } > int extendedDims = this.intStack[this.intPtr--]; > if(md.isAnnotationMethod()) { > ((AnnotationMethodDeclaration)md).extendedDimensions = extendedDims; >@@ -4415,7 +4639,13 @@ > TypeReference returnType = md.returnType; > md.sourceEnd = this.endPosition; > int dims = returnType.dimensions() + extendedDims; >- md.returnType = copyDims(returnType, dims); >+ Annotation [][] annotationsOnDimensions = returnType.getAnnotationsOnDimensions(); >+ Annotation [][] annotationsOnExtendedDimensions = getAnnotationsOnDimensions(extendedDims); >+ Annotation [][] annotationsOnAllDimensions = null; >+ if (annotationsOnDimensions != null || annotationsOnExtendedDimensions != null) { >+ annotationsOnAllDimensions = getMergedAnnotationsOnDimensions(returnType.dimensions(), annotationsOnDimensions, extendedDims, annotationsOnExtendedDimensions); >+ } >+ md.returnType = copyDims(returnType, dims, annotationsOnAllDimensions); > if (this.currentToken == TokenNameLBRACE){ > md.bodyStart = this.endPosition + 1; > } >@@ -4721,6 +4951,30 @@ > protected void consumeModifiers2() { > this.expressionLengthStack[this.expressionLengthPtr - 1] += this.expressionLengthStack[this.expressionLengthPtr--]; > } >+ >+protected void consumeOneMoreTypeAnnotation() { >+ // OneOrMoreAnnotations ::= OneOrMoreAnnotations Annotation >+ this.expressionLengthPtr --; >+ Annotation annotation = (Annotation) this.expressionStack[this.expressionPtr--]; >+ pushOnTypeAnnotationStack(annotation); >+ this.typeAnnotationLengthStack[--this.typeAnnotationLengthPtr]++; >+ if(!this.statementRecoveryActivated && >+ this.options.sourceLevel < ClassFileConstants.JDK1_7 && >+ this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) { >+ problemReporter().invalidUsageOfTypeAnnotations(annotation); >+ } >+} >+ >+protected void consumePotentialNameArrayType () { >+ >+ // FormalParameter ::= Modifiersopt Name DimsoptAnnotsopt PotentialNameArray VariableDeclaratorId >+ // FormalParameter ::= Modifiersopt Name DimsoptAnnotsopt PotentialNameArray '...' VariableDeclaratorId >+ // PotentialNameArray -> $empty >+ // Dimensions including lack of have been pushed appropriately by action attached to DimsoptAnnotsopt >+ pushOnGenericsLengthStack(0); // handle type arguments >+ pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]); >+} >+ > protected void consumeNameArrayType() { > pushOnGenericsLengthStack(0); // handle type arguments > pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]); >@@ -4784,9 +5038,21 @@ > } > this.recordStringLiterals = true; > } >-protected void consumeOneDimLoop() { >+protected void consumeOneDimLoop(boolean expressionStackMayHaveAnnotations) { > // OneDimLoop ::= '[' ']' >+ // OneDimOrAnnot -> '[' ']' > this.dimensions++; >+ if (!expressionStackMayHaveAnnotations || this.unattachedAnnotationPtr == -1 ) { >+ pushOnTypeAnnotationLengthStack(0); // no annotations for the current dimension. >+ } else { >+ this.unattachedAnnotationPtr = -1; // Leave type annotation stacks they are. >+ } >+} >+protected void consumeOneDimLoopWithAnnotations() { >+ // OneDimLoop ::= OneOrMoreAnnotations '[' ']' >+ this.dimensions++; >+ // Top of expression stack contains annotations of length specified >+ // by top of expression length stack that apply to this dimension. > } > protected void consumeOnlySynchronized() { > // OnlySynchronized ::= 'synchronized' >@@ -4956,7 +5222,7 @@ > pushOnGenericsLengthStack(0); > > pushOnExpressionStack( >- new ClassLiteralAccess(this.intStack[this.intPtr--], getTypeReference(this.intStack[this.intPtr--]))); >+ new ClassLiteralAccess(this.intStack[this.intPtr--], getUnannotatedTypeReference(this.intStack[this.intPtr--]))); > } > protected void consumePrimaryNoNewArrayName() { > // PrimaryNoNewArray ::= Name '.' 'class' >@@ -4965,7 +5231,7 @@ > // handle type arguments > pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]); > pushOnGenericsLengthStack(0); >- TypeReference typeReference = getTypeReference(0); >+ TypeReference typeReference = getUnannotatedTypeReference(0); // TODO (Srikanth) needs fix > > pushOnExpressionStack( > new ClassLiteralAccess(this.intStack[this.intPtr--], typeReference)); >@@ -4975,6 +5241,7 @@ > // handle type arguments > pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]); > pushOnGenericsLengthStack(0); >+ pushOnTypeAnnotationLengthStack(0); // javac complains on annotations here. > TypeReference typeReference = getTypeReference(0); > > pushOnExpressionStack( >@@ -4988,7 +5255,7 @@ > // handle type arguments > pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]); > pushOnGenericsLengthStack(0); // handle type arguments >- >+ pushOnTypeAnnotationLengthStack(0); // javac complains on annotations here. > TypeReference typeReference = getTypeReference(0); > > pushOnExpressionStack( >@@ -5001,13 +5268,13 @@ > // PrimaryNoNewArray ::= PrimitiveType Dims '.' 'class' > this.intPtr--; // remove the class start position > pushOnExpressionStack( >- new ClassLiteralAccess(this.intStack[this.intPtr--], getTypeReference(this.intStack[this.intPtr--]))); >+ new ClassLiteralAccess(this.intStack[this.intPtr--], getUnannotatedTypeReference(this.intStack[this.intPtr--]))); > } > protected void consumePrimaryNoNewArrayPrimitiveType() { > // PrimaryNoNewArray ::= PrimitiveType '.' 'class' > this.intPtr--; // remove the class start position > pushOnExpressionStack( >- new ClassLiteralAccess(this.intStack[this.intPtr--], getTypeReference(0))); >+ new ClassLiteralAccess(this.intStack[this.intPtr--], getUnannotatedTypeReference(0))); > } > protected void consumePrimaryNoNewArrayThis() { > // PrimaryNoNewArray ::= 'this' >@@ -5123,1684 +5390,1888 @@ > // PushRPAREN ::= ')' > pushOnIntStack(this.rParenPos); > } >+protected void consumeUnannotatedType() { >+ /* We go through some song & dance here to get the type annotations stacks >+ to reflect the fact that this type was unannotated. Using a dummy non-terminal >+ with an empty rhs leads to conflicts in many places :-( >+ */ >+ pushOnTypeAnnotationLengthStack(0); // either done or else made room. >+ int dims = this.intStack[this.intPtr]; >+ if (dims != 0) { >+ System.arraycopy(this.typeAnnotationLengthStack, >+ this.typeAnnotationLengthPtr - dims, >+ this.typeAnnotationLengthStack, >+ this.typeAnnotationLengthPtr - dims + 1, >+ dims); >+ this.typeAnnotationLengthStack[this.typeAnnotationLengthPtr - dims] = 0; // tag type as unannotated >+ } >+} >+protected void consumeTypeAnnotation (boolean markAsUnattached) { >+ if(!this.statementRecoveryActivated && >+ this.options.sourceLevel < ClassFileConstants.JDK1_7 && >+ this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) { >+ problemReporter().invalidUsageOfTypeAnnotations((Annotation) this.expressionStack[this.expressionPtr]); >+ } >+ this.expressionLengthPtr --; >+ Annotation annotation = (Annotation) this.expressionStack[this.expressionPtr--]; >+ pushOnTypeAnnotationStack(annotation); >+ if (markAsUnattached) { >+ if (this.unattachedAnnotationPtr == -1) { >+ this.unattachedAnnotationPtr = this.typeAnnotationPtr; >+ } else { >+ this.typeAnnotationLengthStack[--this.typeAnnotationLengthPtr]++; >+ } >+ } >+} >+protected void consumeDimsWithTrailingAnnotsopt() { >+ // DimsoptAnnotsopt -> DimsAnnotLoop >+ pushOnIntStack(this.dimensions); >+ this.dimensions = 0; >+ if (this.unattachedAnnotationPtr == -1) { >+ pushOnTypeAnnotationLengthStack(0); // no trailing annotations (receiver/vararg) >+ } else { >+ this.unattachedAnnotationPtr = -1; // reset this and leave the annotation stacks as they are. >+ } >+} >+protected void consumeZeroTypeAnnotations(boolean shouldPush) { >+ if (shouldPush) { >+ pushOnTypeAnnotationLengthStack(0); >+ } else { >+ this.typeAnnotationLengthPtr --; // pop the 0 from the length stack >+ } >+} >+protected void consumeEmptyDimsoptAnnotsopt() { >+ // DimsoptAnnotsopt ::= $empty >+ pushOnIntStack(0); // signal a non array >+ pushOnTypeAnnotationLengthStack(0); // no trailing annotations (receiver/vararg) >+} >+protected void consumeRightParenForUnannotatedTypeCast() { >+ consumeUnannotatedType(); >+ // PushRPAREN ::= ')' >+ pushOnIntStack(this.rParenPos); >+} > // This method is part of an automatic generation : do NOT edit-modify > protected void consumeRule(int act) { > switch ( act ) { >- case 30 : if (DEBUG) { System.out.println("Type ::= PrimitiveType"); } //$NON-NLS-1$ >+ case 30 : if (DEBUG) { System.out.println("Type ::= TypeInternal"); } //$NON-NLS-1$ >+ consumeUnannotatedType(); >+ break; >+ >+ case 32 : if (DEBUG) { System.out.println("Type0 ::= TypeInternal"); } //$NON-NLS-1$ >+ consumeUnannotatedType(); >+ break; >+ >+ case 33 : if (DEBUG) { System.out.println("TypeInternal ::= PrimitiveType"); } //$NON-NLS-1$ > consumePrimitiveType(); > break; > >- case 44 : if (DEBUG) { System.out.println("ReferenceType ::= ClassOrInterfaceType"); } //$NON-NLS-1$ >+ case 47 : if (DEBUG) { System.out.println("ReferenceType ::= ReferenceType0"); } //$NON-NLS-1$ >+ consumeUnannotatedType(); >+ break; >+ >+ case 49 : if (DEBUG) { System.out.println("ReferenceType0 ::= ClassOrInterfaceType0"); } //$NON-NLS-1$ > consumeReferenceType(); > break; > >- case 48 : if (DEBUG) { System.out.println("ClassOrInterface ::= Name"); } //$NON-NLS-1$ >+ case 51 : if (DEBUG) { System.out.println("Annotationsopt ::="); } //$NON-NLS-1$ >+ consumeZeroTypeAnnotations(true); >+ break; >+ >+ case 56 : if (DEBUG) { System.out.println("ClassOrInterface ::= ClassOrInterface0"); } //$NON-NLS-1$ >+ consumeZeroTypeAnnotations(true); >+ break; >+ >+ case 57 : if (DEBUG) { System.out.println("ClassOrInterface0 ::= Name"); } //$NON-NLS-1$ > consumeClassOrInterfaceName(); > break; > >- case 49 : if (DEBUG) { System.out.println("ClassOrInterface ::= GenericType DOT Name"); } //$NON-NLS-1$ >- consumeClassOrInterface(); >+ case 59 : if (DEBUG) { System.out.println("PopZeroTypeAnnotations ::="); } //$NON-NLS-1$ >+ consumeZeroTypeAnnotations(false); > break; > >- case 50 : if (DEBUG) { System.out.println("GenericType ::= ClassOrInterface TypeArguments"); } //$NON-NLS-1$ >+ case 60 : if (DEBUG) { System.out.println("GenericType ::= ClassOrInterface TypeArguments..."); } //$NON-NLS-1$ > consumeGenericType(); > break; > >- case 51 : if (DEBUG) { System.out.println("ArrayTypeWithTypeArgumentsName ::= GenericType DOT Name"); } //$NON-NLS-1$ >- consumeArrayTypeWithTypeArgumentsName(); >+ case 61 : if (DEBUG) { System.out.println("GenericTypeDotName ::= GenericType DOT Name"); } //$NON-NLS-1$ >+ consumeClassOrInterface(); > break; > >- case 52 : if (DEBUG) { System.out.println("ArrayType ::= PrimitiveType Dims"); } //$NON-NLS-1$ >+ case 63 : if (DEBUG) { System.out.println("ArrayType ::= PrimitiveType Dims"); } //$NON-NLS-1$ > consumePrimitiveArrayType(); > break; > >- case 53 : if (DEBUG) { System.out.println("ArrayType ::= Name Dims"); } //$NON-NLS-1$ >+ case 64 : if (DEBUG) { System.out.println("ArrayType ::= Name Dims"); } //$NON-NLS-1$ > consumeNameArrayType(); > break; > >- case 54 : if (DEBUG) { System.out.println("ArrayType ::= ArrayTypeWithTypeArgumentsName Dims"); } //$NON-NLS-1$ >+ case 65 : if (DEBUG) { System.out.println("ArrayType ::= ArrayTypeWithTypeArgumentsName Dims"); } //$NON-NLS-1$ > consumeGenericTypeNameArrayType(); > break; > >- case 55 : if (DEBUG) { System.out.println("ArrayType ::= GenericType Dims"); } //$NON-NLS-1$ >+ case 66 : if (DEBUG) { System.out.println("ArrayType ::= GenericType Dims"); } //$NON-NLS-1$ > consumeGenericTypeArrayType(); > break; > >- case 60 : if (DEBUG) { System.out.println("QualifiedName ::= Name DOT SimpleName"); } //$NON-NLS-1$ >+ case 71 : if (DEBUG) { System.out.println("QualifiedName ::= Name DOT SimpleName"); } //$NON-NLS-1$ > consumeQualifiedName(); > break; > >- case 61 : if (DEBUG) { System.out.println("CompilationUnit ::= EnterCompilationUnit..."); } //$NON-NLS-1$ >+ case 72 : if (DEBUG) { System.out.println("CompilationUnit ::= EnterCompilationUnit..."); } //$NON-NLS-1$ > consumeCompilationUnit(); > break; > >- case 62 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration"); } //$NON-NLS-1$ >+ case 73 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration"); } //$NON-NLS-1$ > consumeInternalCompilationUnit(); > break; > >- case 63 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); } //$NON-NLS-1$ >+ case 74 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); } //$NON-NLS-1$ > consumeInternalCompilationUnit(); > break; > >- case 64 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); } //$NON-NLS-1$ >+ case 75 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); } //$NON-NLS-1$ > consumeInternalCompilationUnitWithTypes(); > break; > >- case 65 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); } //$NON-NLS-1$ >+ case 76 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); } //$NON-NLS-1$ > consumeInternalCompilationUnitWithTypes(); > break; > >- case 66 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ImportDeclarations..."); } //$NON-NLS-1$ >+ case 77 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ImportDeclarations..."); } //$NON-NLS-1$ > consumeInternalCompilationUnit(); > break; > >- case 67 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= TypeDeclarations"); } //$NON-NLS-1$ >+ case 78 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= TypeDeclarations"); } //$NON-NLS-1$ > consumeInternalCompilationUnitWithTypes(); > break; > >- case 68 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ImportDeclarations..."); } //$NON-NLS-1$ >+ case 79 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ImportDeclarations..."); } //$NON-NLS-1$ > consumeInternalCompilationUnitWithTypes(); > break; > >- case 69 : if (DEBUG) { System.out.println("InternalCompilationUnit ::="); } //$NON-NLS-1$ >+ case 80 : if (DEBUG) { System.out.println("InternalCompilationUnit ::="); } //$NON-NLS-1$ > consumeEmptyInternalCompilationUnit(); > break; > >- case 70 : if (DEBUG) { System.out.println("ReduceImports ::="); } //$NON-NLS-1$ >+ case 81 : if (DEBUG) { System.out.println("ReduceImports ::="); } //$NON-NLS-1$ > consumeReduceImports(); > break; > >- case 71 : if (DEBUG) { System.out.println("EnterCompilationUnit ::="); } //$NON-NLS-1$ >+ case 82 : if (DEBUG) { System.out.println("EnterCompilationUnit ::="); } //$NON-NLS-1$ > consumeEnterCompilationUnit(); > break; > >- case 87 : if (DEBUG) { System.out.println("CatchHeader ::= catch LPAREN FormalParameter RPAREN..."); } //$NON-NLS-1$ >+ case 98 : if (DEBUG) { System.out.println("CatchHeader ::= catch LPAREN FormalParameter RPAREN..."); } //$NON-NLS-1$ > consumeCatchHeader(); > break; > >- case 89 : if (DEBUG) { System.out.println("ImportDeclarations ::= ImportDeclarations..."); } //$NON-NLS-1$ >+ case 100 : if (DEBUG) { System.out.println("ImportDeclarations ::= ImportDeclarations..."); } //$NON-NLS-1$ > consumeImportDeclarations(); > break; > >- case 91 : if (DEBUG) { System.out.println("TypeDeclarations ::= TypeDeclarations TypeDeclaration"); } //$NON-NLS-1$ >+ case 102 : if (DEBUG) { System.out.println("TypeDeclarations ::= TypeDeclarations TypeDeclaration"); } //$NON-NLS-1$ > consumeTypeDeclarations(); > break; > >- case 92 : if (DEBUG) { System.out.println("PackageDeclaration ::= PackageDeclarationName SEMICOLON"); } //$NON-NLS-1$ >+ case 103 : if (DEBUG) { System.out.println("PackageDeclaration ::= PackageDeclarationName SEMICOLON"); } //$NON-NLS-1$ > consumePackageDeclaration(); > break; > >- case 93 : if (DEBUG) { System.out.println("PackageDeclarationName ::= Modifiers package..."); } //$NON-NLS-1$ >+ case 104 : if (DEBUG) { System.out.println("PackageDeclarationName ::= Modifiers package..."); } //$NON-NLS-1$ > consumePackageDeclarationNameWithModifiers(); > break; > >- case 94 : if (DEBUG) { System.out.println("PackageDeclarationName ::= PackageComment package Name"); } //$NON-NLS-1$ >+ case 105 : if (DEBUG) { System.out.println("PackageDeclarationName ::= PackageComment package Name"); } //$NON-NLS-1$ > consumePackageDeclarationName(); > break; > >- case 95 : if (DEBUG) { System.out.println("PackageComment ::="); } //$NON-NLS-1$ >+ case 106 : if (DEBUG) { System.out.println("PackageComment ::="); } //$NON-NLS-1$ > consumePackageComment(); > break; > >- case 100 : if (DEBUG) { System.out.println("SingleTypeImportDeclaration ::=..."); } //$NON-NLS-1$ >+ case 111 : if (DEBUG) { System.out.println("SingleTypeImportDeclaration ::=..."); } //$NON-NLS-1$ > consumeImportDeclaration(); > break; > >- case 101 : if (DEBUG) { System.out.println("SingleTypeImportDeclarationName ::= import Name"); } //$NON-NLS-1$ >+ case 112 : if (DEBUG) { System.out.println("SingleTypeImportDeclarationName ::= import Name"); } //$NON-NLS-1$ > consumeSingleTypeImportDeclarationName(); > break; > >- case 102 : if (DEBUG) { System.out.println("TypeImportOnDemandDeclaration ::=..."); } //$NON-NLS-1$ >+ case 113 : if (DEBUG) { System.out.println("TypeImportOnDemandDeclaration ::=..."); } //$NON-NLS-1$ > consumeImportDeclaration(); > break; > >- case 103 : if (DEBUG) { System.out.println("TypeImportOnDemandDeclarationName ::= import Name DOT..."); } //$NON-NLS-1$ >+ case 114 : if (DEBUG) { System.out.println("TypeImportOnDemandDeclarationName ::= import Name DOT..."); } //$NON-NLS-1$ > consumeTypeImportOnDemandDeclarationName(); > break; > >- case 106 : if (DEBUG) { System.out.println("TypeDeclaration ::= SEMICOLON"); } //$NON-NLS-1$ >+ case 117 : if (DEBUG) { System.out.println("TypeDeclaration ::= SEMICOLON"); } //$NON-NLS-1$ > consumeEmptyTypeDeclaration(); > break; > >- case 110 : if (DEBUG) { System.out.println("Modifiers ::= Modifiers Modifier"); } //$NON-NLS-1$ >+ case 121 : if (DEBUG) { System.out.println("NonAnnotModifiers ::= NonAnnotModifiers NonAnnotModifier"); } //$NON-NLS-1$ > consumeModifiers2(); > break; > >- case 122 : if (DEBUG) { System.out.println("Modifier ::= Annotation"); } //$NON-NLS-1$ >+ case 123 : if (DEBUG) { System.out.println("Modifiers ::= Modifiers Modifier"); } //$NON-NLS-1$ >+ consumeModifiers2(); >+ break; >+ >+ case 146 : if (DEBUG) { System.out.println("Modifier ::= Annotation"); } //$NON-NLS-1$ > consumeAnnotationAsModifier(); > break; > >- case 123 : if (DEBUG) { System.out.println("ClassDeclaration ::= ClassHeader ClassBody"); } //$NON-NLS-1$ >+ case 147 : if (DEBUG) { System.out.println("ClassDeclaration ::= ClassHeader ClassBody"); } //$NON-NLS-1$ > consumeClassDeclaration(); > break; > >- case 124 : if (DEBUG) { System.out.println("ClassHeader ::= ClassHeaderName ClassHeaderExtendsopt..."); } //$NON-NLS-1$ >+ case 148 : if (DEBUG) { System.out.println("ClassHeader ::= ClassHeaderName ClassHeaderExtendsopt..."); } //$NON-NLS-1$ > consumeClassHeader(); > break; > >- case 125 : if (DEBUG) { System.out.println("ClassHeaderName ::= ClassHeaderName1 TypeParameters"); } //$NON-NLS-1$ >+ case 149 : if (DEBUG) { System.out.println("ClassHeaderName ::= ClassHeaderName1 TypeParameters"); } //$NON-NLS-1$ > consumeTypeHeaderNameWithTypeParameters(); > break; > >- case 127 : if (DEBUG) { System.out.println("ClassHeaderName1 ::= Modifiersopt class Identifier"); } //$NON-NLS-1$ >+ case 151 : if (DEBUG) { System.out.println("ClassHeaderName1 ::= Modifiersopt class Identifier"); } //$NON-NLS-1$ > consumeClassHeaderName1(); > break; > >- case 128 : if (DEBUG) { System.out.println("ClassHeaderExtends ::= extends ClassType"); } //$NON-NLS-1$ >+ case 152 : if (DEBUG) { System.out.println("ClassHeaderExtends ::= extends ClassType"); } //$NON-NLS-1$ > consumeClassHeaderExtends(); > break; > >- case 129 : if (DEBUG) { System.out.println("ClassHeaderImplements ::= implements InterfaceTypeList"); } //$NON-NLS-1$ >+ case 153 : if (DEBUG) { System.out.println("ClassHeaderImplements ::= implements InterfaceTypeList"); } //$NON-NLS-1$ > consumeClassHeaderImplements(); > break; > >- case 131 : if (DEBUG) { System.out.println("InterfaceTypeList ::= InterfaceTypeList COMMA..."); } //$NON-NLS-1$ >+ case 155 : if (DEBUG) { System.out.println("InterfaceTypeList ::= InterfaceTypeList COMMA..."); } //$NON-NLS-1$ > consumeInterfaceTypeList(); > break; > >- case 132 : if (DEBUG) { System.out.println("InterfaceType ::= ClassOrInterfaceType"); } //$NON-NLS-1$ >+ case 156 : if (DEBUG) { System.out.println("InterfaceType ::= ClassOrInterfaceType"); } //$NON-NLS-1$ > consumeInterfaceType(); > break; > >- case 135 : if (DEBUG) { System.out.println("ClassBodyDeclarations ::= ClassBodyDeclarations..."); } //$NON-NLS-1$ >+ case 159 : if (DEBUG) { System.out.println("ClassBodyDeclarations ::= ClassBodyDeclarations..."); } //$NON-NLS-1$ > consumeClassBodyDeclarations(); > break; > >- case 139 : if (DEBUG) { System.out.println("ClassBodyDeclaration ::= Diet NestedMethod..."); } //$NON-NLS-1$ >+ case 163 : if (DEBUG) { System.out.println("ClassBodyDeclaration ::= Diet NestedMethod..."); } //$NON-NLS-1$ > consumeClassBodyDeclaration(); > break; > >- case 140 : if (DEBUG) { System.out.println("Diet ::="); } //$NON-NLS-1$ >+ case 164 : if (DEBUG) { System.out.println("Diet ::="); } //$NON-NLS-1$ > consumeDiet(); > break; > >- case 141 : if (DEBUG) { System.out.println("Initializer ::= Diet NestedMethod CreateInitializer..."); } //$NON-NLS-1$ >+ case 165 : if (DEBUG) { System.out.println("Initializer ::= Diet NestedMethod CreateInitializer..."); } //$NON-NLS-1$ > consumeClassBodyDeclaration(); > break; > >- case 142 : if (DEBUG) { System.out.println("CreateInitializer ::="); } //$NON-NLS-1$ >+ case 166 : if (DEBUG) { System.out.println("CreateInitializer ::="); } //$NON-NLS-1$ > consumeCreateInitializer(); > break; > >- case 149 : if (DEBUG) { System.out.println("ClassMemberDeclaration ::= SEMICOLON"); } //$NON-NLS-1$ >+ case 173 : if (DEBUG) { System.out.println("ClassMemberDeclaration ::= SEMICOLON"); } //$NON-NLS-1$ > consumeEmptyTypeDeclaration(); > break; > >- case 152 : if (DEBUG) { System.out.println("FieldDeclaration ::= Modifiersopt Type..."); } //$NON-NLS-1$ >+ case 176 : if (DEBUG) { System.out.println("FieldDeclaration ::= Modifiersopt Type0..."); } //$NON-NLS-1$ > consumeFieldDeclaration(); > break; > >- case 154 : if (DEBUG) { System.out.println("VariableDeclarators ::= VariableDeclarators COMMA..."); } //$NON-NLS-1$ >+ case 178 : if (DEBUG) { System.out.println("VariableDeclarators ::= VariableDeclarators COMMA..."); } //$NON-NLS-1$ > consumeVariableDeclarators(); > break; > >- case 157 : if (DEBUG) { System.out.println("EnterVariable ::="); } //$NON-NLS-1$ >+ case 181 : if (DEBUG) { System.out.println("EnterVariable ::="); } //$NON-NLS-1$ > consumeEnterVariable(); > break; > >- case 158 : if (DEBUG) { System.out.println("ExitVariableWithInitialization ::="); } //$NON-NLS-1$ >+ case 182 : if (DEBUG) { System.out.println("ExitVariableWithInitialization ::="); } //$NON-NLS-1$ > consumeExitVariableWithInitialization(); > break; > >- case 159 : if (DEBUG) { System.out.println("ExitVariableWithoutInitialization ::="); } //$NON-NLS-1$ >+ case 183 : if (DEBUG) { System.out.println("ExitVariableWithoutInitialization ::="); } //$NON-NLS-1$ > consumeExitVariableWithoutInitialization(); > break; > >- case 160 : if (DEBUG) { System.out.println("ForceNoDiet ::="); } //$NON-NLS-1$ >+ case 184 : if (DEBUG) { System.out.println("ForceNoDiet ::="); } //$NON-NLS-1$ > consumeForceNoDiet(); > break; > >- case 161 : if (DEBUG) { System.out.println("RestoreDiet ::="); } //$NON-NLS-1$ >+ case 185 : if (DEBUG) { System.out.println("RestoreDiet ::="); } //$NON-NLS-1$ > consumeRestoreDiet(); > break; > >- case 166 : if (DEBUG) { System.out.println("MethodDeclaration ::= MethodHeader MethodBody"); } //$NON-NLS-1$ >+ case 190 : if (DEBUG) { System.out.println("MethodDeclaration ::= MethodHeader MethodBody"); } //$NON-NLS-1$ > // set to true to consume a method with a body > consumeMethodDeclaration(true); > break; > >- case 167 : if (DEBUG) { System.out.println("AbstractMethodDeclaration ::= MethodHeader SEMICOLON"); } //$NON-NLS-1$ >+ case 191 : if (DEBUG) { System.out.println("AbstractMethodDeclaration ::= MethodHeader SEMICOLON"); } //$NON-NLS-1$ > // set to false to consume a method without body > consumeMethodDeclaration(false); > break; > >- case 168 : if (DEBUG) { System.out.println("MethodHeader ::= MethodHeaderName FormalParameterListopt"); } //$NON-NLS-1$ >+ case 192 : if (DEBUG) { System.out.println("MethodHeader ::= MethodHeaderName FormalParameterListopt"); } //$NON-NLS-1$ > consumeMethodHeader(); > break; > >- case 169 : if (DEBUG) { System.out.println("MethodHeaderName ::= Modifiersopt TypeParameters Type..."); } //$NON-NLS-1$ >+ case 193 : if (DEBUG) { System.out.println("MethodHeaderName ::= Modifiersopt TypeParameters Type..."); } //$NON-NLS-1$ > consumeMethodHeaderNameWithTypeParameters(false); > break; > >- case 170 : if (DEBUG) { System.out.println("MethodHeaderName ::= Modifiersopt Type Identifier LPAREN"); } //$NON-NLS-1$ >+ case 194 : if (DEBUG) { System.out.println("MethodHeaderName ::= Modifiersopt Type0 Identifier..."); } //$NON-NLS-1$ > consumeMethodHeaderName(false); > break; > >- case 171 : if (DEBUG) { System.out.println("MethodHeaderRightParen ::= RPAREN"); } //$NON-NLS-1$ >+ case 195 : if (DEBUG) { System.out.println("MethodHeaderRightParen ::= RPAREN"); } //$NON-NLS-1$ > consumeMethodHeaderRightParen(); > break; > >- case 172 : if (DEBUG) { System.out.println("MethodHeaderExtendedDims ::= Dimsopt"); } //$NON-NLS-1$ >+ case 196 : if (DEBUG) { System.out.println("MethodHeaderExtendedDims ::= DimsoptAnnotsopt"); } //$NON-NLS-1$ > consumeMethodHeaderExtendedDims(); > break; > >- case 173 : if (DEBUG) { System.out.println("MethodHeaderThrowsClause ::= throws ClassTypeList"); } //$NON-NLS-1$ >+ case 197 : if (DEBUG) { System.out.println("MethodHeaderThrowsClause ::= throws ClassTypeList"); } //$NON-NLS-1$ > consumeMethodHeaderThrowsClause(); > break; > >- case 174 : if (DEBUG) { System.out.println("ConstructorHeader ::= ConstructorHeaderName..."); } //$NON-NLS-1$ >+ case 198 : if (DEBUG) { System.out.println("ConstructorHeader ::= ConstructorHeaderName..."); } //$NON-NLS-1$ > consumeConstructorHeader(); > break; > >- case 175 : if (DEBUG) { System.out.println("ConstructorHeaderName ::= Modifiersopt TypeParameters..."); } //$NON-NLS-1$ >+ case 199 : if (DEBUG) { System.out.println("ConstructorHeaderName ::= Modifiersopt TypeParameters..."); } //$NON-NLS-1$ > consumeConstructorHeaderNameWithTypeParameters(); > break; > >- case 176 : if (DEBUG) { System.out.println("ConstructorHeaderName ::= Modifiersopt Identifier LPAREN"); } //$NON-NLS-1$ >+ case 200 : if (DEBUG) { System.out.println("ConstructorHeaderName ::= Modifiersopt Identifier LPAREN"); } //$NON-NLS-1$ > consumeConstructorHeaderName(); > break; > >- case 178 : if (DEBUG) { System.out.println("FormalParameterList ::= FormalParameterList COMMA..."); } //$NON-NLS-1$ >+ case 202 : if (DEBUG) { System.out.println("FormalParameterList ::= FormalParameterList COMMA..."); } //$NON-NLS-1$ > consumeFormalParameterList(); > break; > >- case 179 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt Type..."); } //$NON-NLS-1$ >+ case 203 : if (DEBUG) { System.out.println("PotentialNameArray ::="); } //$NON-NLS-1$ >+ consumePotentialNameArrayType(); >+ break; >+ >+ case 204 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt PrimitiveType..."); } //$NON-NLS-1$ > consumeFormalParameter(false); > break; > >- case 180 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt Type ELLIPSIS..."); } //$NON-NLS-1$ >+ case 205 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt PrimitiveType..."); } //$NON-NLS-1$ > consumeFormalParameter(true); > break; > >- case 182 : if (DEBUG) { System.out.println("ClassTypeList ::= ClassTypeList COMMA ClassTypeElt"); } //$NON-NLS-1$ >+ case 206 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt Name DimsoptAnnotsopt"); } //$NON-NLS-1$ >+ consumeFormalParameter(false); >+ break; >+ >+ case 207 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt Name DimsoptAnnotsopt"); } //$NON-NLS-1$ >+ consumeFormalParameter(true); >+ break; >+ >+ case 208 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt GenericType..."); } //$NON-NLS-1$ >+ consumeFormalParameter(false); >+ break; >+ >+ case 209 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt GenericType..."); } //$NON-NLS-1$ >+ consumeFormalParameter(true); >+ break; >+ >+ case 210 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt GenericTypeDotName..."); } //$NON-NLS-1$ >+ consumeFormalParameter(false); >+ break; >+ >+ case 211 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt GenericTypeDotName..."); } //$NON-NLS-1$ >+ consumeFormalParameter(true); >+ break; >+ >+ case 213 : if (DEBUG) { System.out.println("ClassTypeList ::= ClassTypeList COMMA ClassTypeElt"); } //$NON-NLS-1$ > consumeClassTypeList(); > break; > >- case 183 : if (DEBUG) { System.out.println("ClassTypeElt ::= ClassType"); } //$NON-NLS-1$ >+ case 214 : if (DEBUG) { System.out.println("ClassTypeElt ::= ClassType"); } //$NON-NLS-1$ > consumeClassTypeElt(); > break; > >- case 184 : if (DEBUG) { System.out.println("MethodBody ::= NestedMethod LBRACE BlockStatementsopt..."); } //$NON-NLS-1$ >+ case 215 : if (DEBUG) { System.out.println("MethodBody ::= NestedMethod LBRACE BlockStatementsopt..."); } //$NON-NLS-1$ > consumeMethodBody(); > break; > >- case 185 : if (DEBUG) { System.out.println("NestedMethod ::="); } //$NON-NLS-1$ >+ case 216 : if (DEBUG) { System.out.println("NestedMethod ::="); } //$NON-NLS-1$ > consumeNestedMethod(); > break; > >- case 186 : if (DEBUG) { System.out.println("StaticInitializer ::= StaticOnly Block"); } //$NON-NLS-1$ >+ case 217 : if (DEBUG) { System.out.println("StaticInitializer ::= StaticOnly Block"); } //$NON-NLS-1$ > consumeStaticInitializer(); > break; > >- case 187 : if (DEBUG) { System.out.println("StaticOnly ::= static"); } //$NON-NLS-1$ >+ case 218 : if (DEBUG) { System.out.println("StaticOnly ::= static"); } //$NON-NLS-1$ > consumeStaticOnly(); > break; > >- case 188 : if (DEBUG) { System.out.println("ConstructorDeclaration ::= ConstructorHeader MethodBody"); } //$NON-NLS-1$ >+ case 219 : if (DEBUG) { System.out.println("ConstructorDeclaration ::= ConstructorHeader MethodBody"); } //$NON-NLS-1$ > consumeConstructorDeclaration() ; > break; > >- case 189 : if (DEBUG) { System.out.println("ConstructorDeclaration ::= ConstructorHeader SEMICOLON"); } //$NON-NLS-1$ >+ case 220 : if (DEBUG) { System.out.println("ConstructorDeclaration ::= ConstructorHeader SEMICOLON"); } //$NON-NLS-1$ > consumeInvalidConstructorDeclaration() ; > break; > >- case 190 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= this LPAREN..."); } //$NON-NLS-1$ >+ case 221 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= this LPAREN..."); } //$NON-NLS-1$ > consumeExplicitConstructorInvocation(0, THIS_CALL); > break; > >- case 191 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= OnlyTypeArguments this"); } //$NON-NLS-1$ >+ case 222 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= OnlyTypeArguments this"); } //$NON-NLS-1$ > consumeExplicitConstructorInvocationWithTypeArguments(0,THIS_CALL); > break; > >- case 192 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= super LPAREN..."); } //$NON-NLS-1$ >+ case 223 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= super LPAREN..."); } //$NON-NLS-1$ > consumeExplicitConstructorInvocation(0,SUPER_CALL); > break; > >- case 193 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= OnlyTypeArguments..."); } //$NON-NLS-1$ >+ case 224 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= OnlyTypeArguments..."); } //$NON-NLS-1$ > consumeExplicitConstructorInvocationWithTypeArguments(0,SUPER_CALL); > break; > >- case 194 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT super..."); } //$NON-NLS-1$ >+ case 225 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT super..."); } //$NON-NLS-1$ > consumeExplicitConstructorInvocation(1, SUPER_CALL); > break; > >- case 195 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT..."); } //$NON-NLS-1$ >+ case 226 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT..."); } //$NON-NLS-1$ > consumeExplicitConstructorInvocationWithTypeArguments(1, SUPER_CALL); > break; > >- case 196 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT super LPAREN"); } //$NON-NLS-1$ >+ case 227 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT super LPAREN"); } //$NON-NLS-1$ > consumeExplicitConstructorInvocation(2, SUPER_CALL); > break; > >- case 197 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT..."); } //$NON-NLS-1$ >+ case 228 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT..."); } //$NON-NLS-1$ > consumeExplicitConstructorInvocationWithTypeArguments(2, SUPER_CALL); > break; > >- case 198 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT this..."); } //$NON-NLS-1$ >+ case 229 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT this..."); } //$NON-NLS-1$ > consumeExplicitConstructorInvocation(1, THIS_CALL); > break; > >- case 199 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT..."); } //$NON-NLS-1$ >+ case 230 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT..."); } //$NON-NLS-1$ > consumeExplicitConstructorInvocationWithTypeArguments(1, THIS_CALL); > break; > >- case 200 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT this LPAREN"); } //$NON-NLS-1$ >+ case 231 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT this LPAREN"); } //$NON-NLS-1$ > consumeExplicitConstructorInvocation(2, THIS_CALL); > break; > >- case 201 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT..."); } //$NON-NLS-1$ >+ case 232 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT..."); } //$NON-NLS-1$ > consumeExplicitConstructorInvocationWithTypeArguments(2, THIS_CALL); > break; > >- case 202 : if (DEBUG) { System.out.println("InterfaceDeclaration ::= InterfaceHeader InterfaceBody"); } //$NON-NLS-1$ >+ case 233 : if (DEBUG) { System.out.println("InterfaceDeclaration ::= InterfaceHeader InterfaceBody"); } //$NON-NLS-1$ > consumeInterfaceDeclaration(); > break; > >- case 203 : if (DEBUG) { System.out.println("InterfaceHeader ::= InterfaceHeaderName..."); } //$NON-NLS-1$ >+ case 234 : if (DEBUG) { System.out.println("InterfaceHeader ::= InterfaceHeaderName..."); } //$NON-NLS-1$ > consumeInterfaceHeader(); > break; > >- case 204 : if (DEBUG) { System.out.println("InterfaceHeaderName ::= InterfaceHeaderName1..."); } //$NON-NLS-1$ >+ case 235 : if (DEBUG) { System.out.println("InterfaceHeaderName ::= InterfaceHeaderName1..."); } //$NON-NLS-1$ > consumeTypeHeaderNameWithTypeParameters(); > break; > >- case 206 : if (DEBUG) { System.out.println("InterfaceHeaderName1 ::= Modifiersopt interface..."); } //$NON-NLS-1$ >+ case 237 : if (DEBUG) { System.out.println("InterfaceHeaderName1 ::= Modifiersopt interface..."); } //$NON-NLS-1$ > consumeInterfaceHeaderName1(); > break; > >- case 207 : if (DEBUG) { System.out.println("InterfaceHeaderExtends ::= extends InterfaceTypeList"); } //$NON-NLS-1$ >+ case 238 : if (DEBUG) { System.out.println("InterfaceHeaderExtends ::= extends InterfaceTypeList"); } //$NON-NLS-1$ > consumeInterfaceHeaderExtends(); > break; > >- case 210 : if (DEBUG) { System.out.println("InterfaceMemberDeclarations ::=..."); } //$NON-NLS-1$ >+ case 241 : if (DEBUG) { System.out.println("InterfaceMemberDeclarations ::=..."); } //$NON-NLS-1$ > consumeInterfaceMemberDeclarations(); > break; > >- case 211 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= SEMICOLON"); } //$NON-NLS-1$ >+ case 242 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= SEMICOLON"); } //$NON-NLS-1$ > consumeEmptyTypeDeclaration(); > break; > >- case 213 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= MethodHeader MethodBody"); } //$NON-NLS-1$ >+ case 244 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= MethodHeader MethodBody"); } //$NON-NLS-1$ > consumeInvalidMethodDeclaration(); > break; > >- case 214 : if (DEBUG) { System.out.println("InvalidConstructorDeclaration ::= ConstructorHeader..."); } //$NON-NLS-1$ >+ case 245 : if (DEBUG) { System.out.println("InvalidConstructorDeclaration ::= ConstructorHeader..."); } //$NON-NLS-1$ > consumeInvalidConstructorDeclaration(true); > break; > >- case 215 : if (DEBUG) { System.out.println("InvalidConstructorDeclaration ::= ConstructorHeader..."); } //$NON-NLS-1$ >+ case 246 : if (DEBUG) { System.out.println("InvalidConstructorDeclaration ::= ConstructorHeader..."); } //$NON-NLS-1$ > consumeInvalidConstructorDeclaration(false); > break; > >- case 223 : if (DEBUG) { System.out.println("PushLeftBrace ::="); } //$NON-NLS-1$ >+ case 254 : if (DEBUG) { System.out.println("PushLeftBrace ::="); } //$NON-NLS-1$ > consumePushLeftBrace(); > break; > >- case 224 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace ,opt RBRACE"); } //$NON-NLS-1$ >+ case 255 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace ,opt RBRACE"); } //$NON-NLS-1$ > consumeEmptyArrayInitializer(); > break; > >- case 225 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace..."); } //$NON-NLS-1$ >+ case 256 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace..."); } //$NON-NLS-1$ > consumeArrayInitializer(); > break; > >- case 226 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace..."); } //$NON-NLS-1$ >+ case 257 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace..."); } //$NON-NLS-1$ > consumeArrayInitializer(); > break; > >- case 228 : if (DEBUG) { System.out.println("VariableInitializers ::= VariableInitializers COMMA..."); } //$NON-NLS-1$ >+ case 259 : if (DEBUG) { System.out.println("VariableInitializers ::= VariableInitializers COMMA..."); } //$NON-NLS-1$ > consumeVariableInitializers(); > break; > >- case 229 : if (DEBUG) { System.out.println("Block ::= OpenBlock LBRACE BlockStatementsopt RBRACE"); } //$NON-NLS-1$ >+ case 260 : if (DEBUG) { System.out.println("Block ::= OpenBlock LBRACE BlockStatementsopt RBRACE"); } //$NON-NLS-1$ > consumeBlock(); > break; > >- case 230 : if (DEBUG) { System.out.println("OpenBlock ::="); } //$NON-NLS-1$ >+ case 261 : if (DEBUG) { System.out.println("OpenBlock ::="); } //$NON-NLS-1$ > consumeOpenBlock() ; > break; > >- case 232 : if (DEBUG) { System.out.println("BlockStatements ::= BlockStatements BlockStatement"); } //$NON-NLS-1$ >+ case 263 : if (DEBUG) { System.out.println("BlockStatements ::= BlockStatements BlockStatement"); } //$NON-NLS-1$ > consumeBlockStatements() ; > break; > >- case 236 : if (DEBUG) { System.out.println("BlockStatement ::= InterfaceDeclaration"); } //$NON-NLS-1$ >+ case 267 : if (DEBUG) { System.out.println("BlockStatement ::= InterfaceDeclaration"); } //$NON-NLS-1$ > consumeInvalidInterfaceDeclaration(); > break; > >- case 237 : if (DEBUG) { System.out.println("BlockStatement ::= AnnotationTypeDeclaration"); } //$NON-NLS-1$ >+ case 268 : if (DEBUG) { System.out.println("BlockStatement ::= AnnotationTypeDeclaration"); } //$NON-NLS-1$ > consumeInvalidAnnotationTypeDeclaration(); > break; > >- case 238 : if (DEBUG) { System.out.println("BlockStatement ::= EnumDeclaration"); } //$NON-NLS-1$ >+ case 269 : if (DEBUG) { System.out.println("BlockStatement ::= EnumDeclaration"); } //$NON-NLS-1$ > consumeInvalidEnumDeclaration(); > break; > >- case 239 : if (DEBUG) { System.out.println("LocalVariableDeclarationStatement ::=..."); } //$NON-NLS-1$ >+ case 270 : if (DEBUG) { System.out.println("LocalVariableDeclarationStatement ::=..."); } //$NON-NLS-1$ > consumeLocalVariableDeclarationStatement(); > break; > >- case 240 : if (DEBUG) { System.out.println("LocalVariableDeclaration ::= Type PushModifiers..."); } //$NON-NLS-1$ >+ case 271 : if (DEBUG) { System.out.println("LocalVariableDeclaration ::= Type0 PushModifiers..."); } //$NON-NLS-1$ > consumeLocalVariableDeclaration(); > break; > >- case 241 : if (DEBUG) { System.out.println("LocalVariableDeclaration ::= Modifiers Type..."); } //$NON-NLS-1$ >+ case 272 : if (DEBUG) { System.out.println("LocalVariableDeclaration ::= Modifiers Type0..."); } //$NON-NLS-1$ > consumeLocalVariableDeclaration(); > break; > >- case 242 : if (DEBUG) { System.out.println("PushModifiers ::="); } //$NON-NLS-1$ >+ case 273 : if (DEBUG) { System.out.println("PushModifiers ::="); } //$NON-NLS-1$ > consumePushModifiers(); > break; > >- case 243 : if (DEBUG) { System.out.println("PushModifiersForHeader ::="); } //$NON-NLS-1$ >+ case 274 : if (DEBUG) { System.out.println("PushModifiersForHeader ::="); } //$NON-NLS-1$ > consumePushModifiersForHeader(); > break; > >- case 244 : if (DEBUG) { System.out.println("PushRealModifiers ::="); } //$NON-NLS-1$ >+ case 275 : if (DEBUG) { System.out.println("PushRealModifiers ::="); } //$NON-NLS-1$ > consumePushRealModifiers(); > break; > >- case 270 : if (DEBUG) { System.out.println("EmptyStatement ::= SEMICOLON"); } //$NON-NLS-1$ >+ case 301 : if (DEBUG) { System.out.println("EmptyStatement ::= SEMICOLON"); } //$NON-NLS-1$ > consumeEmptyStatement(); > break; > >- case 271 : if (DEBUG) { System.out.println("LabeledStatement ::= Label COLON Statement"); } //$NON-NLS-1$ >+ case 302 : if (DEBUG) { System.out.println("LabeledStatement ::= Label COLON Statement"); } //$NON-NLS-1$ > consumeStatementLabel() ; > break; > >- case 272 : if (DEBUG) { System.out.println("LabeledStatementNoShortIf ::= Label COLON..."); } //$NON-NLS-1$ >+ case 303 : if (DEBUG) { System.out.println("LabeledStatementNoShortIf ::= Label COLON..."); } //$NON-NLS-1$ > consumeStatementLabel() ; > break; > >- case 273 : if (DEBUG) { System.out.println("Label ::= Identifier"); } //$NON-NLS-1$ >+ case 304 : if (DEBUG) { System.out.println("Label ::= Identifier"); } //$NON-NLS-1$ > consumeLabel() ; > break; > >- case 274 : if (DEBUG) { System.out.println("ExpressionStatement ::= StatementExpression SEMICOLON"); } //$NON-NLS-1$ >+ case 305 : if (DEBUG) { System.out.println("ExpressionStatement ::= StatementExpression SEMICOLON"); } //$NON-NLS-1$ > consumeExpressionStatement(); > break; > >- case 283 : if (DEBUG) { System.out.println("IfThenStatement ::= if LPAREN Expression RPAREN..."); } //$NON-NLS-1$ >+ case 314 : if (DEBUG) { System.out.println("IfThenStatement ::= if LPAREN Expression RPAREN..."); } //$NON-NLS-1$ > consumeStatementIfNoElse(); > break; > >- case 284 : if (DEBUG) { System.out.println("IfThenElseStatement ::= if LPAREN Expression RPAREN..."); } //$NON-NLS-1$ >+ case 315 : if (DEBUG) { System.out.println("IfThenElseStatement ::= if LPAREN Expression RPAREN..."); } //$NON-NLS-1$ > consumeStatementIfWithElse(); > break; > >- case 285 : if (DEBUG) { System.out.println("IfThenElseStatementNoShortIf ::= if LPAREN Expression..."); } //$NON-NLS-1$ >+ case 316 : if (DEBUG) { System.out.println("IfThenElseStatementNoShortIf ::= if LPAREN Expression..."); } //$NON-NLS-1$ > consumeStatementIfWithElse(); > break; > >- case 286 : if (DEBUG) { System.out.println("SwitchStatement ::= switch LPAREN Expression RPAREN..."); } //$NON-NLS-1$ >+ case 317 : if (DEBUG) { System.out.println("SwitchStatement ::= switch LPAREN Expression RPAREN..."); } //$NON-NLS-1$ > consumeStatementSwitch() ; > break; > >- case 287 : if (DEBUG) { System.out.println("SwitchBlock ::= LBRACE RBRACE"); } //$NON-NLS-1$ >+ case 318 : if (DEBUG) { System.out.println("SwitchBlock ::= LBRACE RBRACE"); } //$NON-NLS-1$ > consumeEmptySwitchBlock() ; > break; > >- case 290 : if (DEBUG) { System.out.println("SwitchBlock ::= LBRACE SwitchBlockStatements..."); } //$NON-NLS-1$ >+ case 321 : if (DEBUG) { System.out.println("SwitchBlock ::= LBRACE SwitchBlockStatements..."); } //$NON-NLS-1$ > consumeSwitchBlock() ; > break; > >- case 292 : if (DEBUG) { System.out.println("SwitchBlockStatements ::= SwitchBlockStatements..."); } //$NON-NLS-1$ >+ case 323 : if (DEBUG) { System.out.println("SwitchBlockStatements ::= SwitchBlockStatements..."); } //$NON-NLS-1$ > consumeSwitchBlockStatements() ; > break; > >- case 293 : if (DEBUG) { System.out.println("SwitchBlockStatement ::= SwitchLabels BlockStatements"); } //$NON-NLS-1$ >+ case 324 : if (DEBUG) { System.out.println("SwitchBlockStatement ::= SwitchLabels BlockStatements"); } //$NON-NLS-1$ > consumeSwitchBlockStatement() ; > break; > >- case 295 : if (DEBUG) { System.out.println("SwitchLabels ::= SwitchLabels SwitchLabel"); } //$NON-NLS-1$ >+ case 326 : if (DEBUG) { System.out.println("SwitchLabels ::= SwitchLabels SwitchLabel"); } //$NON-NLS-1$ > consumeSwitchLabels() ; > break; > >- case 296 : if (DEBUG) { System.out.println("SwitchLabel ::= case ConstantExpression COLON"); } //$NON-NLS-1$ >+ case 327 : if (DEBUG) { System.out.println("SwitchLabel ::= case ConstantExpression COLON"); } //$NON-NLS-1$ > consumeCaseLabel(); > break; > >- case 297 : if (DEBUG) { System.out.println("SwitchLabel ::= default COLON"); } //$NON-NLS-1$ >+ case 328 : if (DEBUG) { System.out.println("SwitchLabel ::= default COLON"); } //$NON-NLS-1$ > consumeDefaultLabel(); > break; > >- case 298 : if (DEBUG) { System.out.println("WhileStatement ::= while LPAREN Expression RPAREN..."); } //$NON-NLS-1$ >+ case 329 : if (DEBUG) { System.out.println("WhileStatement ::= while LPAREN Expression RPAREN..."); } //$NON-NLS-1$ > consumeStatementWhile() ; > break; > >- case 299 : if (DEBUG) { System.out.println("WhileStatementNoShortIf ::= while LPAREN Expression..."); } //$NON-NLS-1$ >+ case 330 : if (DEBUG) { System.out.println("WhileStatementNoShortIf ::= while LPAREN Expression..."); } //$NON-NLS-1$ > consumeStatementWhile() ; > break; > >- case 300 : if (DEBUG) { System.out.println("DoStatement ::= do Statement while LPAREN Expression..."); } //$NON-NLS-1$ >+ case 331 : if (DEBUG) { System.out.println("DoStatement ::= do Statement while LPAREN Expression..."); } //$NON-NLS-1$ > consumeStatementDo() ; > break; > >- case 301 : if (DEBUG) { System.out.println("ForStatement ::= for LPAREN ForInitopt SEMICOLON..."); } //$NON-NLS-1$ >+ case 332 : if (DEBUG) { System.out.println("ForStatement ::= for LPAREN ForInitopt SEMICOLON..."); } //$NON-NLS-1$ > consumeStatementFor() ; > break; > >- case 302 : if (DEBUG) { System.out.println("ForStatementNoShortIf ::= for LPAREN ForInitopt..."); } //$NON-NLS-1$ >+ case 333 : if (DEBUG) { System.out.println("ForStatementNoShortIf ::= for LPAREN ForInitopt..."); } //$NON-NLS-1$ > consumeStatementFor() ; > break; > >- case 303 : if (DEBUG) { System.out.println("ForInit ::= StatementExpressionList"); } //$NON-NLS-1$ >+ case 334 : if (DEBUG) { System.out.println("ForInit ::= StatementExpressionList"); } //$NON-NLS-1$ > consumeForInit() ; > break; > >- case 307 : if (DEBUG) { System.out.println("StatementExpressionList ::= StatementExpressionList..."); } //$NON-NLS-1$ >+ case 338 : if (DEBUG) { System.out.println("StatementExpressionList ::= StatementExpressionList..."); } //$NON-NLS-1$ > consumeStatementExpressionList() ; > break; > >- case 308 : if (DEBUG) { System.out.println("AssertStatement ::= assert Expression SEMICOLON"); } //$NON-NLS-1$ >+ case 339 : if (DEBUG) { System.out.println("AssertStatement ::= assert Expression SEMICOLON"); } //$NON-NLS-1$ > consumeSimpleAssertStatement() ; > break; > >- case 309 : if (DEBUG) { System.out.println("AssertStatement ::= assert Expression COLON Expression"); } //$NON-NLS-1$ >+ case 340 : if (DEBUG) { System.out.println("AssertStatement ::= assert Expression COLON Expression"); } //$NON-NLS-1$ > consumeAssertStatement() ; > break; > >- case 310 : if (DEBUG) { System.out.println("BreakStatement ::= break SEMICOLON"); } //$NON-NLS-1$ >+ case 341 : if (DEBUG) { System.out.println("BreakStatement ::= break SEMICOLON"); } //$NON-NLS-1$ > consumeStatementBreak() ; > break; > >- case 311 : if (DEBUG) { System.out.println("BreakStatement ::= break Identifier SEMICOLON"); } //$NON-NLS-1$ >+ case 342 : if (DEBUG) { System.out.println("BreakStatement ::= break Identifier SEMICOLON"); } //$NON-NLS-1$ > consumeStatementBreakWithLabel() ; > break; > >- case 312 : if (DEBUG) { System.out.println("ContinueStatement ::= continue SEMICOLON"); } //$NON-NLS-1$ >+ case 343 : if (DEBUG) { System.out.println("ContinueStatement ::= continue SEMICOLON"); } //$NON-NLS-1$ > consumeStatementContinue() ; > break; > >- case 313 : if (DEBUG) { System.out.println("ContinueStatement ::= continue Identifier SEMICOLON"); } //$NON-NLS-1$ >+ case 344 : if (DEBUG) { System.out.println("ContinueStatement ::= continue Identifier SEMICOLON"); } //$NON-NLS-1$ > consumeStatementContinueWithLabel() ; > break; > >- case 314 : if (DEBUG) { System.out.println("ReturnStatement ::= return Expressionopt SEMICOLON"); } //$NON-NLS-1$ >+ case 345 : if (DEBUG) { System.out.println("ReturnStatement ::= return Expressionopt SEMICOLON"); } //$NON-NLS-1$ > consumeStatementReturn() ; > break; > >- case 315 : if (DEBUG) { System.out.println("ThrowStatement ::= throw Expression SEMICOLON"); } //$NON-NLS-1$ >+ case 346 : if (DEBUG) { System.out.println("ThrowStatement ::= throw Expression SEMICOLON"); } //$NON-NLS-1$ > consumeStatementThrow(); > break; > >- case 316 : if (DEBUG) { System.out.println("SynchronizedStatement ::= OnlySynchronized LPAREN..."); } //$NON-NLS-1$ >+ case 347 : if (DEBUG) { System.out.println("SynchronizedStatement ::= OnlySynchronized LPAREN..."); } //$NON-NLS-1$ > consumeStatementSynchronized(); > break; > >- case 317 : if (DEBUG) { System.out.println("OnlySynchronized ::= synchronized"); } //$NON-NLS-1$ >+ case 348 : if (DEBUG) { System.out.println("OnlySynchronized ::= synchronized"); } //$NON-NLS-1$ > consumeOnlySynchronized(); > break; > >- case 318 : if (DEBUG) { System.out.println("TryStatement ::= try TryBlock Catches"); } //$NON-NLS-1$ >+ case 349 : if (DEBUG) { System.out.println("TryStatement ::= try TryBlock Catches"); } //$NON-NLS-1$ > consumeStatementTry(false); > break; > >- case 319 : if (DEBUG) { System.out.println("TryStatement ::= try TryBlock Catchesopt Finally"); } //$NON-NLS-1$ >+ case 350 : if (DEBUG) { System.out.println("TryStatement ::= try TryBlock Catchesopt Finally"); } //$NON-NLS-1$ > consumeStatementTry(true); > break; > >- case 321 : if (DEBUG) { System.out.println("ExitTryBlock ::="); } //$NON-NLS-1$ >+ case 352 : if (DEBUG) { System.out.println("ExitTryBlock ::="); } //$NON-NLS-1$ > consumeExitTryBlock(); > break; > >- case 323 : if (DEBUG) { System.out.println("Catches ::= Catches CatchClause"); } //$NON-NLS-1$ >+ case 354 : if (DEBUG) { System.out.println("Catches ::= Catches CatchClause"); } //$NON-NLS-1$ > consumeCatches(); > break; > >- case 324 : if (DEBUG) { System.out.println("CatchClause ::= catch LPAREN FormalParameter RPAREN..."); } //$NON-NLS-1$ >+ case 355 : if (DEBUG) { System.out.println("CatchClause ::= catch LPAREN FormalParameter RPAREN..."); } //$NON-NLS-1$ > consumeStatementCatch() ; > break; > >- case 326 : if (DEBUG) { System.out.println("PushLPAREN ::= LPAREN"); } //$NON-NLS-1$ >+ case 357 : if (DEBUG) { System.out.println("PushLPAREN ::= LPAREN"); } //$NON-NLS-1$ > consumeLeftParen(); > break; > >- case 327 : if (DEBUG) { System.out.println("PushRPAREN ::= RPAREN"); } //$NON-NLS-1$ >+ case 358 : if (DEBUG) { System.out.println("PushRPARENForUnannotatedTypeCast ::= RPAREN"); } //$NON-NLS-1$ >+ consumeRightParenForUnannotatedTypeCast(); >+ break; >+ >+ case 359 : if (DEBUG) { System.out.println("PushRPAREN ::= RPAREN"); } //$NON-NLS-1$ > consumeRightParen(); > break; > >- case 332 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= this"); } //$NON-NLS-1$ >+ case 364 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= this"); } //$NON-NLS-1$ > consumePrimaryNoNewArrayThis(); > break; > >- case 333 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PushLPAREN Expression_NotName..."); } //$NON-NLS-1$ >+ case 365 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PushLPAREN Expression_NotName..."); } //$NON-NLS-1$ > consumePrimaryNoNewArray(); > break; > >- case 334 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PushLPAREN Name PushRPAREN"); } //$NON-NLS-1$ >+ case 366 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PushLPAREN Name PushRPAREN"); } //$NON-NLS-1$ > consumePrimaryNoNewArrayWithName(); > break; > >- case 337 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name DOT this"); } //$NON-NLS-1$ >+ case 369 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name DOT this"); } //$NON-NLS-1$ > consumePrimaryNoNewArrayNameThis(); > break; > >- case 338 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name DOT super"); } //$NON-NLS-1$ >+ case 370 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name DOT super"); } //$NON-NLS-1$ > consumePrimaryNoNewArrayNameSuper(); > break; > >- case 339 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name DOT class"); } //$NON-NLS-1$ >+ case 371 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name DOT class"); } //$NON-NLS-1$ > consumePrimaryNoNewArrayName(); > break; > >- case 340 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name Dims DOT class"); } //$NON-NLS-1$ >+ case 372 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name Dims DOT class"); } //$NON-NLS-1$ > consumePrimaryNoNewArrayArrayType(); > break; > >- case 341 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PrimitiveType Dims DOT class"); } //$NON-NLS-1$ >+ case 373 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PrimitiveType Dims DOT class"); } //$NON-NLS-1$ > consumePrimaryNoNewArrayPrimitiveArrayType(); > break; > >- case 342 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PrimitiveType DOT class"); } //$NON-NLS-1$ >+ case 374 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PrimitiveType DOT class"); } //$NON-NLS-1$ > consumePrimaryNoNewArrayPrimitiveType(); > break; > >- case 345 : if (DEBUG) { System.out.println("AllocationHeader ::= new ClassType LPAREN..."); } //$NON-NLS-1$ >+ case 377 : if (DEBUG) { System.out.println("AllocationHeader ::= new ClassType LPAREN..."); } //$NON-NLS-1$ > consumeAllocationHeader(); > break; > >- case 346 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= new..."); } //$NON-NLS-1$ >+ case 378 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= new..."); } //$NON-NLS-1$ > consumeClassInstanceCreationExpressionWithTypeArguments(); > break; > >- case 347 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= new ClassType LPAREN"); } //$NON-NLS-1$ >+ case 379 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= new ClassType LPAREN"); } //$NON-NLS-1$ > consumeClassInstanceCreationExpression(); > break; > >- case 348 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= Primary DOT new..."); } //$NON-NLS-1$ >+ case 380 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= Primary DOT new..."); } //$NON-NLS-1$ > consumeClassInstanceCreationExpressionQualifiedWithTypeArguments() ; > break; > >- case 349 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= Primary DOT new..."); } //$NON-NLS-1$ >+ case 381 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= Primary DOT new..."); } //$NON-NLS-1$ > consumeClassInstanceCreationExpressionQualified() ; > break; > >- case 350 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::=..."); } //$NON-NLS-1$ >+ case 382 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::=..."); } //$NON-NLS-1$ > consumeClassInstanceCreationExpressionQualified() ; > break; > >- case 351 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::=..."); } //$NON-NLS-1$ >+ case 383 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::=..."); } //$NON-NLS-1$ > consumeClassInstanceCreationExpressionQualifiedWithTypeArguments() ; > break; > >- case 352 : if (DEBUG) { System.out.println("ClassInstanceCreationExpressionName ::= Name DOT"); } //$NON-NLS-1$ >+ case 384 : if (DEBUG) { System.out.println("ClassInstanceCreationExpressionName ::= Name DOT"); } //$NON-NLS-1$ > consumeClassInstanceCreationExpressionName() ; > break; > >- case 353 : if (DEBUG) { System.out.println("UnqualifiedClassBodyopt ::="); } //$NON-NLS-1$ >+ case 385 : if (DEBUG) { System.out.println("UnqualifiedClassBodyopt ::="); } //$NON-NLS-1$ > consumeClassBodyopt(); > break; > >- case 355 : if (DEBUG) { System.out.println("UnqualifiedEnterAnonymousClassBody ::="); } //$NON-NLS-1$ >+ case 387 : if (DEBUG) { System.out.println("UnqualifiedEnterAnonymousClassBody ::="); } //$NON-NLS-1$ > consumeEnterAnonymousClassBody(false); > break; > >- case 356 : if (DEBUG) { System.out.println("QualifiedClassBodyopt ::="); } //$NON-NLS-1$ >+ case 388 : if (DEBUG) { System.out.println("QualifiedClassBodyopt ::="); } //$NON-NLS-1$ > consumeClassBodyopt(); > break; > >- case 358 : if (DEBUG) { System.out.println("QualifiedEnterAnonymousClassBody ::="); } //$NON-NLS-1$ >+ case 390 : if (DEBUG) { System.out.println("QualifiedEnterAnonymousClassBody ::="); } //$NON-NLS-1$ > consumeEnterAnonymousClassBody(true); > break; > >- case 360 : if (DEBUG) { System.out.println("ArgumentList ::= ArgumentList COMMA Expression"); } //$NON-NLS-1$ >+ case 392 : if (DEBUG) { System.out.println("ArgumentList ::= ArgumentList COMMA Expression"); } //$NON-NLS-1$ > consumeArgumentList(); > break; > >- case 361 : if (DEBUG) { System.out.println("ArrayCreationHeader ::= new PrimitiveType..."); } //$NON-NLS-1$ >+ case 393 : if (DEBUG) { System.out.println("ArrayCreationHeader ::= new PrimitiveType..."); } //$NON-NLS-1$ > consumeArrayCreationHeader(); > break; > >- case 362 : if (DEBUG) { System.out.println("ArrayCreationHeader ::= new ClassOrInterfaceType..."); } //$NON-NLS-1$ >+ case 394 : if (DEBUG) { System.out.println("ArrayCreationHeader ::= new TypeAnnotations..."); } //$NON-NLS-1$ > consumeArrayCreationHeader(); > break; > >- case 363 : if (DEBUG) { System.out.println("ArrayCreationWithoutArrayInitializer ::= new..."); } //$NON-NLS-1$ >+ case 395 : if (DEBUG) { System.out.println("ArrayCreationHeader ::= new ClassOrInterfaceType..."); } //$NON-NLS-1$ >+ consumeArrayCreationHeader(); >+ break; >+ >+ case 396 : if (DEBUG) { System.out.println("ArrayCreationWithoutArrayInitializer ::= new..."); } //$NON-NLS-1$ > consumeArrayCreationExpressionWithoutInitializer(); > break; > >- case 364 : if (DEBUG) { System.out.println("ArrayCreationWithArrayInitializer ::= new PrimitiveType"); } //$NON-NLS-1$ >+ case 397 : if (DEBUG) { System.out.println("ArrayCreationWithoutArrayInitializer ::= new..."); } //$NON-NLS-1$ >+ consumeArrayCreationExpressionWithoutInitializer(); >+ break; >+ >+ case 398 : if (DEBUG) { System.out.println("ArrayCreationWithArrayInitializer ::= new..."); } //$NON-NLS-1$ >+ consumeArrayCreationExpressionWithInitializer(); >+ break; >+ >+ case 399 : if (DEBUG) { System.out.println("ArrayCreationWithArrayInitializer ::= new..."); } //$NON-NLS-1$ > consumeArrayCreationExpressionWithInitializer(); > break; > >- case 365 : if (DEBUG) { System.out.println("ArrayCreationWithoutArrayInitializer ::= new..."); } //$NON-NLS-1$ >+ case 400 : if (DEBUG) { System.out.println("ArrayCreationWithoutArrayInitializer ::= new..."); } //$NON-NLS-1$ > consumeArrayCreationExpressionWithoutInitializer(); > break; > >- case 366 : if (DEBUG) { System.out.println("ArrayCreationWithArrayInitializer ::= new..."); } //$NON-NLS-1$ >+ case 401 : if (DEBUG) { System.out.println("ArrayCreationWithArrayInitializer ::= new..."); } //$NON-NLS-1$ > consumeArrayCreationExpressionWithInitializer(); > break; > >- case 368 : if (DEBUG) { System.out.println("DimWithOrWithOutExprs ::= DimWithOrWithOutExprs..."); } //$NON-NLS-1$ >+ case 403 : if (DEBUG) { System.out.println("DimWithOrWithOutExprs ::= DimWithOrWithOutExprs..."); } //$NON-NLS-1$ > consumeDimWithOrWithOutExprs(); > break; > >- case 370 : if (DEBUG) { System.out.println("DimWithOrWithOutExpr ::= LBRACKET RBRACKET"); } //$NON-NLS-1$ >- consumeDimWithOrWithOutExpr(); >+ case 406 : if (DEBUG) { System.out.println("DimWithOrWithOutExpr ::= LBRACKET..."); } //$NON-NLS-1$ >+ consumeDimWithOutExpr(); > break; > >- case 371 : if (DEBUG) { System.out.println("Dims ::= DimsLoop"); } //$NON-NLS-1$ >+ case 407 : if (DEBUG) { System.out.println("DimWithOrWithOutExpr ::= TypeAnnotations LBRACKET..."); } //$NON-NLS-1$ >+ consumeDimWithOutExpr(); >+ break; >+ >+ case 408 : if (DEBUG) { System.out.println("DimsoptAnnotsopt ::="); } //$NON-NLS-1$ >+ consumeEmptyDimsoptAnnotsopt(); >+ break; >+ >+ case 409 : if (DEBUG) { System.out.println("DimsoptAnnotsopt -> DimsAnnotLoop"); } //$NON-NLS-1$ >+ consumeDimsWithTrailingAnnotsopt(); >+ break; >+ >+ case 412 : if (DEBUG) { System.out.println("OneDimOrAnnot ::= Annotation"); } //$NON-NLS-1$ >+ consumeTypeAnnotation(true); >+ break; >+ >+ case 413 : if (DEBUG) { System.out.println("OneDimOrAnnot ::= LBRACKET RBRACKET"); } //$NON-NLS-1$ >+ consumeOneDimLoop(true); >+ break; >+ >+ case 414 : if (DEBUG) { System.out.println("TypeAnnotations ::= Annotation"); } //$NON-NLS-1$ >+ consumeTypeAnnotation(false); >+ break; >+ >+ case 415 : if (DEBUG) { System.out.println("TypeAnnotations ::= TypeAnnotations Annotation"); } //$NON-NLS-1$ >+ consumeOneMoreTypeAnnotation(); >+ break; >+ >+ case 416 : if (DEBUG) { System.out.println("Dims ::= DimsLoop"); } //$NON-NLS-1$ > consumeDims(); > break; > >- case 374 : if (DEBUG) { System.out.println("OneDimLoop ::= LBRACKET RBRACKET"); } //$NON-NLS-1$ >- consumeOneDimLoop(); >+ case 419 : if (DEBUG) { System.out.println("OneDimLoop ::= LBRACKET RBRACKET"); } //$NON-NLS-1$ >+ consumeOneDimLoop(false); > break; > >- case 375 : if (DEBUG) { System.out.println("FieldAccess ::= Primary DOT Identifier"); } //$NON-NLS-1$ >+ case 420 : if (DEBUG) { System.out.println("OneDimLoop ::= TypeAnnotations LBRACKET RBRACKET"); } //$NON-NLS-1$ >+ consumeOneDimLoopWithAnnotations(); >+ break; >+ >+ case 421 : if (DEBUG) { System.out.println("FieldAccess ::= Primary DOT Identifier"); } //$NON-NLS-1$ > consumeFieldAccess(false); > break; > >- case 376 : if (DEBUG) { System.out.println("FieldAccess ::= super DOT Identifier"); } //$NON-NLS-1$ >+ case 422 : if (DEBUG) { System.out.println("FieldAccess ::= super DOT Identifier"); } //$NON-NLS-1$ > consumeFieldAccess(true); > break; > >- case 377 : if (DEBUG) { System.out.println("MethodInvocation ::= Name LPAREN ArgumentListopt RPAREN"); } //$NON-NLS-1$ >+ case 423 : if (DEBUG) { System.out.println("MethodInvocation ::= Name LPAREN ArgumentListopt RPAREN"); } //$NON-NLS-1$ > consumeMethodInvocationName(); > break; > >- case 378 : if (DEBUG) { System.out.println("MethodInvocation ::= Name DOT OnlyTypeArguments..."); } //$NON-NLS-1$ >+ case 424 : if (DEBUG) { System.out.println("MethodInvocation ::= Name DOT OnlyTypeArguments..."); } //$NON-NLS-1$ > consumeMethodInvocationNameWithTypeArguments(); > break; > >- case 379 : if (DEBUG) { System.out.println("MethodInvocation ::= Primary DOT OnlyTypeArguments..."); } //$NON-NLS-1$ >+ case 425 : if (DEBUG) { System.out.println("MethodInvocation ::= Primary DOT OnlyTypeArguments..."); } //$NON-NLS-1$ > consumeMethodInvocationPrimaryWithTypeArguments(); > break; > >- case 380 : if (DEBUG) { System.out.println("MethodInvocation ::= Primary DOT Identifier LPAREN..."); } //$NON-NLS-1$ >+ case 426 : if (DEBUG) { System.out.println("MethodInvocation ::= Primary DOT Identifier LPAREN..."); } //$NON-NLS-1$ > consumeMethodInvocationPrimary(); > break; > >- case 381 : if (DEBUG) { System.out.println("MethodInvocation ::= super DOT OnlyTypeArguments..."); } //$NON-NLS-1$ >+ case 427 : if (DEBUG) { System.out.println("MethodInvocation ::= super DOT OnlyTypeArguments..."); } //$NON-NLS-1$ > consumeMethodInvocationSuperWithTypeArguments(); > break; > >- case 382 : if (DEBUG) { System.out.println("MethodInvocation ::= super DOT Identifier LPAREN..."); } //$NON-NLS-1$ >+ case 428 : if (DEBUG) { System.out.println("MethodInvocation ::= super DOT Identifier LPAREN..."); } //$NON-NLS-1$ > consumeMethodInvocationSuper(); > break; > >- case 383 : if (DEBUG) { System.out.println("ArrayAccess ::= Name LBRACKET Expression RBRACKET"); } //$NON-NLS-1$ >+ case 429 : if (DEBUG) { System.out.println("ArrayAccess ::= Name LBRACKET Expression RBRACKET"); } //$NON-NLS-1$ > consumeArrayAccess(true); > break; > >- case 384 : if (DEBUG) { System.out.println("ArrayAccess ::= PrimaryNoNewArray LBRACKET Expression..."); } //$NON-NLS-1$ >+ case 430 : if (DEBUG) { System.out.println("ArrayAccess ::= PrimaryNoNewArray LBRACKET Expression..."); } //$NON-NLS-1$ > consumeArrayAccess(false); > break; > >- case 385 : if (DEBUG) { System.out.println("ArrayAccess ::= ArrayCreationWithArrayInitializer..."); } //$NON-NLS-1$ >+ case 431 : if (DEBUG) { System.out.println("ArrayAccess ::= ArrayCreationWithArrayInitializer..."); } //$NON-NLS-1$ > consumeArrayAccess(false); > break; > >- case 387 : if (DEBUG) { System.out.println("PostfixExpression ::= Name"); } //$NON-NLS-1$ >+ case 433 : if (DEBUG) { System.out.println("PostfixExpression ::= Name"); } //$NON-NLS-1$ > consumePostfixExpression(); > break; > >- case 390 : if (DEBUG) { System.out.println("PostIncrementExpression ::= PostfixExpression PLUS_PLUS"); } //$NON-NLS-1$ >+ case 436 : if (DEBUG) { System.out.println("PostIncrementExpression ::= PostfixExpression PLUS_PLUS"); } //$NON-NLS-1$ > consumeUnaryExpression(OperatorIds.PLUS,true); > break; > >- case 391 : if (DEBUG) { System.out.println("PostDecrementExpression ::= PostfixExpression..."); } //$NON-NLS-1$ >+ case 437 : if (DEBUG) { System.out.println("PostDecrementExpression ::= PostfixExpression..."); } //$NON-NLS-1$ > consumeUnaryExpression(OperatorIds.MINUS,true); > break; > >- case 392 : if (DEBUG) { System.out.println("PushPosition ::="); } //$NON-NLS-1$ >+ case 438 : if (DEBUG) { System.out.println("PushPosition ::="); } //$NON-NLS-1$ > consumePushPosition(); > break; > >- case 395 : if (DEBUG) { System.out.println("UnaryExpression ::= PLUS PushPosition UnaryExpression"); } //$NON-NLS-1$ >+ case 441 : if (DEBUG) { System.out.println("UnaryExpression ::= PLUS PushPosition UnaryExpression"); } //$NON-NLS-1$ > consumeUnaryExpression(OperatorIds.PLUS); > break; > >- case 396 : if (DEBUG) { System.out.println("UnaryExpression ::= MINUS PushPosition UnaryExpression"); } //$NON-NLS-1$ >+ case 442 : if (DEBUG) { System.out.println("UnaryExpression ::= MINUS PushPosition UnaryExpression"); } //$NON-NLS-1$ > consumeUnaryExpression(OperatorIds.MINUS); > break; > >- case 398 : if (DEBUG) { System.out.println("PreIncrementExpression ::= PLUS_PLUS PushPosition..."); } //$NON-NLS-1$ >+ case 444 : if (DEBUG) { System.out.println("PreIncrementExpression ::= PLUS_PLUS PushPosition..."); } //$NON-NLS-1$ > consumeUnaryExpression(OperatorIds.PLUS,false); > break; > >- case 399 : if (DEBUG) { System.out.println("PreDecrementExpression ::= MINUS_MINUS PushPosition..."); } //$NON-NLS-1$ >+ case 445 : if (DEBUG) { System.out.println("PreDecrementExpression ::= MINUS_MINUS PushPosition..."); } //$NON-NLS-1$ > consumeUnaryExpression(OperatorIds.MINUS,false); > break; > >- case 401 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus ::= TWIDDLE PushPosition..."); } //$NON-NLS-1$ >+ case 447 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus ::= TWIDDLE PushPosition..."); } //$NON-NLS-1$ > consumeUnaryExpression(OperatorIds.TWIDDLE); > break; > >- case 402 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus ::= NOT PushPosition..."); } //$NON-NLS-1$ >+ case 448 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus ::= NOT PushPosition..."); } //$NON-NLS-1$ > consumeUnaryExpression(OperatorIds.NOT); > break; > >- case 404 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN PrimitiveType Dimsopt..."); } //$NON-NLS-1$ >+ case 450 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN PrimitiveType Dimsopt..."); } //$NON-NLS-1$ > consumeCastExpressionWithPrimitiveType(); > break; > >- case 405 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name..."); } //$NON-NLS-1$ >+ case 451 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN TypeAnnotations..."); } //$NON-NLS-1$ >+ consumeCastExpressionWithPrimitiveType(); >+ break; >+ >+ case 452 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name..."); } //$NON-NLS-1$ > consumeCastExpressionWithGenericsArray(); > break; > >- case 406 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name..."); } //$NON-NLS-1$ >+ case 453 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN TypeAnnotations Name..."); } //$NON-NLS-1$ >+ consumeCastExpressionWithGenericsArray(); >+ break; >+ >+ case 454 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name..."); } //$NON-NLS-1$ >+ consumeCastExpressionWithQualifiedGenericsArray(); >+ break; >+ >+ case 455 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN TypeAnnotations Name..."); } //$NON-NLS-1$ > consumeCastExpressionWithQualifiedGenericsArray(); > break; > >- case 407 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name PushRPAREN..."); } //$NON-NLS-1$ >+ case 456 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name PushRPAREN..."); } //$NON-NLS-1$ > consumeCastExpressionLL1(); > break; > >- case 408 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name Dims PushRPAREN..."); } //$NON-NLS-1$ >+ case 457 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN TypeAnnotations Name..."); } //$NON-NLS-1$ >+ consumeCastExpressionLL1(); >+ break; >+ >+ case 458 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name Dims..."); } //$NON-NLS-1$ >+ consumeCastExpressionWithNameArray(); >+ break; >+ >+ case 459 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN TypeAnnotations Name Dims"); } //$NON-NLS-1$ > consumeCastExpressionWithNameArray(); > break; > >- case 409 : if (DEBUG) { System.out.println("OnlyTypeArgumentsForCastExpression ::= OnlyTypeArguments"); } //$NON-NLS-1$ >+ case 460 : if (DEBUG) { System.out.println("OnlyTypeArgumentsForCastExpression ::= OnlyTypeArguments"); } //$NON-NLS-1$ > consumeOnlyTypeArgumentsForCastExpression(); > break; > >- case 410 : if (DEBUG) { System.out.println("InsideCastExpression ::="); } //$NON-NLS-1$ >+ case 461 : if (DEBUG) { System.out.println("InsideCastExpression ::="); } //$NON-NLS-1$ > consumeInsideCastExpression(); > break; > >- case 411 : if (DEBUG) { System.out.println("InsideCastExpressionLL1 ::="); } //$NON-NLS-1$ >+ case 462 : if (DEBUG) { System.out.println("InsideCastExpressionLL1 ::="); } //$NON-NLS-1$ > consumeInsideCastExpressionLL1(); > break; > >- case 412 : if (DEBUG) { System.out.println("InsideCastExpressionWithQualifiedGenerics ::="); } //$NON-NLS-1$ >+ case 463 : if (DEBUG) { System.out.println("InsideCastExpressionWithQualifiedGenerics ::="); } //$NON-NLS-1$ > consumeInsideCastExpressionWithQualifiedGenerics(); > break; > >- case 414 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); } //$NON-NLS-1$ >+ case 465 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.MULTIPLY); > break; > >- case 415 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); } //$NON-NLS-1$ >+ case 466 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.DIVIDE); > break; > >- case 416 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); } //$NON-NLS-1$ >+ case 467 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.REMAINDER); > break; > >- case 418 : if (DEBUG) { System.out.println("AdditiveExpression ::= AdditiveExpression PLUS..."); } //$NON-NLS-1$ >+ case 469 : if (DEBUG) { System.out.println("AdditiveExpression ::= AdditiveExpression PLUS..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.PLUS); > break; > >- case 419 : if (DEBUG) { System.out.println("AdditiveExpression ::= AdditiveExpression MINUS..."); } //$NON-NLS-1$ >+ case 470 : if (DEBUG) { System.out.println("AdditiveExpression ::= AdditiveExpression MINUS..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.MINUS); > break; > >- case 421 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression LEFT_SHIFT..."); } //$NON-NLS-1$ >+ case 472 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression LEFT_SHIFT..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.LEFT_SHIFT); > break; > >- case 422 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression RIGHT_SHIFT..."); } //$NON-NLS-1$ >+ case 473 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression RIGHT_SHIFT..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.RIGHT_SHIFT); > break; > >- case 423 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression UNSIGNED_RIGHT_SHIFT"); } //$NON-NLS-1$ >+ case 474 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression UNSIGNED_RIGHT_SHIFT"); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.UNSIGNED_RIGHT_SHIFT); > break; > >- case 425 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression LESS..."); } //$NON-NLS-1$ >+ case 476 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression LESS..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.LESS); > break; > >- case 426 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression GREATER..."); } //$NON-NLS-1$ >+ case 477 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression GREATER..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.GREATER); > break; > >- case 427 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression LESS_EQUAL"); } //$NON-NLS-1$ >+ case 478 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression LESS_EQUAL"); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.LESS_EQUAL); > break; > >- case 428 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression..."); } //$NON-NLS-1$ >+ case 479 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.GREATER_EQUAL); > break; > >- case 430 : if (DEBUG) { System.out.println("InstanceofExpression ::= InstanceofExpression instanceof"); } //$NON-NLS-1$ >+ case 481 : if (DEBUG) { System.out.println("InstanceofExpression ::= InstanceofExpression instanceof"); } //$NON-NLS-1$ > consumeInstanceOfExpression(); > break; > >- case 432 : if (DEBUG) { System.out.println("EqualityExpression ::= EqualityExpression EQUAL_EQUAL..."); } //$NON-NLS-1$ >+ case 483 : if (DEBUG) { System.out.println("EqualityExpression ::= EqualityExpression EQUAL_EQUAL..."); } //$NON-NLS-1$ > consumeEqualityExpression(OperatorIds.EQUAL_EQUAL); > break; > >- case 433 : if (DEBUG) { System.out.println("EqualityExpression ::= EqualityExpression NOT_EQUAL..."); } //$NON-NLS-1$ >+ case 484 : if (DEBUG) { System.out.println("EqualityExpression ::= EqualityExpression NOT_EQUAL..."); } //$NON-NLS-1$ > consumeEqualityExpression(OperatorIds.NOT_EQUAL); > break; > >- case 435 : if (DEBUG) { System.out.println("AndExpression ::= AndExpression AND EqualityExpression"); } //$NON-NLS-1$ >+ case 486 : if (DEBUG) { System.out.println("AndExpression ::= AndExpression AND EqualityExpression"); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.AND); > break; > >- case 437 : if (DEBUG) { System.out.println("ExclusiveOrExpression ::= ExclusiveOrExpression XOR..."); } //$NON-NLS-1$ >+ case 488 : if (DEBUG) { System.out.println("ExclusiveOrExpression ::= ExclusiveOrExpression XOR..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.XOR); > break; > >- case 439 : if (DEBUG) { System.out.println("InclusiveOrExpression ::= InclusiveOrExpression OR..."); } //$NON-NLS-1$ >+ case 490 : if (DEBUG) { System.out.println("InclusiveOrExpression ::= InclusiveOrExpression OR..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.OR); > break; > >- case 441 : if (DEBUG) { System.out.println("ConditionalAndExpression ::= ConditionalAndExpression..."); } //$NON-NLS-1$ >+ case 492 : if (DEBUG) { System.out.println("ConditionalAndExpression ::= ConditionalAndExpression..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.AND_AND); > break; > >- case 443 : if (DEBUG) { System.out.println("ConditionalOrExpression ::= ConditionalOrExpression..."); } //$NON-NLS-1$ >+ case 494 : if (DEBUG) { System.out.println("ConditionalOrExpression ::= ConditionalOrExpression..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.OR_OR); > break; > >- case 445 : if (DEBUG) { System.out.println("ConditionalExpression ::= ConditionalOrExpression..."); } //$NON-NLS-1$ >+ case 496 : if (DEBUG) { System.out.println("ConditionalExpression ::= ConditionalOrExpression..."); } //$NON-NLS-1$ > consumeConditionalExpression(OperatorIds.QUESTIONCOLON) ; > break; > >- case 448 : if (DEBUG) { System.out.println("Assignment ::= PostfixExpression AssignmentOperator..."); } //$NON-NLS-1$ >+ case 499 : if (DEBUG) { System.out.println("Assignment ::= PostfixExpression AssignmentOperator..."); } //$NON-NLS-1$ > consumeAssignment(); > break; > >- case 450 : if (DEBUG) { System.out.println("Assignment ::= InvalidArrayInitializerAssignement"); } //$NON-NLS-1$ >+ case 501 : if (DEBUG) { System.out.println("Assignment ::= InvalidArrayInitializerAssignement"); } //$NON-NLS-1$ > ignoreExpressionAssignment(); > break; > >- case 451 : if (DEBUG) { System.out.println("AssignmentOperator ::= EQUAL"); } //$NON-NLS-1$ >+ case 502 : if (DEBUG) { System.out.println("AssignmentOperator ::= EQUAL"); } //$NON-NLS-1$ > consumeAssignmentOperator(EQUAL); > break; > >- case 452 : if (DEBUG) { System.out.println("AssignmentOperator ::= MULTIPLY_EQUAL"); } //$NON-NLS-1$ >+ case 503 : if (DEBUG) { System.out.println("AssignmentOperator ::= MULTIPLY_EQUAL"); } //$NON-NLS-1$ > consumeAssignmentOperator(MULTIPLY); > break; > >- case 453 : if (DEBUG) { System.out.println("AssignmentOperator ::= DIVIDE_EQUAL"); } //$NON-NLS-1$ >+ case 504 : if (DEBUG) { System.out.println("AssignmentOperator ::= DIVIDE_EQUAL"); } //$NON-NLS-1$ > consumeAssignmentOperator(DIVIDE); > break; > >- case 454 : if (DEBUG) { System.out.println("AssignmentOperator ::= REMAINDER_EQUAL"); } //$NON-NLS-1$ >+ case 505 : if (DEBUG) { System.out.println("AssignmentOperator ::= REMAINDER_EQUAL"); } //$NON-NLS-1$ > consumeAssignmentOperator(REMAINDER); > break; > >- case 455 : if (DEBUG) { System.out.println("AssignmentOperator ::= PLUS_EQUAL"); } //$NON-NLS-1$ >+ case 506 : if (DEBUG) { System.out.println("AssignmentOperator ::= PLUS_EQUAL"); } //$NON-NLS-1$ > consumeAssignmentOperator(PLUS); > break; > >- case 456 : if (DEBUG) { System.out.println("AssignmentOperator ::= MINUS_EQUAL"); } //$NON-NLS-1$ >+ case 507 : if (DEBUG) { System.out.println("AssignmentOperator ::= MINUS_EQUAL"); } //$NON-NLS-1$ > consumeAssignmentOperator(MINUS); > break; > >- case 457 : if (DEBUG) { System.out.println("AssignmentOperator ::= LEFT_SHIFT_EQUAL"); } //$NON-NLS-1$ >+ case 508 : if (DEBUG) { System.out.println("AssignmentOperator ::= LEFT_SHIFT_EQUAL"); } //$NON-NLS-1$ > consumeAssignmentOperator(LEFT_SHIFT); > break; > >- case 458 : if (DEBUG) { System.out.println("AssignmentOperator ::= RIGHT_SHIFT_EQUAL"); } //$NON-NLS-1$ >+ case 509 : if (DEBUG) { System.out.println("AssignmentOperator ::= RIGHT_SHIFT_EQUAL"); } //$NON-NLS-1$ > consumeAssignmentOperator(RIGHT_SHIFT); > break; > >- case 459 : if (DEBUG) { System.out.println("AssignmentOperator ::= UNSIGNED_RIGHT_SHIFT_EQUAL"); } //$NON-NLS-1$ >+ case 510 : if (DEBUG) { System.out.println("AssignmentOperator ::= UNSIGNED_RIGHT_SHIFT_EQUAL"); } //$NON-NLS-1$ > consumeAssignmentOperator(UNSIGNED_RIGHT_SHIFT); > break; > >- case 460 : if (DEBUG) { System.out.println("AssignmentOperator ::= AND_EQUAL"); } //$NON-NLS-1$ >+ case 511 : if (DEBUG) { System.out.println("AssignmentOperator ::= AND_EQUAL"); } //$NON-NLS-1$ > consumeAssignmentOperator(AND); > break; > >- case 461 : if (DEBUG) { System.out.println("AssignmentOperator ::= XOR_EQUAL"); } //$NON-NLS-1$ >+ case 512 : if (DEBUG) { System.out.println("AssignmentOperator ::= XOR_EQUAL"); } //$NON-NLS-1$ > consumeAssignmentOperator(XOR); > break; > >- case 462 : if (DEBUG) { System.out.println("AssignmentOperator ::= OR_EQUAL"); } //$NON-NLS-1$ >+ case 513 : if (DEBUG) { System.out.println("AssignmentOperator ::= OR_EQUAL"); } //$NON-NLS-1$ > consumeAssignmentOperator(OR); > break; > >- case 466 : if (DEBUG) { System.out.println("Expressionopt ::="); } //$NON-NLS-1$ >+ case 517 : if (DEBUG) { System.out.println("Expressionopt ::="); } //$NON-NLS-1$ > consumeEmptyExpression(); > break; > >- case 471 : if (DEBUG) { System.out.println("ClassBodyDeclarationsopt ::="); } //$NON-NLS-1$ >+ case 522 : if (DEBUG) { System.out.println("ClassBodyDeclarationsopt ::="); } //$NON-NLS-1$ > consumeEmptyClassBodyDeclarationsopt(); > break; > >- case 472 : if (DEBUG) { System.out.println("ClassBodyDeclarationsopt ::= NestedType..."); } //$NON-NLS-1$ >+ case 523 : if (DEBUG) { System.out.println("ClassBodyDeclarationsopt ::= NestedType..."); } //$NON-NLS-1$ > consumeClassBodyDeclarationsopt(); > break; > >- case 473 : if (DEBUG) { System.out.println("Modifiersopt ::="); } //$NON-NLS-1$ >+ case 524 : if (DEBUG) { System.out.println("NonAnnotModifiersopt ::="); } //$NON-NLS-1$ > consumeDefaultModifiers(); > break; > >- case 474 : if (DEBUG) { System.out.println("Modifiersopt ::= Modifiers"); } //$NON-NLS-1$ >+ case 525 : if (DEBUG) { System.out.println("NonAnnotModifiersopt ::= NonAnnotModifiers"); } //$NON-NLS-1$ > consumeModifiers(); > break; > >- case 475 : if (DEBUG) { System.out.println("BlockStatementsopt ::="); } //$NON-NLS-1$ >+ case 526 : if (DEBUG) { System.out.println("Modifiersopt ::="); } //$NON-NLS-1$ >+ consumeDefaultModifiers(); >+ break; >+ >+ case 527 : if (DEBUG) { System.out.println("Modifiersopt ::= Modifiers"); } //$NON-NLS-1$ >+ consumeModifiers(); >+ break; >+ >+ case 528 : if (DEBUG) { System.out.println("BlockStatementsopt ::="); } //$NON-NLS-1$ > consumeEmptyBlockStatementsopt(); > break; > >- case 477 : if (DEBUG) { System.out.println("Dimsopt ::="); } //$NON-NLS-1$ >+ case 530 : if (DEBUG) { System.out.println("Dimsopt ::="); } //$NON-NLS-1$ > consumeEmptyDimsopt(); > break; > >- case 479 : if (DEBUG) { System.out.println("ArgumentListopt ::="); } //$NON-NLS-1$ >+ case 532 : if (DEBUG) { System.out.println("ArgumentListopt ::="); } //$NON-NLS-1$ > consumeEmptyArgumentListopt(); > break; > >- case 483 : if (DEBUG) { System.out.println("FormalParameterListopt ::="); } //$NON-NLS-1$ >+ case 536 : if (DEBUG) { System.out.println("FormalParameterListopt ::="); } //$NON-NLS-1$ > consumeFormalParameterListopt(); > break; > >- case 487 : if (DEBUG) { System.out.println("InterfaceMemberDeclarationsopt ::="); } //$NON-NLS-1$ >+ case 540 : if (DEBUG) { System.out.println("InterfaceMemberDeclarationsopt ::="); } //$NON-NLS-1$ > consumeEmptyInterfaceMemberDeclarationsopt(); > break; > >- case 488 : if (DEBUG) { System.out.println("InterfaceMemberDeclarationsopt ::= NestedType..."); } //$NON-NLS-1$ >+ case 541 : if (DEBUG) { System.out.println("InterfaceMemberDeclarationsopt ::= NestedType..."); } //$NON-NLS-1$ > consumeInterfaceMemberDeclarationsopt(); > break; > >- case 489 : if (DEBUG) { System.out.println("NestedType ::="); } //$NON-NLS-1$ >+ case 542 : if (DEBUG) { System.out.println("NestedType ::="); } //$NON-NLS-1$ > consumeNestedType(); > break; > >- case 490 : if (DEBUG) { System.out.println("ForInitopt ::="); } //$NON-NLS-1$ >+ case 543 : if (DEBUG) { System.out.println("ForInitopt ::="); } //$NON-NLS-1$ > consumeEmptyForInitopt(); > break; > >- case 492 : if (DEBUG) { System.out.println("ForUpdateopt ::="); } //$NON-NLS-1$ >+ case 545 : if (DEBUG) { System.out.println("ForUpdateopt ::="); } //$NON-NLS-1$ > consumeEmptyForUpdateopt(); > break; > >- case 496 : if (DEBUG) { System.out.println("Catchesopt ::="); } //$NON-NLS-1$ >+ case 549 : if (DEBUG) { System.out.println("Catchesopt ::="); } //$NON-NLS-1$ > consumeEmptyCatchesopt(); > break; > >- case 498 : if (DEBUG) { System.out.println("EnumDeclaration ::= EnumHeader EnumBody"); } //$NON-NLS-1$ >+ case 551 : if (DEBUG) { System.out.println("EnumDeclaration ::= EnumHeader EnumBody"); } //$NON-NLS-1$ > consumeEnumDeclaration(); > break; > >- case 499 : if (DEBUG) { System.out.println("EnumHeader ::= EnumHeaderName ClassHeaderImplementsopt"); } //$NON-NLS-1$ >+ case 552 : if (DEBUG) { System.out.println("EnumHeader ::= EnumHeaderName ClassHeaderImplementsopt"); } //$NON-NLS-1$ > consumeEnumHeader(); > break; > >- case 500 : if (DEBUG) { System.out.println("EnumHeaderName ::= Modifiersopt enum Identifier"); } //$NON-NLS-1$ >+ case 553 : if (DEBUG) { System.out.println("EnumHeaderName ::= Modifiersopt enum Identifier"); } //$NON-NLS-1$ > consumeEnumHeaderName(); > break; > >- case 501 : if (DEBUG) { System.out.println("EnumHeaderName ::= Modifiersopt enum Identifier..."); } //$NON-NLS-1$ >+ case 554 : if (DEBUG) { System.out.println("EnumHeaderName ::= Modifiersopt enum Identifier..."); } //$NON-NLS-1$ > consumeEnumHeaderNameWithTypeParameters(); > break; > >- case 502 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumBodyDeclarationsopt RBRACE"); } //$NON-NLS-1$ >+ case 555 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumBodyDeclarationsopt RBRACE"); } //$NON-NLS-1$ > consumeEnumBodyNoConstants(); > break; > >- case 503 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE COMMA EnumBodyDeclarationsopt..."); } //$NON-NLS-1$ >+ case 556 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE COMMA EnumBodyDeclarationsopt..."); } //$NON-NLS-1$ > consumeEnumBodyNoConstants(); > break; > >- case 504 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumConstants COMMA..."); } //$NON-NLS-1$ >+ case 557 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumConstants COMMA..."); } //$NON-NLS-1$ > consumeEnumBodyWithConstants(); > break; > >- case 505 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumConstants..."); } //$NON-NLS-1$ >+ case 558 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumConstants..."); } //$NON-NLS-1$ > consumeEnumBodyWithConstants(); > break; > >- case 507 : if (DEBUG) { System.out.println("EnumConstants ::= EnumConstants COMMA EnumConstant"); } //$NON-NLS-1$ >+ case 560 : if (DEBUG) { System.out.println("EnumConstants ::= EnumConstants COMMA EnumConstant"); } //$NON-NLS-1$ > consumeEnumConstants(); > break; > >- case 508 : if (DEBUG) { System.out.println("EnumConstantHeaderName ::= Modifiersopt Identifier"); } //$NON-NLS-1$ >+ case 561 : if (DEBUG) { System.out.println("EnumConstantHeaderName ::= Modifiersopt Identifier"); } //$NON-NLS-1$ > consumeEnumConstantHeaderName(); > break; > >- case 509 : if (DEBUG) { System.out.println("EnumConstantHeader ::= EnumConstantHeaderName..."); } //$NON-NLS-1$ >+ case 562 : if (DEBUG) { System.out.println("EnumConstantHeader ::= EnumConstantHeaderName..."); } //$NON-NLS-1$ > consumeEnumConstantHeader(); > break; > >- case 510 : if (DEBUG) { System.out.println("EnumConstant ::= EnumConstantHeader ForceNoDiet..."); } //$NON-NLS-1$ >+ case 563 : if (DEBUG) { System.out.println("EnumConstant ::= EnumConstantHeader ForceNoDiet..."); } //$NON-NLS-1$ > consumeEnumConstantWithClassBody(); > break; > >- case 511 : if (DEBUG) { System.out.println("EnumConstant ::= EnumConstantHeader"); } //$NON-NLS-1$ >+ case 564 : if (DEBUG) { System.out.println("EnumConstant ::= EnumConstantHeader"); } //$NON-NLS-1$ > consumeEnumConstantNoClassBody(); > break; > >- case 512 : if (DEBUG) { System.out.println("Arguments ::= LPAREN ArgumentListopt RPAREN"); } //$NON-NLS-1$ >+ case 565 : if (DEBUG) { System.out.println("Arguments ::= LPAREN ArgumentListopt RPAREN"); } //$NON-NLS-1$ > consumeArguments(); > break; > >- case 513 : if (DEBUG) { System.out.println("Argumentsopt ::="); } //$NON-NLS-1$ >+ case 566 : if (DEBUG) { System.out.println("Argumentsopt ::="); } //$NON-NLS-1$ > consumeEmptyArguments(); > break; > >- case 515 : if (DEBUG) { System.out.println("EnumDeclarations ::= SEMICOLON ClassBodyDeclarationsopt"); } //$NON-NLS-1$ >+ case 568 : if (DEBUG) { System.out.println("EnumDeclarations ::= SEMICOLON ClassBodyDeclarationsopt"); } //$NON-NLS-1$ > consumeEnumDeclarations(); > break; > >- case 516 : if (DEBUG) { System.out.println("EnumBodyDeclarationsopt ::="); } //$NON-NLS-1$ >+ case 569 : if (DEBUG) { System.out.println("EnumBodyDeclarationsopt ::="); } //$NON-NLS-1$ > consumeEmptyEnumDeclarations(); > break; > >- case 518 : if (DEBUG) { System.out.println("EnhancedForStatement ::= EnhancedForStatementHeader..."); } //$NON-NLS-1$ >+ case 571 : if (DEBUG) { System.out.println("EnhancedForStatement ::= EnhancedForStatementHeader..."); } //$NON-NLS-1$ > consumeEnhancedForStatement(); > break; > >- case 519 : if (DEBUG) { System.out.println("EnhancedForStatementNoShortIf ::=..."); } //$NON-NLS-1$ >+ case 572 : if (DEBUG) { System.out.println("EnhancedForStatementNoShortIf ::=..."); } //$NON-NLS-1$ > consumeEnhancedForStatement(); > break; > >- case 520 : if (DEBUG) { System.out.println("EnhancedForStatementHeaderInit ::= for LPAREN Type..."); } //$NON-NLS-1$ >+ case 573 : if (DEBUG) { System.out.println("EnhancedForStatementHeaderInit ::= for LPAREN Type0..."); } //$NON-NLS-1$ > consumeEnhancedForStatementHeaderInit(false); > break; > >- case 521 : if (DEBUG) { System.out.println("EnhancedForStatementHeaderInit ::= for LPAREN Modifiers"); } //$NON-NLS-1$ >+ case 574 : if (DEBUG) { System.out.println("EnhancedForStatementHeaderInit ::= for LPAREN Modifiers"); } //$NON-NLS-1$ > consumeEnhancedForStatementHeaderInit(true); > break; > >- case 522 : if (DEBUG) { System.out.println("EnhancedForStatementHeader ::=..."); } //$NON-NLS-1$ >+ case 575 : if (DEBUG) { System.out.println("EnhancedForStatementHeader ::=..."); } //$NON-NLS-1$ > consumeEnhancedForStatementHeader(); > break; > >- case 523 : if (DEBUG) { System.out.println("SingleStaticImportDeclaration ::=..."); } //$NON-NLS-1$ >+ case 576 : if (DEBUG) { System.out.println("SingleStaticImportDeclaration ::=..."); } //$NON-NLS-1$ > consumeImportDeclaration(); > break; > >- case 524 : if (DEBUG) { System.out.println("SingleStaticImportDeclarationName ::= import static Name"); } //$NON-NLS-1$ >+ case 577 : if (DEBUG) { System.out.println("SingleStaticImportDeclarationName ::= import static Name"); } //$NON-NLS-1$ > consumeSingleStaticImportDeclarationName(); > break; > >- case 525 : if (DEBUG) { System.out.println("StaticImportOnDemandDeclaration ::=..."); } //$NON-NLS-1$ >+ case 578 : if (DEBUG) { System.out.println("StaticImportOnDemandDeclaration ::=..."); } //$NON-NLS-1$ > consumeImportDeclaration(); > break; > >- case 526 : if (DEBUG) { System.out.println("StaticImportOnDemandDeclarationName ::= import static..."); } //$NON-NLS-1$ >+ case 579 : if (DEBUG) { System.out.println("StaticImportOnDemandDeclarationName ::= import static..."); } //$NON-NLS-1$ > consumeStaticImportOnDemandDeclarationName(); > break; > >- case 527 : if (DEBUG) { System.out.println("TypeArguments ::= LESS TypeArgumentList1"); } //$NON-NLS-1$ >+ case 580 : if (DEBUG) { System.out.println("TypeArguments ::= LESS TypeArgumentList1"); } //$NON-NLS-1$ > consumeTypeArguments(); > break; > >- case 528 : if (DEBUG) { System.out.println("OnlyTypeArguments ::= LESS TypeArgumentList1"); } //$NON-NLS-1$ >+ case 581 : if (DEBUG) { System.out.println("OnlyTypeArguments ::= LESS TypeArgumentList1"); } //$NON-NLS-1$ > consumeOnlyTypeArguments(); > break; > >- case 530 : if (DEBUG) { System.out.println("TypeArgumentList1 ::= TypeArgumentList COMMA..."); } //$NON-NLS-1$ >+ case 583 : if (DEBUG) { System.out.println("TypeArgumentList1 ::= TypeArgumentList COMMA..."); } //$NON-NLS-1$ > consumeTypeArgumentList1(); > break; > >- case 532 : if (DEBUG) { System.out.println("TypeArgumentList ::= TypeArgumentList COMMA TypeArgument"); } //$NON-NLS-1$ >+ case 585 : if (DEBUG) { System.out.println("TypeArgumentList ::= TypeArgumentList COMMA TypeArgument"); } //$NON-NLS-1$ > consumeTypeArgumentList(); > break; > >- case 533 : if (DEBUG) { System.out.println("TypeArgument ::= ReferenceType"); } //$NON-NLS-1$ >+ case 586 : if (DEBUG) { System.out.println("TypeArgument ::= ReferenceType"); } //$NON-NLS-1$ > consumeTypeArgument(); > break; > >- case 537 : if (DEBUG) { System.out.println("ReferenceType1 ::= ReferenceType GREATER"); } //$NON-NLS-1$ >+ case 590 : if (DEBUG) { System.out.println("ReferenceType1 ::= ReferenceType GREATER"); } //$NON-NLS-1$ > consumeReferenceType1(); > break; > >- case 538 : if (DEBUG) { System.out.println("ReferenceType1 ::= ClassOrInterface LESS..."); } //$NON-NLS-1$ >+ case 591 : if (DEBUG) { System.out.println("ReferenceType1 ::= ClassOrInterface LESS..."); } //$NON-NLS-1$ >+ consumeTypeArgumentReferenceType1(); >+ break; >+ >+ case 592 : if (DEBUG) { System.out.println("ReferenceType1 ::= TypeAnnotations ClassOrInterface LESS"); } //$NON-NLS-1$ > consumeTypeArgumentReferenceType1(); > break; > >- case 540 : if (DEBUG) { System.out.println("TypeArgumentList2 ::= TypeArgumentList COMMA..."); } //$NON-NLS-1$ >+ case 594 : if (DEBUG) { System.out.println("TypeArgumentList2 ::= TypeArgumentList COMMA..."); } //$NON-NLS-1$ > consumeTypeArgumentList2(); > break; > >- case 543 : if (DEBUG) { System.out.println("ReferenceType2 ::= ReferenceType RIGHT_SHIFT"); } //$NON-NLS-1$ >+ case 597 : if (DEBUG) { System.out.println("ReferenceType2 ::= ReferenceType RIGHT_SHIFT"); } //$NON-NLS-1$ > consumeReferenceType2(); > break; > >- case 544 : if (DEBUG) { System.out.println("ReferenceType2 ::= ClassOrInterface LESS..."); } //$NON-NLS-1$ >+ case 598 : if (DEBUG) { System.out.println("ReferenceType2 ::= ClassOrInterface LESS..."); } //$NON-NLS-1$ > consumeTypeArgumentReferenceType2(); > break; > >- case 546 : if (DEBUG) { System.out.println("TypeArgumentList3 ::= TypeArgumentList COMMA..."); } //$NON-NLS-1$ >+ case 599 : if (DEBUG) { System.out.println("ReferenceType2 ::= TypeAnnotations ClassOrInterface LESS"); } //$NON-NLS-1$ >+ consumeTypeArgumentReferenceType2(); >+ break; >+ >+ case 601 : if (DEBUG) { System.out.println("TypeArgumentList3 ::= TypeArgumentList COMMA..."); } //$NON-NLS-1$ > consumeTypeArgumentList3(); > break; > >- case 549 : if (DEBUG) { System.out.println("ReferenceType3 ::= ReferenceType UNSIGNED_RIGHT_SHIFT"); } //$NON-NLS-1$ >+ case 604 : if (DEBUG) { System.out.println("ReferenceType3 ::= ReferenceType UNSIGNED_RIGHT_SHIFT"); } //$NON-NLS-1$ > consumeReferenceType3(); > break; > >- case 550 : if (DEBUG) { System.out.println("Wildcard ::= QUESTION"); } //$NON-NLS-1$ >+ case 605 : if (DEBUG) { System.out.println("Wildcard ::= QUESTION"); } //$NON-NLS-1$ > consumeWildcard(); > break; > >- case 551 : if (DEBUG) { System.out.println("Wildcard ::= QUESTION WildcardBounds"); } //$NON-NLS-1$ >+ case 606 : if (DEBUG) { System.out.println("Wildcard ::= QUESTION WildcardBounds"); } //$NON-NLS-1$ > consumeWildcardWithBounds(); > break; > >- case 552 : if (DEBUG) { System.out.println("WildcardBounds ::= extends ReferenceType"); } //$NON-NLS-1$ >+ case 607 : if (DEBUG) { System.out.println("WildcardBounds ::= extends ReferenceType"); } //$NON-NLS-1$ > consumeWildcardBoundsExtends(); > break; > >- case 553 : if (DEBUG) { System.out.println("WildcardBounds ::= super ReferenceType"); } //$NON-NLS-1$ >+ case 608 : if (DEBUG) { System.out.println("WildcardBounds ::= super ReferenceType"); } //$NON-NLS-1$ > consumeWildcardBoundsSuper(); > break; > >- case 554 : if (DEBUG) { System.out.println("Wildcard1 ::= QUESTION GREATER"); } //$NON-NLS-1$ >+ case 609 : if (DEBUG) { System.out.println("Wildcard1 ::= QUESTION GREATER"); } //$NON-NLS-1$ > consumeWildcard1(); > break; > >- case 555 : if (DEBUG) { System.out.println("Wildcard1 ::= QUESTION WildcardBounds1"); } //$NON-NLS-1$ >+ case 610 : if (DEBUG) { System.out.println("Wildcard1 ::= QUESTION WildcardBounds1"); } //$NON-NLS-1$ > consumeWildcard1WithBounds(); > break; > >- case 556 : if (DEBUG) { System.out.println("WildcardBounds1 ::= extends ReferenceType1"); } //$NON-NLS-1$ >+ case 611 : if (DEBUG) { System.out.println("WildcardBounds1 ::= extends ReferenceType1"); } //$NON-NLS-1$ > consumeWildcardBounds1Extends(); > break; > >- case 557 : if (DEBUG) { System.out.println("WildcardBounds1 ::= super ReferenceType1"); } //$NON-NLS-1$ >+ case 612 : if (DEBUG) { System.out.println("WildcardBounds1 ::= super ReferenceType1"); } //$NON-NLS-1$ > consumeWildcardBounds1Super(); > break; > >- case 558 : if (DEBUG) { System.out.println("Wildcard2 ::= QUESTION RIGHT_SHIFT"); } //$NON-NLS-1$ >+ case 613 : if (DEBUG) { System.out.println("Wildcard2 ::= QUESTION RIGHT_SHIFT"); } //$NON-NLS-1$ > consumeWildcard2(); > break; > >- case 559 : if (DEBUG) { System.out.println("Wildcard2 ::= QUESTION WildcardBounds2"); } //$NON-NLS-1$ >+ case 614 : if (DEBUG) { System.out.println("Wildcard2 ::= QUESTION WildcardBounds2"); } //$NON-NLS-1$ > consumeWildcard2WithBounds(); > break; > >- case 560 : if (DEBUG) { System.out.println("WildcardBounds2 ::= extends ReferenceType2"); } //$NON-NLS-1$ >+ case 615 : if (DEBUG) { System.out.println("WildcardBounds2 ::= extends ReferenceType2"); } //$NON-NLS-1$ > consumeWildcardBounds2Extends(); > break; > >- case 561 : if (DEBUG) { System.out.println("WildcardBounds2 ::= super ReferenceType2"); } //$NON-NLS-1$ >+ case 616 : if (DEBUG) { System.out.println("WildcardBounds2 ::= super ReferenceType2"); } //$NON-NLS-1$ > consumeWildcardBounds2Super(); > break; > >- case 562 : if (DEBUG) { System.out.println("Wildcard3 ::= QUESTION UNSIGNED_RIGHT_SHIFT"); } //$NON-NLS-1$ >+ case 617 : if (DEBUG) { System.out.println("Wildcard3 ::= QUESTION UNSIGNED_RIGHT_SHIFT"); } //$NON-NLS-1$ > consumeWildcard3(); > break; > >- case 563 : if (DEBUG) { System.out.println("Wildcard3 ::= QUESTION WildcardBounds3"); } //$NON-NLS-1$ >+ case 618 : if (DEBUG) { System.out.println("Wildcard3 ::= QUESTION WildcardBounds3"); } //$NON-NLS-1$ > consumeWildcard3WithBounds(); > break; > >- case 564 : if (DEBUG) { System.out.println("WildcardBounds3 ::= extends ReferenceType3"); } //$NON-NLS-1$ >+ case 619 : if (DEBUG) { System.out.println("WildcardBounds3 ::= extends ReferenceType3"); } //$NON-NLS-1$ > consumeWildcardBounds3Extends(); > break; > >- case 565 : if (DEBUG) { System.out.println("WildcardBounds3 ::= super ReferenceType3"); } //$NON-NLS-1$ >+ case 620 : if (DEBUG) { System.out.println("WildcardBounds3 ::= super ReferenceType3"); } //$NON-NLS-1$ > consumeWildcardBounds3Super(); > break; > >- case 566 : if (DEBUG) { System.out.println("TypeParameterHeader ::= Identifier"); } //$NON-NLS-1$ >+ case 621 : if (DEBUG) { System.out.println("PushZeroTypeAnnotations ::="); } //$NON-NLS-1$ >+ consumeZeroTypeAnnotations(true); >+ break; >+ >+ case 622 : if (DEBUG) { System.out.println("TypeParameterHeader ::= PushZeroTypeAnnotations..."); } //$NON-NLS-1$ > consumeTypeParameterHeader(); > break; > >- case 567 : if (DEBUG) { System.out.println("TypeParameters ::= LESS TypeParameterList1"); } //$NON-NLS-1$ >+ case 623 : if (DEBUG) { System.out.println("TypeParameterHeader ::= TypeAnnotations Identifier"); } //$NON-NLS-1$ >+ consumeTypeParameterHeader(); >+ break; >+ >+ case 624 : if (DEBUG) { System.out.println("TypeParameters ::= LESS TypeParameterList1"); } //$NON-NLS-1$ > consumeTypeParameters(); > break; > >- case 569 : if (DEBUG) { System.out.println("TypeParameterList ::= TypeParameterList COMMA..."); } //$NON-NLS-1$ >+ case 626 : if (DEBUG) { System.out.println("TypeParameterList ::= TypeParameterList COMMA..."); } //$NON-NLS-1$ > consumeTypeParameterList(); > break; > >- case 571 : if (DEBUG) { System.out.println("TypeParameter ::= TypeParameterHeader extends..."); } //$NON-NLS-1$ >+ case 628 : if (DEBUG) { System.out.println("TypeParameter ::= TypeParameterHeader extends..."); } //$NON-NLS-1$ > consumeTypeParameterWithExtends(); > break; > >- case 572 : if (DEBUG) { System.out.println("TypeParameter ::= TypeParameterHeader extends..."); } //$NON-NLS-1$ >+ case 629 : if (DEBUG) { System.out.println("TypeParameter ::= TypeParameterHeader extends..."); } //$NON-NLS-1$ > consumeTypeParameterWithExtendsAndBounds(); > break; > >- case 574 : if (DEBUG) { System.out.println("AdditionalBoundList ::= AdditionalBoundList..."); } //$NON-NLS-1$ >+ case 631 : if (DEBUG) { System.out.println("AdditionalBoundList ::= AdditionalBoundList..."); } //$NON-NLS-1$ > consumeAdditionalBoundList(); > break; > >- case 575 : if (DEBUG) { System.out.println("AdditionalBound ::= AND ReferenceType"); } //$NON-NLS-1$ >+ case 632 : if (DEBUG) { System.out.println("AdditionalBound ::= AND ReferenceType"); } //$NON-NLS-1$ > consumeAdditionalBound(); > break; > >- case 577 : if (DEBUG) { System.out.println("TypeParameterList1 ::= TypeParameterList COMMA..."); } //$NON-NLS-1$ >+ case 634 : if (DEBUG) { System.out.println("TypeParameterList1 ::= TypeParameterList COMMA..."); } //$NON-NLS-1$ > consumeTypeParameterList1(); > break; > >- case 578 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader GREATER"); } //$NON-NLS-1$ >+ case 635 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader GREATER"); } //$NON-NLS-1$ > consumeTypeParameter1(); > break; > >- case 579 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader extends..."); } //$NON-NLS-1$ >+ case 636 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader extends..."); } //$NON-NLS-1$ > consumeTypeParameter1WithExtends(); > break; > >- case 580 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader extends..."); } //$NON-NLS-1$ >+ case 637 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader extends..."); } //$NON-NLS-1$ > consumeTypeParameter1WithExtendsAndBounds(); > break; > >- case 582 : if (DEBUG) { System.out.println("AdditionalBoundList1 ::= AdditionalBoundList..."); } //$NON-NLS-1$ >+ case 639 : if (DEBUG) { System.out.println("AdditionalBoundList1 ::= AdditionalBoundList..."); } //$NON-NLS-1$ > consumeAdditionalBoundList1(); > break; > >- case 583 : if (DEBUG) { System.out.println("AdditionalBound1 ::= AND ReferenceType1"); } //$NON-NLS-1$ >+ case 640 : if (DEBUG) { System.out.println("AdditionalBound1 ::= AND ReferenceType1"); } //$NON-NLS-1$ > consumeAdditionalBound1(); > break; > >- case 589 : if (DEBUG) { System.out.println("UnaryExpression_NotName ::= PLUS PushPosition..."); } //$NON-NLS-1$ >+ case 646 : if (DEBUG) { System.out.println("UnaryExpression_NotName ::= PLUS PushPosition..."); } //$NON-NLS-1$ > consumeUnaryExpression(OperatorIds.PLUS); > break; > >- case 590 : if (DEBUG) { System.out.println("UnaryExpression_NotName ::= MINUS PushPosition..."); } //$NON-NLS-1$ >+ case 647 : if (DEBUG) { System.out.println("UnaryExpression_NotName ::= MINUS PushPosition..."); } //$NON-NLS-1$ > consumeUnaryExpression(OperatorIds.MINUS); > break; > >- case 593 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus_NotName ::= TWIDDLE..."); } //$NON-NLS-1$ >+ case 650 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus_NotName ::= TWIDDLE..."); } //$NON-NLS-1$ > consumeUnaryExpression(OperatorIds.TWIDDLE); > break; > >- case 594 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus_NotName ::= NOT PushPosition"); } //$NON-NLS-1$ >+ case 651 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus_NotName ::= NOT PushPosition"); } //$NON-NLS-1$ > consumeUnaryExpression(OperatorIds.NOT); > break; > >- case 597 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 654 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.MULTIPLY); > break; > >- case 598 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name MULTIPLY..."); } //$NON-NLS-1$ >+ case 655 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name MULTIPLY..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.MULTIPLY); > break; > >- case 599 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 656 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.DIVIDE); > break; > >- case 600 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name DIVIDE..."); } //$NON-NLS-1$ >+ case 657 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name DIVIDE..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.DIVIDE); > break; > >- case 601 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 658 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.REMAINDER); > break; > >- case 602 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name REMAINDER..."); } //$NON-NLS-1$ >+ case 659 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name REMAINDER..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.REMAINDER); > break; > >- case 604 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 661 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.PLUS); > break; > >- case 605 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::= Name PLUS..."); } //$NON-NLS-1$ >+ case 662 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::= Name PLUS..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.PLUS); > break; > >- case 606 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 663 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.MINUS); > break; > >- case 607 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::= Name MINUS..."); } //$NON-NLS-1$ >+ case 664 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::= Name MINUS..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.MINUS); > break; > >- case 609 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); } //$NON-NLS-1$ >+ case 666 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.LEFT_SHIFT); > break; > >- case 610 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name LEFT_SHIFT..."); } //$NON-NLS-1$ >+ case 667 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name LEFT_SHIFT..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.LEFT_SHIFT); > break; > >- case 611 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); } //$NON-NLS-1$ >+ case 668 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.RIGHT_SHIFT); > break; > >- case 612 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name RIGHT_SHIFT..."); } //$NON-NLS-1$ >+ case 669 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name RIGHT_SHIFT..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.RIGHT_SHIFT); > break; > >- case 613 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); } //$NON-NLS-1$ >+ case 670 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.UNSIGNED_RIGHT_SHIFT); > break; > >- case 614 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name UNSIGNED_RIGHT_SHIFT..."); } //$NON-NLS-1$ >+ case 671 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name UNSIGNED_RIGHT_SHIFT..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.UNSIGNED_RIGHT_SHIFT); > break; > >- case 616 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= ShiftExpression_NotName"); } //$NON-NLS-1$ >+ case 673 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= ShiftExpression_NotName"); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.LESS); > break; > >- case 617 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name LESS..."); } //$NON-NLS-1$ >+ case 674 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name LESS..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.LESS); > break; > >- case 618 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= ShiftExpression_NotName"); } //$NON-NLS-1$ >+ case 675 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= ShiftExpression_NotName"); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.GREATER); > break; > >- case 619 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name GREATER..."); } //$NON-NLS-1$ >+ case 676 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name GREATER..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.GREATER); > break; > >- case 620 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 677 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.LESS_EQUAL); > break; > >- case 621 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name LESS_EQUAL..."); } //$NON-NLS-1$ >+ case 678 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name LESS_EQUAL..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.LESS_EQUAL); > break; > >- case 622 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 679 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.GREATER_EQUAL); > break; > >- case 623 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name GREATER_EQUAL..."); } //$NON-NLS-1$ >+ case 680 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name GREATER_EQUAL..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.GREATER_EQUAL); > break; > >- case 625 : if (DEBUG) { System.out.println("InstanceofExpression_NotName ::= Name instanceof..."); } //$NON-NLS-1$ >+ case 682 : if (DEBUG) { System.out.println("InstanceofExpression_NotName ::= Name instanceof..."); } //$NON-NLS-1$ > consumeInstanceOfExpressionWithName(); > break; > >- case 626 : if (DEBUG) { System.out.println("InstanceofExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 683 : if (DEBUG) { System.out.println("InstanceofExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeInstanceOfExpression(); > break; > >- case 628 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 685 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeEqualityExpression(OperatorIds.EQUAL_EQUAL); > break; > >- case 629 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::= Name EQUAL_EQUAL..."); } //$NON-NLS-1$ >+ case 686 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::= Name EQUAL_EQUAL..."); } //$NON-NLS-1$ > consumeEqualityExpressionWithName(OperatorIds.EQUAL_EQUAL); > break; > >- case 630 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 687 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeEqualityExpression(OperatorIds.NOT_EQUAL); > break; > >- case 631 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::= Name NOT_EQUAL..."); } //$NON-NLS-1$ >+ case 688 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::= Name NOT_EQUAL..."); } //$NON-NLS-1$ > consumeEqualityExpressionWithName(OperatorIds.NOT_EQUAL); > break; > >- case 633 : if (DEBUG) { System.out.println("AndExpression_NotName ::= AndExpression_NotName AND..."); } //$NON-NLS-1$ >+ case 690 : if (DEBUG) { System.out.println("AndExpression_NotName ::= AndExpression_NotName AND..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.AND); > break; > >- case 634 : if (DEBUG) { System.out.println("AndExpression_NotName ::= Name AND EqualityExpression"); } //$NON-NLS-1$ >+ case 691 : if (DEBUG) { System.out.println("AndExpression_NotName ::= Name AND EqualityExpression"); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.AND); > break; > >- case 636 : if (DEBUG) { System.out.println("ExclusiveOrExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 693 : if (DEBUG) { System.out.println("ExclusiveOrExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.XOR); > break; > >- case 637 : if (DEBUG) { System.out.println("ExclusiveOrExpression_NotName ::= Name XOR AndExpression"); } //$NON-NLS-1$ >+ case 694 : if (DEBUG) { System.out.println("ExclusiveOrExpression_NotName ::= Name XOR AndExpression"); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.XOR); > break; > >- case 639 : if (DEBUG) { System.out.println("InclusiveOrExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 696 : if (DEBUG) { System.out.println("InclusiveOrExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.OR); > break; > >- case 640 : if (DEBUG) { System.out.println("InclusiveOrExpression_NotName ::= Name OR..."); } //$NON-NLS-1$ >+ case 697 : if (DEBUG) { System.out.println("InclusiveOrExpression_NotName ::= Name OR..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.OR); > break; > >- case 642 : if (DEBUG) { System.out.println("ConditionalAndExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 699 : if (DEBUG) { System.out.println("ConditionalAndExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.AND_AND); > break; > >- case 643 : if (DEBUG) { System.out.println("ConditionalAndExpression_NotName ::= Name AND_AND..."); } //$NON-NLS-1$ >+ case 700 : if (DEBUG) { System.out.println("ConditionalAndExpression_NotName ::= Name AND_AND..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.AND_AND); > break; > >- case 645 : if (DEBUG) { System.out.println("ConditionalOrExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 702 : if (DEBUG) { System.out.println("ConditionalOrExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeBinaryExpression(OperatorIds.OR_OR); > break; > >- case 646 : if (DEBUG) { System.out.println("ConditionalOrExpression_NotName ::= Name OR_OR..."); } //$NON-NLS-1$ >+ case 703 : if (DEBUG) { System.out.println("ConditionalOrExpression_NotName ::= Name OR_OR..."); } //$NON-NLS-1$ > consumeBinaryExpressionWithName(OperatorIds.OR_OR); > break; > >- case 648 : if (DEBUG) { System.out.println("ConditionalExpression_NotName ::=..."); } //$NON-NLS-1$ >+ case 705 : if (DEBUG) { System.out.println("ConditionalExpression_NotName ::=..."); } //$NON-NLS-1$ > consumeConditionalExpression(OperatorIds.QUESTIONCOLON) ; > break; > >- case 649 : if (DEBUG) { System.out.println("ConditionalExpression_NotName ::= Name QUESTION..."); } //$NON-NLS-1$ >+ case 706 : if (DEBUG) { System.out.println("ConditionalExpression_NotName ::= Name QUESTION..."); } //$NON-NLS-1$ > consumeConditionalExpressionWithName(OperatorIds.QUESTIONCOLON) ; > break; > >- case 653 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= Modifiers AT..."); } //$NON-NLS-1$ >+ case 710 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= Modifiers AT..."); } //$NON-NLS-1$ > consumeAnnotationTypeDeclarationHeaderName() ; > break; > >- case 654 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= Modifiers AT..."); } //$NON-NLS-1$ >+ case 711 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= Modifiers AT..."); } //$NON-NLS-1$ > consumeAnnotationTypeDeclarationHeaderNameWithTypeParameters() ; > break; > >- case 655 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= AT..."); } //$NON-NLS-1$ >+ case 712 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= AT..."); } //$NON-NLS-1$ > consumeAnnotationTypeDeclarationHeaderNameWithTypeParameters() ; > break; > >- case 656 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= AT..."); } //$NON-NLS-1$ >+ case 713 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeaderName ::= AT..."); } //$NON-NLS-1$ > consumeAnnotationTypeDeclarationHeaderName() ; > break; > >- case 657 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeader ::=..."); } //$NON-NLS-1$ >+ case 714 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeader ::=..."); } //$NON-NLS-1$ > consumeAnnotationTypeDeclarationHeader() ; > break; > >- case 658 : if (DEBUG) { System.out.println("AnnotationTypeDeclaration ::=..."); } //$NON-NLS-1$ >+ case 715 : if (DEBUG) { System.out.println("AnnotationTypeDeclaration ::=..."); } //$NON-NLS-1$ > consumeAnnotationTypeDeclaration() ; > break; > >- case 660 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarationsopt ::="); } //$NON-NLS-1$ >+ case 717 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarationsopt ::="); } //$NON-NLS-1$ > consumeEmptyAnnotationTypeMemberDeclarationsopt() ; > break; > >- case 661 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarationsopt ::= NestedType..."); } //$NON-NLS-1$ >+ case 718 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarationsopt ::= NestedType..."); } //$NON-NLS-1$ > consumeAnnotationTypeMemberDeclarationsopt() ; > break; > >- case 663 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarations ::=..."); } //$NON-NLS-1$ >+ case 720 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarations ::=..."); } //$NON-NLS-1$ > consumeAnnotationTypeMemberDeclarations() ; > break; > >- case 664 : if (DEBUG) { System.out.println("AnnotationMethodHeaderName ::= Modifiersopt..."); } //$NON-NLS-1$ >+ case 721 : if (DEBUG) { System.out.println("AnnotationMethodHeaderName ::= Modifiersopt..."); } //$NON-NLS-1$ > consumeMethodHeaderNameWithTypeParameters(true); > break; > >- case 665 : if (DEBUG) { System.out.println("AnnotationMethodHeaderName ::= Modifiersopt Type..."); } //$NON-NLS-1$ >+ case 722 : if (DEBUG) { System.out.println("AnnotationMethodHeaderName ::= Modifiersopt Type0..."); } //$NON-NLS-1$ > consumeMethodHeaderName(true); > break; > >- case 666 : if (DEBUG) { System.out.println("AnnotationMethodHeaderDefaultValueopt ::="); } //$NON-NLS-1$ >+ case 723 : if (DEBUG) { System.out.println("AnnotationMethodHeaderDefaultValueopt ::="); } //$NON-NLS-1$ > consumeEmptyMethodHeaderDefaultValue() ; > break; > >- case 667 : if (DEBUG) { System.out.println("AnnotationMethodHeaderDefaultValueopt ::= DefaultValue"); } //$NON-NLS-1$ >+ case 724 : if (DEBUG) { System.out.println("AnnotationMethodHeaderDefaultValueopt ::= DefaultValue"); } //$NON-NLS-1$ > consumeMethodHeaderDefaultValue(); > break; > >- case 668 : if (DEBUG) { System.out.println("AnnotationMethodHeader ::= AnnotationMethodHeaderName..."); } //$NON-NLS-1$ >+ case 725 : if (DEBUG) { System.out.println("AnnotationMethodHeader ::= AnnotationMethodHeaderName..."); } //$NON-NLS-1$ > consumeMethodHeader(); > break; > >- case 669 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclaration ::=..."); } //$NON-NLS-1$ >+ case 726 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclaration ::=..."); } //$NON-NLS-1$ > consumeAnnotationTypeMemberDeclaration() ; > break; > >- case 677 : if (DEBUG) { System.out.println("AnnotationName ::= AT Name"); } //$NON-NLS-1$ >+ case 734 : if (DEBUG) { System.out.println("AnnotationName ::= AT Name"); } //$NON-NLS-1$ > consumeAnnotationName() ; > break; > >- case 678 : if (DEBUG) { System.out.println("NormalAnnotation ::= AnnotationName LPAREN..."); } //$NON-NLS-1$ >+ case 735 : if (DEBUG) { System.out.println("NormalAnnotation ::= AnnotationName LPAREN..."); } //$NON-NLS-1$ > consumeNormalAnnotation() ; > break; > >- case 679 : if (DEBUG) { System.out.println("MemberValuePairsopt ::="); } //$NON-NLS-1$ >+ case 736 : if (DEBUG) { System.out.println("MemberValuePairsopt ::="); } //$NON-NLS-1$ > consumeEmptyMemberValuePairsopt() ; > break; > >- case 682 : if (DEBUG) { System.out.println("MemberValuePairs ::= MemberValuePairs COMMA..."); } //$NON-NLS-1$ >+ case 739 : if (DEBUG) { System.out.println("MemberValuePairs ::= MemberValuePairs COMMA..."); } //$NON-NLS-1$ > consumeMemberValuePairs() ; > break; > >- case 683 : if (DEBUG) { System.out.println("MemberValuePair ::= SimpleName EQUAL EnterMemberValue..."); } //$NON-NLS-1$ >+ case 740 : if (DEBUG) { System.out.println("MemberValuePair ::= SimpleName EQUAL EnterMemberValue..."); } //$NON-NLS-1$ > consumeMemberValuePair() ; > break; > >- case 684 : if (DEBUG) { System.out.println("EnterMemberValue ::="); } //$NON-NLS-1$ >+ case 741 : if (DEBUG) { System.out.println("EnterMemberValue ::="); } //$NON-NLS-1$ > consumeEnterMemberValue() ; > break; > >- case 685 : if (DEBUG) { System.out.println("ExitMemberValue ::="); } //$NON-NLS-1$ >+ case 742 : if (DEBUG) { System.out.println("ExitMemberValue ::="); } //$NON-NLS-1$ > consumeExitMemberValue() ; > break; > >- case 687 : if (DEBUG) { System.out.println("MemberValue ::= Name"); } //$NON-NLS-1$ >+ case 744 : if (DEBUG) { System.out.println("MemberValue ::= Name"); } //$NON-NLS-1$ > consumeMemberValueAsName() ; > break; > >- case 690 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$ >+ case 747 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$ > consumeMemberValueArrayInitializer() ; > break; > >- case 691 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$ >+ case 748 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$ > consumeMemberValueArrayInitializer() ; > break; > >- case 692 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$ >+ case 749 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$ > consumeEmptyMemberValueArrayInitializer() ; > break; > >- case 693 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$ >+ case 750 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::=..."); } //$NON-NLS-1$ > consumeEmptyMemberValueArrayInitializer() ; > break; > >- case 694 : if (DEBUG) { System.out.println("EnterMemberValueArrayInitializer ::="); } //$NON-NLS-1$ >+ case 751 : if (DEBUG) { System.out.println("EnterMemberValueArrayInitializer ::="); } //$NON-NLS-1$ > consumeEnterMemberValueArrayInitializer() ; > break; > >- case 696 : if (DEBUG) { System.out.println("MemberValues ::= MemberValues COMMA MemberValue"); } //$NON-NLS-1$ >+ case 753 : if (DEBUG) { System.out.println("MemberValues ::= MemberValues COMMA MemberValue"); } //$NON-NLS-1$ > consumeMemberValues() ; > break; > >- case 697 : if (DEBUG) { System.out.println("MarkerAnnotation ::= AnnotationName"); } //$NON-NLS-1$ >+ case 754 : if (DEBUG) { System.out.println("MarkerAnnotation ::= AnnotationName"); } //$NON-NLS-1$ > consumeMarkerAnnotation() ; > break; > >- case 698 : if (DEBUG) { System.out.println("SingleMemberAnnotationMemberValue ::= MemberValue"); } //$NON-NLS-1$ >+ case 755 : if (DEBUG) { System.out.println("SingleMemberAnnotationMemberValue ::= MemberValue"); } //$NON-NLS-1$ > consumeSingleMemberAnnotationMemberValue() ; > break; > >- case 699 : if (DEBUG) { System.out.println("SingleMemberAnnotation ::= AnnotationName LPAREN..."); } //$NON-NLS-1$ >+ case 756 : if (DEBUG) { System.out.println("SingleMemberAnnotation ::= AnnotationName LPAREN..."); } //$NON-NLS-1$ > consumeSingleMemberAnnotation() ; > break; > >- case 700 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= Modifiersopt TypeParameters"); } //$NON-NLS-1$ >+ case 757 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= Modifiersopt TypeParameters"); } //$NON-NLS-1$ > consumeRecoveryMethodHeaderNameWithTypeParameters(); > break; > >- case 701 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= Modifiersopt Type..."); } //$NON-NLS-1$ >+ case 758 : if (DEBUG) { System.out.println("RecoveryMethodHeaderName ::= Modifiersopt Type0..."); } //$NON-NLS-1$ > consumeRecoveryMethodHeaderName(); > break; > >- case 702 : if (DEBUG) { System.out.println("RecoveryMethodHeader ::= RecoveryMethodHeaderName..."); } //$NON-NLS-1$ >+ case 759 : if (DEBUG) { System.out.println("RecoveryMethodHeader ::= RecoveryMethodHeaderName..."); } //$NON-NLS-1$ > consumeMethodHeader(); > break; > >- case 703 : if (DEBUG) { System.out.println("RecoveryMethodHeader ::= RecoveryMethodHeaderName..."); } //$NON-NLS-1$ >+ case 760 : if (DEBUG) { System.out.println("RecoveryMethodHeader ::= RecoveryMethodHeaderName..."); } //$NON-NLS-1$ > consumeMethodHeader(); > break; > >@@ -7799,6 +8270,15 @@ > protected void consumeTypeParameterHeader() { > //TypeParameterHeader ::= Identifier > TypeParameter typeParameter = new TypeParameter(); >+ int length; >+ if ((length = this.typeAnnotationLengthStack[this.typeAnnotationLengthPtr--]) != 0) { >+ System.arraycopy( >+ this.typeAnnotationStack, >+ (this.typeAnnotationPtr -= length) + 1, >+ typeParameter.annotations = new Annotation[length], >+ 0, >+ length); >+ } > long pos = this.identifierPositionStack[this.identifierPtr]; > final int end = (int) pos; > typeParameter.declarationSourceEnd = end; >@@ -8096,6 +8576,11 @@ > protected TypeReference copyDims(TypeReference typeRef, int dim) { > return typeRef.copyDims(dim); > } >+ >+protected TypeReference copyDims(TypeReference typeRef, int dim, Annotation[][]annotationsOnDimensions) { >+ return typeRef.copyDims(dim, annotationsOnDimensions); >+} >+ > protected FieldDeclaration createFieldDeclaration(char[] fieldDeclarationName, int sourceStart, int sourceEnd) { > return new FieldDeclaration(fieldDeclarationName, sourceStart, sourceEnd); > } >@@ -8576,13 +9061,32 @@ > return exp; > } > protected TypeReference getTypeReference(int dim) { >+ TypeReference ref = getUnannotatedTypeReference(dim); >+ int length; >+ if (this.typeAnnotationLengthPtr >= 0 && (length = this.typeAnnotationLengthStack[this.typeAnnotationLengthPtr--]) != 0) { >+// if ((length = this.typeAnnotationLengthStack[this.typeAnnotationLengthPtr--]) != 0) { >+ >+ System.arraycopy( >+ this.typeAnnotationStack, >+ (this.typeAnnotationPtr -= length) + 1, >+ ref.annotations = new Annotation[length], >+ 0, >+ length); >+ } >+ return ref; >+} >+protected TypeReference getUnannotatedTypeReference(int dim) { > /* build a Reference on a variable that may be qualified or not > This variable is a type reference and dim will be its dimensions*/ > > TypeReference ref; >+ Annotation [][] annotationsOnDimensions = null; > int length = this.identifierLengthStack[this.identifierLengthPtr--]; > if (length < 0) { //flag for precompiled type reference on base types >- ref = TypeReference.baseTypeReference(-length, dim); >+ if (dim > 0) { >+ annotationsOnDimensions = getAnnotationsOnDimensions(dim); >+ } >+ ref = TypeReference.baseTypeReference(-length, dim, annotationsOnDimensions); > ref.sourceStart = this.intStack[this.intPtr--]; > if (dim == 0) { > ref.sourceEnd = this.intStack[this.intPtr--]; >@@ -8604,10 +9108,12 @@ > this.identifierStack[this.identifierPtr], > this.identifierPositionStack[this.identifierPtr--]); > } else { >+ annotationsOnDimensions = getAnnotationsOnDimensions(dim); > ref = > new ArrayTypeReference( > this.identifierStack[this.identifierPtr], > dim, >+ annotationsOnDimensions, > this.identifierPositionStack[this.identifierPtr--]); > ref.sourceEnd = this.endPosition; > } >@@ -8627,7 +9133,8 @@ > if (dim == 0) { > ref = new QualifiedTypeReference(tokens, positions); > } else { >- ref = new ArrayQualifiedTypeReference(tokens, dim, positions); >+ annotationsOnDimensions = getAnnotationsOnDimensions(dim); >+ ref = new ArrayQualifiedTypeReference(tokens, dim, annotationsOnDimensions, positions); > ref.sourceEnd = this.endPosition; > } > } >@@ -8635,12 +9142,13 @@ > return ref; > } > protected TypeReference getTypeReferenceForGenericType(int dim, int identifierLength, int numberOfIdentifiers) { >+ Annotation[][] annotationsOnDimensions = dim == 0 ? null : getAnnotationsOnDimensions(dim); > if (identifierLength == 1 && numberOfIdentifiers == 1) { > int currentTypeArgumentsLength = this.genericsLengthStack[this.genericsLengthPtr--]; > TypeReference[] typeArguments = new TypeReference[currentTypeArgumentsLength]; > this.genericsPtr -= currentTypeArgumentsLength; > System.arraycopy(this.genericsStack, this.genericsPtr + 1, typeArguments, 0, currentTypeArgumentsLength); >- ParameterizedSingleTypeReference parameterizedSingleTypeReference = new ParameterizedSingleTypeReference(this.identifierStack[this.identifierPtr], typeArguments, dim, this.identifierPositionStack[this.identifierPtr--]); >+ ParameterizedSingleTypeReference parameterizedSingleTypeReference = new ParameterizedSingleTypeReference(this.identifierStack[this.identifierPtr], typeArguments, dim, annotationsOnDimensions, this.identifierPositionStack[this.identifierPtr--]); > if (dim != 0) { > parameterizedSingleTypeReference.sourceEnd = this.endStatementPosition; > } >@@ -8674,7 +9182,7 @@ > currentIdentifiersLength = this.identifierLengthStack[this.identifierLengthPtr--]; > } > } >- ParameterizedQualifiedTypeReference parameterizedQualifiedTypeReference = new ParameterizedQualifiedTypeReference(tokens, typeArguments, dim, positions); >+ ParameterizedQualifiedTypeReference parameterizedQualifiedTypeReference = new ParameterizedQualifiedTypeReference(tokens, typeArguments, dim, annotationsOnDimensions, positions); > if (dim != 0) { > parameterizedQualifiedTypeReference.sourceEnd = this.endStatementPosition; > } >@@ -8895,6 +9403,9 @@ > this.astLengthPtr = -1; > this.expressionPtr = -1; > this.expressionLengthPtr = -1; >+ this.unattachedAnnotationPtr = -1; >+ this.typeAnnotationLengthPtr = -1; >+ this.typeAnnotationPtr = -1; > this.identifierPtr = -1; > this.identifierLengthPtr = -1; > this.intPtr = -1; >@@ -10025,6 +10536,37 @@ > } > this.astLengthStack[this.astLengthPtr] = 1; > } >+protected void pushOnTypeAnnotationStack(Annotation annotation) { >+ >+ int stackLength = this.typeAnnotationStack.length; >+ if (++this.typeAnnotationPtr >= stackLength) { >+ System.arraycopy( >+ this.typeAnnotationStack, 0, >+ this.typeAnnotationStack = new Annotation[stackLength + TypeAnnotationStackIncrement], 0, >+ stackLength); >+ } >+ this.typeAnnotationStack[this.typeAnnotationPtr] = annotation; >+ >+ stackLength = this.typeAnnotationLengthStack.length; >+ if (++this.typeAnnotationLengthPtr >= stackLength) { >+ System.arraycopy( >+ this.typeAnnotationLengthStack, 0, >+ this.typeAnnotationLengthStack = new int[stackLength + TypeAnnotationStackIncrement], 0, >+ stackLength); >+ } >+ this.typeAnnotationLengthStack[this.typeAnnotationLengthPtr] = 1; >+} >+protected void pushOnTypeAnnotationLengthStack(int pos) { >+ >+ int stackLength = this.typeAnnotationLengthStack.length; >+ if (++this.typeAnnotationLengthPtr >= stackLength) { >+ System.arraycopy( >+ this.typeAnnotationLengthStack, 0, >+ this.typeAnnotationLengthStack = new int[stackLength + TypeAnnotationStackIncrement], 0, >+ stackLength); >+ } >+ this.typeAnnotationLengthStack[this.typeAnnotationLengthPtr] = pos; >+} > protected void pushOnExpressionStack(Expression expr) { > > int stackLength = this.expressionStack.length; >@@ -10445,6 +10987,9 @@ > this.astLengthPtr = -1; > this.expressionPtr = -1; > this.expressionLengthPtr = -1; >+ this.unattachedAnnotationPtr = -1; >+ this.typeAnnotationLengthPtr = -1; >+ this.typeAnnotationPtr = -1; > this.identifierPtr = -1; > this.identifierLengthPtr = -1; > this.intPtr = -1; >Index: compiler/org/eclipse/jdt/core/compiler/IProblem.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/IProblem.java,v >retrieving revision 1.217 >diff -u -r1.217 IProblem.java >--- compiler/org/eclipse/jdt/core/compiler/IProblem.java 6 Oct 2009 13:18:02 -0000 1.217 >+++ compiler/org/eclipse/jdt/core/compiler/IProblem.java 14 Oct 2009 06:05:29 -0000 >@@ -1227,6 +1227,12 @@ > int UnusedWarningToken = Internal + 635; > /** @since 3.6 */ > int MissingOverrideAnnotationForInterfaceMethodImplementation = MethodRelated + 636; >+ /** @since 3.6 */ >+ int InvalidUsageOfTypeAnnotations = Syntax + Internal + 637; >+ /** @since 3.6 */ >+ int InvalidUsageOfReceiverAnnotations = Syntax + Internal + 638; >+ /** @since 3.6 */ >+ int misplacedTypeAnnotations = Syntax + Internal + 639; > > /** > * More problems in generics >Index: compiler/org/eclipse/jdt/internal/compiler/problem/messages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/messages.properties,v >retrieving revision 1.252 >diff -u -r1.252 messages.properties >--- compiler/org/eclipse/jdt/internal/compiler/problem/messages.properties 6 Oct 2009 13:18:03 -0000 1.252 >+++ compiler/org/eclipse/jdt/internal/compiler/problem/messages.properties 14 Oct 2009 06:05:37 -0000 >@@ -561,7 +561,9 @@ > 634 = The method {0}({1}) of type {2} must override or implement a supertype method > 635 = Unnecessary @SuppressWarnings("{0}") > 636 = The method {0}({1}) of type {2} should be tagged with @Override since it actually overrides a superinterface method >- >+637 = Syntax error, type annotations are available only when source level is at least 1.7 >+638 = Receiver annotations are illegal in a static method context >+639 = Syntax error, type annotations are illegal here > ### MORE GENERICS > 660 = Unused type arguments for the non generic constructor {0}({1}) of type {2}; it should not be parameterized with arguments <{3}> > >Index: compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java,v >retrieving revision 1.397 >diff -u -r1.397 ProblemReporter.java >--- compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java 6 Oct 2009 19:24:24 -0000 1.397 >+++ compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java 14 Oct 2009 06:05:37 -0000 >@@ -7423,4 +7423,31 @@ > typeRef.sourceStart, > typeRef.sourceEnd); > } >+ >+public void invalidUsageOfTypeAnnotations(Annotation annotation) { >+ this.handle( >+ IProblem.InvalidUsageOfTypeAnnotations, >+ NoArgument, >+ NoArgument, >+ annotation.sourceStart, >+ annotation.sourceEnd); >+} >+ >+public void illegalReceiverAnnotations(Annotation first, Annotation last) { >+ this.handle( >+ IProblem.InvalidUsageOfReceiverAnnotations, >+ NoArgument, >+ NoArgument, >+ first.sourceStart, >+ last.sourceEnd); >+} >+ >+public void misplacedTypeAnnotations(Annotation first, Annotation last) { >+ this.handle( >+ IProblem.misplacedTypeAnnotations, >+ NoArgument, >+ NoArgument, >+ first.sourceStart, >+ last.sourceEnd); >+} > } >Index: eval/org/eclipse/jdt/internal/eval/CodeSnippetParser.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/eval/org/eclipse/jdt/internal/eval/CodeSnippetParser.java,v >retrieving revision 1.69 >diff -u -r1.69 CodeSnippetParser.java >--- eval/org/eclipse/jdt/internal/eval/CodeSnippetParser.java 22 Sep 2009 15:37:31 -0000 1.69 >+++ eval/org/eclipse/jdt/internal/eval/CodeSnippetParser.java 14 Oct 2009 06:05:37 -0000 >@@ -721,6 +721,9 @@ > > // reset stacks in consistent state > this.expressionPtr = -1; >+ this.unattachedAnnotationPtr = -1; >+ this.typeAnnotationLengthPtr = -1; >+ this.typeAnnotationPtr = -1; > this.identifierPtr = -1; > this.identifierLengthPtr = -1; > >#P org.eclipse.jdt.core.tests >Index: Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/NegativeTest.java >=================================================================== >RCS file: /home/cvs/numbat/org.eclipse.jdt.core.tests/Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/NegativeTest.java,v >retrieving revision 1.328 >diff -u -r1.328 NegativeTest.java >--- Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/NegativeTest.java 17 Aug 2009 17:45:39 -0000 1.328 >+++ Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/NegativeTest.java 14 Oct 2009 06:05:56 -0000 >@@ -2174,11 +2174,16 @@ > " public static final x;\n" + > "}", > }, >- "----------\n" + >- "1. ERROR in p\\X.java (at line 3)\n" + >- " public static final x;\n" + >- " ^^^^^\n" + >- "Syntax error on token \"final\", invalid Type\n" + >+ "----------\n" + >+ "1. ERROR in p\\X.java (at line 3)\n" + >+ " public static final x;\n" + >+ " ^\n" + >+ "Syntax error, insert \"Identifier (\" to complete MethodHeaderName\n" + >+ "----------\n" + >+ "2. ERROR in p\\X.java (at line 3)\n" + >+ " public static final x;\n" + >+ " ^\n" + >+ "Syntax error, insert \")\" to complete MethodDeclaration\n" + > "----------\n" > ); > } >@@ -4812,7 +4817,7 @@ > "1. ERROR in p\\Example3.java (at line 10)\n" + > " int myVal = condition ? x = 7 : x = 3;\n" + > " ^\n" + >- "Syntax error on token \"=\", != expected\n" + >+ "Syntax error on token \"=\", <= expected\n" + > "----------\n" > ); > } >@@ -4939,21 +4944,21 @@ > " }\n" + > "}", > }, >- "----------\n" + >- "1. ERROR in p\\NA.java (at line 7)\n" + >- " (new Class1).run();\n" + >- " ^^^\n" + >- "Syntax error on token \"new\", delete this token\n" + >- "----------\n" + >- "2. ERROR in p\\NA.java (at line 8)\n" + >- " (new Class2).run();\n" + >- " ^^^\n" + >- "Syntax error on token \"new\", delete this token\n" + >- "----------\n" + >- "3. ERROR in p\\NA.java (at line 9)\n" + >- " (new Class3).run();\n" + >- " ^^^\n" + >- "Syntax error on token \"new\", delete this token\n" + >+ "----------\n" + >+ "1. ERROR in p\\NA.java (at line 7)\n" + >+ " (new Class1).run();\n" + >+ " ^^^^^^\n" + >+ "Syntax error, insert \"Dimensions\" to complete Expression\n" + >+ "----------\n" + >+ "2. ERROR in p\\NA.java (at line 8)\n" + >+ " (new Class2).run();\n" + >+ " ^^^^^^\n" + >+ "Syntax error, insert \"Dimensions\" to complete Expression\n" + >+ "----------\n" + >+ "3. ERROR in p\\NA.java (at line 9)\n" + >+ " (new Class3).run();\n" + >+ " ^^^^^^\n" + >+ "Syntax error, insert \"Dimensions\" to complete Expression\n" + > "----------\n" > ); > } >#P org.eclipse.jdt.core.tests.compiler >Index: src/org/eclipse/jdt/core/tests/compiler/parser/CompletionParserTest2.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/CompletionParserTest2.java,v >retrieving revision 1.51 >diff -u -r1.51 CompletionParserTest2.java >--- src/org/eclipse/jdt/core/tests/compiler/parser/CompletionParserTest2.java 28 Apr 2009 17:17:31 -0000 1.51 >+++ src/org/eclipse/jdt/core/tests/compiler/parser/CompletionParserTest2.java 14 Oct 2009 06:05:59 -0000 >@@ -3067,7 +3067,10 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >+ // With the recent grammar changes, expectedCompletionNodeToString comes out as non-null >+ // since error recovery causes ForceNoDiet to be called without the corresponding >+ // RestoreDiet. >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; > String expectedParentNodeToString = "<NONE>"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; >@@ -3246,7 +3249,7 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; > String expectedParentNodeToString = "<NONE>"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; >@@ -4115,16 +4118,14 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >+ String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = > "package p;\n" + > "public class X {\n" + >- " Object o;\n" + >- " {\n" + >- " }\n" + >+ " Object o = new X[]{<CompleteOnName:zzz>};\n" + > " public X() {\n" + > " }\n" + > "}\n"; >@@ -4150,16 +4151,13 @@ > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > > String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = > "package p;\n" + > "public class X {\n" + >- " Object o;\n" + >- " {\n" + >- " <CompleteOnName:zzz>;\n" + >- " }\n" + >+ " Object o = new X[]{<CompleteOnName:zzz>};\n" + > " public X() {\n" + > " }\n" + > "}\n"; >@@ -4187,7 +4185,7 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; > String expectedParentNodeToString = "<NONE>"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; >@@ -4332,16 +4330,14 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >+ String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = > "package p;\n" + > "public class X {\n" + >- " Object o;\n" + >- " {\n" + >- " }\n" + >+ " Object o = new X[]{<CompleteOnName:zzz>};\n" + > " public X() {\n" + > " }\n" + > "}\n"; >@@ -4368,16 +4364,13 @@ > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > > String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = > "package p;\n" + > "public class X {\n" + >- " Object o;\n" + >- " {\n" + >- " <CompleteOnName:zzz>;\n" + >- " }\n" + >+ " Object o = new X[]{<CompleteOnName:zzz>};\n" + > " public X() {\n" + > " }\n" + > "}\n"; >@@ -4406,7 +4399,7 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; > String expectedParentNodeToString = "<NONE>"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; >@@ -4443,7 +4436,7 @@ > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > > String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = >@@ -4451,10 +4444,7 @@ > "public class X {\n" + > " {\n" + > " {\n" + >- " Object o;\n" + >- " {\n" + >- " <CompleteOnName:zzz>;\n" + >- " }\n" + >+ " Object o = new X[]{<CompleteOnName:zzz>};\n" + > " }\n" + > " }\n" + > " public X() {\n" + >@@ -4525,7 +4515,7 @@ > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > > String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = >@@ -4534,10 +4524,7 @@ > " public X() {\n" + > " }\n" + > " void foo() {\n" + >- " Object o;\n" + >- " {\n" + >- " <CompleteOnName:zzz>;\n" + >- " }\n" + >+ " Object o = new X[]{<CompleteOnName:zzz>};\n" + > " }\n" + > "}\n"; > >@@ -4927,16 +4914,14 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >+ String expectedParentNodeToString = "new int[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = > "package p;\n" + > "public class X {\n" + >- " int o;\n" + >- " {\n" + >- " }\n" + >+ " int o = new int[]{<CompleteOnName:zzz>};\n" + > " public X() {\n" + > " }\n" + > "}\n"; >@@ -4962,16 +4947,13 @@ > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > > String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedParentNodeToString = "new int[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = > "package p;\n" + > "public class X {\n" + >- " int o;\n" + >- " {\n" + >- " <CompleteOnName:zzz>;\n" + >- " }\n" + >+ " int o = new int[]{<CompleteOnName:zzz>};\n" + > " public X() {\n" + > " }\n" + > "}\n"; >@@ -5000,7 +4982,7 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; > String expectedParentNodeToString = "<NONE>"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; >@@ -5148,16 +5130,14 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >+ String expectedParentNodeToString = "new int[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = > "package p;\n" + > "public class X {\n" + >- " int o;\n" + >- " {\n" + >- " }\n" + >+ " int o = new int[]{<CompleteOnName:zzz>};\n" + > " public X() {\n" + > " }\n" + > "}\n"; >@@ -5184,16 +5164,13 @@ > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > > String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedParentNodeToString = "new int[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = > "package p;\n" + > "public class X {\n" + >- " int o;\n" + >- " {\n" + >- " <CompleteOnName:zzz>;\n" + >- " }\n" + >+ " int o = new int[]{<CompleteOnName:zzz>};\n" + > " public X() {\n" + > " }\n" + > "}\n"; >@@ -5223,7 +5200,7 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; > String expectedParentNodeToString = "<NONE>"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; >@@ -5260,7 +5237,7 @@ > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > > String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedParentNodeToString = "new int[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = >@@ -5268,10 +5245,7 @@ > "public class X {\n" + > " {\n" + > " {\n" + >- " int o;\n" + >- " {\n" + >- " <CompleteOnName:zzz>;\n" + >- " }\n" + >+ " int o = new int[]{<CompleteOnName:zzz>};\n" + > " }\n" + > " }\n" + > " public X() {\n" + >@@ -5345,7 +5319,7 @@ > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > > String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedParentNodeToString = "new int[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = >@@ -5354,10 +5328,7 @@ > " public X() {\n" + > " }\n" + > " void foo() {\n" + >- " int o;\n" + >- " {\n" + >- " <CompleteOnName:zzz>;\n" + >- " }\n" + >+ " int o = new int[]{<CompleteOnName:zzz>};\n" + > " }\n" + > "}\n"; > >@@ -5381,16 +5352,14 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >+ String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = > "package p;\n" + > "public class X {\n" + >- " X o;\n" + >- " {\n" + >- " }\n" + >+ " X o = new X[]{<CompleteOnName:zzz>};\n" + > " public X() {\n" + > " }\n" + > "}\n"; >@@ -5416,16 +5385,13 @@ > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > > String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = > "package p;\n" + > "public class X {\n" + >- " X o;\n" + >- " {\n" + >- " <CompleteOnName:zzz>;\n" + >- " }\n" + >+ " X o = new X[]{<CompleteOnName:zzz>};\n" + > " public X() {\n" + > " }\n" + > "}\n"; >@@ -5454,7 +5420,7 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; > String expectedParentNodeToString = "<NONE>"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; >@@ -5601,16 +5567,14 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >+ String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = > "package p;\n" + > "public class X {\n" + >- " X o;\n" + >- " {\n" + >- " }\n" + >+ " X o = new X[]{<CompleteOnName:zzz>};\n" + > " public X() {\n" + > " }\n" + > "}\n"; >@@ -5637,16 +5601,13 @@ > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > > String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = > "package p;\n" + > "public class X {\n" + >- " X o;\n" + >- " {\n" + >- " <CompleteOnName:zzz>;\n" + >- " }\n" + >+ " X o = new X[]{<CompleteOnName:zzz>};\n" + > " public X() {\n" + > " }\n" + > "}\n"; >@@ -5676,7 +5637,7 @@ > String completeBehind = "zzz"; > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > >- String expectedCompletionNodeToString = "<NONE>"; >+ String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; > String expectedParentNodeToString = "<NONE>"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; >@@ -5713,7 +5674,7 @@ > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > > String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = >@@ -5721,10 +5682,7 @@ > "public class X {\n" + > " {\n" + > " {\n" + >- " X o;\n" + >- " {\n" + >- " <CompleteOnName:zzz>;\n" + >- " }\n" + >+ " X o = new X[]{<CompleteOnName:zzz>};\n" + > " }\n" + > " }\n" + > " public X() {\n" + >@@ -5796,7 +5754,7 @@ > int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1; > > String expectedCompletionNodeToString = "<CompleteOnName:zzz>"; >- String expectedParentNodeToString = "<NONE>"; >+ String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}"; > String completionIdentifier = "zzz"; > String expectedReplacedSource = "zzz"; > String expectedUnitDisplayString = >@@ -5805,10 +5763,7 @@ > " public X() {\n" + > " }\n" + > " void foo() {\n" + >- " X o;\n" + >- " {\n" + >- " <CompleteOnName:zzz>;\n" + >- " }\n" + >+ " X o = new X[]{<CompleteOnName:zzz>};\n" + > " }\n" + > "}\n"; > >Index: src/org/eclipse/jdt/core/tests/compiler/parser/ComplianceDiagnoseTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/ComplianceDiagnoseTest.java,v >retrieving revision 1.42 >diff -u -r1.42 ComplianceDiagnoseTest.java >--- src/org/eclipse/jdt/core/tests/compiler/parser/ComplianceDiagnoseTest.java 27 Aug 2009 15:26:58 -0000 1.42 >+++ src/org/eclipse/jdt/core/tests/compiler/parser/ComplianceDiagnoseTest.java 14 Oct 2009 06:06:00 -0000 >@@ -1456,21 +1456,21 @@ > expected13ProblemLog; > > String expected15ProblemLog = >- "----------\n" + >- "1. WARNING in X.java (at line 1)\n" + >- " public class X <T1 extends String, T2 extends Y {\n" + >- " ^^^^^^\n" + >- "The type parameter T1 should not be bounded by the final type String. Final types cannot be further extended\n" + >- "----------\n" + >- "2. ERROR in X.java (at line 1)\n" + >- " public class X <T1 extends String, T2 extends Y {\n" + >- " ^\n" + >- "Syntax error, insert \">\" to complete ReferenceType1\n" + >- "----------\n" + >- "3. ERROR in X.java (at line 1)\n" + >- " public class X <T1 extends String, T2 extends Y {\n" + >- " ^\n" + >- "Y cannot be resolved to a type\n" + >+ "----------\n" + >+ "1. WARNING in X.java (at line 1)\n" + >+ " public class X <T1 extends String, T2 extends Y {\n" + >+ " ^^^^^^\n" + >+ "The type parameter T1 should not be bounded by the final type String. Final types cannot be further extended\n" + >+ "----------\n" + >+ "2. ERROR in X.java (at line 1)\n" + >+ " public class X <T1 extends String, T2 extends Y {\n" + >+ " ^\n" + >+ "Syntax error, insert \"AdditionalBoundList1\" to complete TypeParameter1\n" + >+ "----------\n" + >+ "3. ERROR in X.java (at line 1)\n" + >+ " public class X <T1 extends String, T2 extends Y {\n" + >+ " ^\n" + >+ "Y cannot be resolved to a type\n" + > "----------\n"; > > runComplianceParserTest( >@@ -1796,7 +1796,7 @@ > "----------\n" + > "1. ERROR in X.java (at line 2)\n" + > " Z <Y1, Y2 var;\n" + >- " ^^^^^^^\n" + >+ " ^^^^^^\n" + > "Syntax error on token(s), misplaced construct(s)\n" + > "----------\n" + > "2. ERROR in X.java (at line 2)\n" + >@@ -1839,8 +1839,8 @@ > "----------\n" + > "1. ERROR in X.java (at line 2)\n" + > " Z <Y1, for Y2> var;\n" + >- " ^^^^^^^^^^^^\n" + >- "Syntax error on tokens, delete these tokens\n" + >+ " ^^^^^^^^^^^^^^\n" + >+ "Syntax error on tokens, Type expected instead\n" + > "----------\n"; > String expected14ProblemLog = > expected13ProblemLog; >Index: src/org/eclipse/jdt/core/tests/compiler/parser/DietRecoveryTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/DietRecoveryTest.java,v >retrieving revision 1.61 >diff -u -r1.61 DietRecoveryTest.java >--- src/org/eclipse/jdt/core/tests/compiler/parser/DietRecoveryTest.java 29 Jun 2009 11:31:31 -0000 1.61 >+++ src/org/eclipse/jdt/core/tests/compiler/parser/DietRecoveryTest.java 14 Oct 2009 06:06:02 -0000 >@@ -2527,20 +2527,17 @@ > "}\n"; > > String expectedDietPlusBodyPlusStatementsRecoveryUnitToString; >- if (this.complianceLevel <= ClassFileConstants.JDK1_4) { >- expectedDietPlusBodyPlusStatementsRecoveryUnitToString = >+ >+ expectedDietPlusBodyPlusStatementsRecoveryUnitToString = > "public class WB2 {\n" + > " public WB2() {\n" + > " super();\n" + > " }\n" + > " public void foo() {\n" + >- " java.util.Locale.java.util.Vector $missing$;\n" + >+ " java.util.Locale $missing$;\n" + >+ " java.util.Locale java;\n" + > " }\n" + > "}\n"; >- } else { >- expectedDietPlusBodyPlusStatementsRecoveryUnitToString = >- expectedDietPlusBodyUnitToString; >- } > > String expectedFullUnitToString = expectedDietUnitToString; > >@@ -4649,14 +4646,12 @@ > " super();\n" + > " }\n" + > " int hello() {\n" + >- " fo = $missing$;\n" + > " }\n" + > " int world() {\n" + > " }\n" + > " void foo() {\n" + > " }\n" + > " }\n" + >- " ba = $missing$;\n" + > " }\n" + > "}\n"; > >@@ -4840,15 +4835,7 @@ > " public Hanoi(int numberOfDisks) {\n" + > " }\n" + > " private void solve(int depth, Post start, Post free, Post end) {\n" + >- " if ((depth == 1))\n" + >- " moveDisk(start, end);\n" + >- " else\n" + >- " if ((depth > 1))\n" + >- " {\n" + >- " sol = $missing$;\n" + >- " }\n" + >- " else\n" + >- " ;\n" + >+ " moveDisk(start, end);\n" + > " }\n" + > "}\n"; > >@@ -6000,7 +5987,6 @@ > " restricts breakpoint;\n" + > " given thread;\n" + > " any other;\n" + >- " specified = $missing$;\n" + > " }\n" + > " public void removeThreadFilter(IJavaThread thread) {\n" + > " removes the;\n" + >@@ -6009,7 +5995,6 @@ > " request as;\n" + > " does not;\n" + > " the removal;\n" + >- " thread = $missing$;\n" + > " }\n" + > " public IJavaThread[] getThreadFilters() {\n" + > " return the;\n" + >@@ -6388,10 +6373,6 @@ > String expectedCompletionDietUnitToString = > "public class X {\n" + > " static int B;\n" + >- " {\n" + >- " }\n" + >- " {\n" + >- " }\n" + > " public X() {\n" + > " }\n" + > " <clinit>() {\n" + >@@ -6519,10 +6500,7 @@ > String expectedCompletionDietUnitToString = > "public class X {\n" + > " int a;\n" + >- " {\n" + >- " }\n" + >- " {\n" + >- " }\n" + >+ " int b;\n" + > " public X() {\n" + > " }\n" + > "}\n"; >@@ -7621,16 +7599,6 @@ > " super();\n" + > " }\n" + > " void aMethod() {\n" + >- " m1();\n" + >- " {\n" + >- " int a;\n" + >- " int b;\n" + >- " }\n" + >- " m2();\n" + >- " {\n" + >- " int c;\n" + >- " int d;\n" + >- " }\n" + > " }\n" + > "}\n"; > } else { >@@ -7640,13 +7608,6 @@ > " super();\n" + > " }\n" + > " void aMethod() {\n" + >- " public static @m1() enum $missing$ {\n" + >- " public $missing$() {\n" + >- " super();\n" + >- " }\n" + >- " <clinit>() {\n" + >- " }\n" + >- " }\n" + > " }\n" + > "}\n"; > } >Index: src/org/eclipse/jdt/core/tests/compiler/parser/ParserTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/ParserTest.java,v >retrieving revision 1.25 >diff -u -r1.25 ParserTest.java >--- src/org/eclipse/jdt/core/tests/compiler/parser/ParserTest.java 3 Jul 2008 09:05:22 -0000 1.25 >+++ src/org/eclipse/jdt/core/tests/compiler/parser/ParserTest.java 14 Oct 2009 06:06:02 -0000 >@@ -71,16 +71,21 @@ > " }\n" + > "}\n" > }, >- "----------\n" + >- "1. ERROR in X.java (at line 3)\n" + >- " throws new X\n" + >- " ^^^^^^\n" + >- "Syntax error on token \"throws\", throw expected\n" + >- "----------\n" + >- "2. ERROR in X.java (at line 3)\n" + >- " throws new X\n" + >- " ^\n" + >- "Syntax error, unexpected end of method\n" + >+ "----------\n" + >+ "1. ERROR in X.java (at line 3)\n" + >+ " throws new X\n" + >+ " ^^^^^^\n" + >+ "Syntax error on token \"throws\", throw expected\n" + >+ "----------\n" + >+ "2. ERROR in X.java (at line 3)\n" + >+ " throws new X\n" + >+ " ^\n" + >+ "Syntax error, insert \"Dimensions\" to complete Expression\n" + >+ "----------\n" + >+ "3. ERROR in X.java (at line 3)\n" + >+ " throws new X\n" + >+ " ^\n" + >+ "Syntax error, insert \";\" to complete BlockStatements\n" + > "----------\n" > ); > } >@@ -130,16 +135,21 @@ > " }\n" + > "}\n" > }, >- "----------\n" + >- "1. ERROR in X.java (at line 3)\n" + >- " throws new X\n" + >- " ^^^^^^\n" + >- "Syntax error on token \"throws\", throw expected\n" + >- "----------\n" + >- "2. ERROR in X.java (at line 3)\n" + >- " throws new X\n" + >- " ^\n" + >- "Syntax error, unexpected end of initializer\n" + >+ "----------\n" + >+ "1. ERROR in X.java (at line 3)\n" + >+ " throws new X\n" + >+ " ^^^^^^\n" + >+ "Syntax error on token \"throws\", throw expected\n" + >+ "----------\n" + >+ "2. ERROR in X.java (at line 3)\n" + >+ " throws new X\n" + >+ " ^\n" + >+ "Syntax error, insert \"Dimensions\" to complete Expression\n" + >+ "----------\n" + >+ "3. ERROR in X.java (at line 3)\n" + >+ " throws new X\n" + >+ " ^\n" + >+ "Syntax error, insert \";\" to complete BlockStatements\n" + > "----------\n" > ); > } >@@ -238,11 +248,11 @@ > " public void bar(){}\n" + > "}\n" > }, >- "----------\n" + >- "1. ERROR in X.java (at line 2)\n" + >- " public void foo(X, Object o, String s) {\n" + >- " ^\n" + >- "Syntax error on token \",\", . expected\n" + >+ "----------\n" + >+ "1. ERROR in X.java (at line 2)\n" + >+ " public void foo(X, Object o, String s) {\n" + >+ " ^\n" + >+ "Syntax error, insert \"VariableDeclaratorId\" to complete FormalParameterList\n" + > "----------\n" > ); > } >Index: src/org/eclipse/jdt/core/tests/compiler/parser/SyntaxErrorTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/SyntaxErrorTest.java,v >retrieving revision 1.27 >diff -u -r1.27 SyntaxErrorTest.java >--- src/org/eclipse/jdt/core/tests/compiler/parser/SyntaxErrorTest.java 27 Jun 2008 16:04:46 -0000 1.27 >+++ src/org/eclipse/jdt/core/tests/compiler/parser/SyntaxErrorTest.java 14 Oct 2009 06:06:02 -0000 >@@ -166,17 +166,17 @@ > "1. ERROR in <parenthesis mismatch> (at line 3)\n" + > " [ arg1, \n" + > " ^\n" + >- "Syntax error on token \"[\", invalid Type\n" + >+ "Syntax error on token \"[\", invalid Name\n" + > "----------\n" + > "2. ERROR in <parenthesis mismatch> (at line 4)\n" + > " { arg2, ] \n" + > " ^\n" + >- "Syntax error on token \"{\", invalid Type\n" + >+ "Syntax error on token \"{\", invalid Name\n" + > "----------\n" + > "3. ERROR in <parenthesis mismatch> (at line 4)\n" + > " { arg2, ] \n" + > " ^\n" + >- "Syntax error on token \"]\", invalid Type\n" + >+ "Syntax error on token \"]\", invalid Name\n" + > "----------\n" + > "4. ERROR in <parenthesis mismatch> (at line 5)\n" + > " arg3, \n" + >@@ -273,7 +273,7 @@ > "1. ERROR in <test> (at line 3)\n"+ > " i; \n"+ > " ^\n"+ >- "Syntax error, insert \"AssignmentOperator Expression\" to complete Expression\n"+ >+ "Syntax error, insert \"VariableDeclarators\" to complete LocalVariableDeclaration\n" + > "----------\n"; > > String testName = "<test>"; >Index: src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java,v >retrieving revision 1.806 >diff -u -r1.806 GenericTypeTest.java >--- src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java 2 Oct 2009 19:45:16 -0000 1.806 >+++ src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java 14 Oct 2009 06:06:19 -0000 >@@ -1876,23 +1876,22 @@ > " A2 a2;\n" + > "}\n" > }, >- "----------\n" + >- "1. ERROR in test\\X1.java (at line 3)\n" + >- " public class X1<A1 extends X2<A2> {\n" + >- " ^^\n" + >- "A2 cannot be resolved to a type\n" + >- "----------\n" + >- "2. ERROR in test\\X1.java (at line 3)\n" + >- " public class X1<A1 extends X2<A2> {\n" + >- " ^\n" + >- "Syntax error, insert \">\" to complete ReferenceType1\n" + >- "----------\n" + >- "3. ERROR in test\\X1.java (at line 7)\n" + >- " class X2<A2 {\n" + >- " ^^\n" + >- "Syntax error on token \"A2\", > expected after this token\n" + >- "----------\n" >- ); >+ "----------\n" + >+ "1. ERROR in test\\X1.java (at line 3)\n" + >+ " public class X1<A1 extends X2<A2> {\n" + >+ " ^^\n" + >+ "A2 cannot be resolved to a type\n" + >+ "----------\n" + >+ "2. ERROR in test\\X1.java (at line 3)\n" + >+ " public class X1<A1 extends X2<A2> {\n" + >+ " ^\n" + >+ "Syntax error, insert \"AdditionalBoundList1\" to complete TypeParameter1\n" + >+ "----------\n" + >+ "3. ERROR in test\\X1.java (at line 7)\n" + >+ " class X2<A2 {\n" + >+ " ^^\n" + >+ "Syntax error, insert \">\" to complete TypeParameter1\n" + >+ "----------\n" ); > } > > // JSR14-V10[2.4]: Not terminated consecutive declaration >@@ -2317,26 +2316,26 @@ > "class X2<A extends X3<String> {}\n" + > "class X3<A {}\n" > }, >- "----------\n" + >- "1. ERROR in test\\X.java (at line 2)\n" + >- " public class X<A extends X1<X2<X3<String>>> {}\n" + >- " ^^^\n" + >- "Syntax error, insert \">\" to complete ReferenceType1\n" + >- "----------\n" + >- "2. ERROR in test\\X.java (at line 3)\n" + >- " class X1<A extends X2<X3<String>> {}\n" + >- " ^^\n" + >- "Syntax error, insert \">\" to complete ReferenceType1\n" + >- "----------\n" + >- "3. ERROR in test\\X.java (at line 4)\n" + >- " class X2<A extends X3<String> {}\n" + >- " ^\n" + >- "Syntax error, insert \">\" to complete ReferenceType1\n" + >- "----------\n" + >- "4. ERROR in test\\X.java (at line 5)\n" + >- " class X3<A {}\n" + >- " ^\n" + >- "Syntax error on token \"A\", > expected after this token\n" + >+ "----------\n" + >+ "1. ERROR in test\\X.java (at line 2)\n" + >+ " public class X<A extends X1<X2<X3<String>>> {}\n" + >+ " ^^^\n" + >+ "Syntax error, insert \"AdditionalBoundList1\" to complete TypeParameter1\n" + >+ "----------\n" + >+ "2. ERROR in test\\X.java (at line 3)\n" + >+ " class X1<A extends X2<X3<String>> {}\n" + >+ " ^^\n" + >+ "Syntax error, insert \"AdditionalBoundList1\" to complete TypeParameter1\n" + >+ "----------\n" + >+ "3. ERROR in test\\X.java (at line 4)\n" + >+ " class X2<A extends X3<String> {}\n" + >+ " ^\n" + >+ "Syntax error, insert \"AdditionalBoundList1\" to complete TypeParameter1\n" + >+ "----------\n" + >+ "4. ERROR in test\\X.java (at line 5)\n" + >+ " class X3<A {}\n" + >+ " ^\n" + >+ "Syntax error, insert \">\" to complete TypeParameter1\n" + > "----------\n" > ); > } >@@ -2404,16 +2403,16 @@ > "class X2<A extends X3<String>> {}\n" + > "class X3<A> {}\n" > }, >- "----------\n" + >- "1. ERROR in test\\X.java (at line 2)\n" + >- " public class X<A extends X1<X2<X3<String {}\n" + >- " ^^^^^^\n" + >- "Syntax error, insert \">>>\" to complete ReferenceType3\n" + >- "----------\n" + >- "2. ERROR in test\\X.java (at line 2)\n" + >- " public class X<A extends X1<X2<X3<String {}\n" + >- " ^^^^^^\n" + >- "Syntax error, insert \">\" to complete ReferenceType1\n" + >+ "----------\n" + >+ "1. ERROR in test\\X.java (at line 2)\n" + >+ " public class X<A extends X1<X2<X3<String {}\n" + >+ " ^^^^^^\n" + >+ "Syntax error, insert \">>>\" to complete ReferenceType3\n" + >+ "----------\n" + >+ "2. ERROR in test\\X.java (at line 2)\n" + >+ " public class X<A extends X1<X2<X3<String {}\n" + >+ " ^^^^^^\n" + >+ "Syntax error, insert \"AdditionalBoundList1\" to complete TypeParameter1\n" + > "----------\n"); > } > public void test0084() { >@@ -37168,16 +37167,26 @@ > "}" > }, > // compiler results >- "----------\n" + /* expected compiler log */ >- "1. ERROR in X.java (at line 2)\n" + >- " String[] foo = new <Zork>String[] {};\n" + >- " ^^^^^^^^^^^^^^^^^^\n" + >- "Syntax error on token(s), misplaced construct(s)\n" + >- "----------\n" + >- "2. ERROR in X.java (at line 2)\n" + >- " String[] foo = new <Zork>String[] {};\n" + >- " ^\n" + >- "Syntax error on token \">\", , expected\n" + >+ "----------\n" + >+ "1. ERROR in X.java (at line 2)\n" + >+ " String[] foo = new <Zork>String[] {};\n" + >+ " ^\n" + >+ "Syntax error, insert \"ClassType ( )\" to complete ClassInstanceCreationExpression\n" + >+ "----------\n" + >+ "2. ERROR in X.java (at line 2)\n" + >+ " String[] foo = new <Zork>String[] {};\n" + >+ " ^\n" + >+ "Syntax error, insert \";\" to complete ClassBodyDeclarations\n" + >+ "----------\n" + >+ "3. ERROR in X.java (at line 2)\n" + >+ " String[] foo = new <Zork>String[] {};\n" + >+ " ^\n" + >+ "Syntax error, insert \"Identifier (\" to complete MethodHeaderName\n" + >+ "----------\n" + >+ "4. ERROR in X.java (at line 2)\n" + >+ " String[] foo = new <Zork>String[] {};\n" + >+ " ^\n" + >+ "Syntax error, insert \")\" to complete MethodDeclaration\n" + > "----------\n", > // javac options > JavacTestOptions.JavacHasABug.JavacBugFixed_7 /* javac test options */); >Index: src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTestMixed.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTestMixed.java,v >retrieving revision 1.51 >diff -u -r1.51 JavadocTestMixed.java >--- src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTestMixed.java 27 Jun 2008 16:04:44 -0000 1.51 >+++ src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTestMixed.java 14 Oct 2009 06:06:19 -0000 >@@ -14,7 +14,6 @@ > > import junit.framework.Test; > >-import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; > import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; > > public class JavadocTestMixed extends JavadocTest { >@@ -779,49 +778,27 @@ > + " return \"\";\n" > + " }\n" > + "}\n" }, >- this.complianceLevel < ClassFileConstants.JDK1_5 >- ? "----------\n" >- + "1. ERROR in test\\X.java (at line 23)\n" >- + " }\n" >- + " ^\n" >- + "Syntax error, insert \"}\" to complete ClassBody\n" >- + "----------\n" >- + "2. ERROR in test\\X.java (at line 26)\n" >- + " * @param list Valid param tag\n" >- + " ^^^^\n" >- + "Javadoc: Parameter list is not declared\n" >- + "----------\n" >- + "3. ERROR in test\\X.java (at line 33)\n" >- + " public String foo(java.util.Vector ) {\n" >- + " ^^^^^^\n" >- + "Syntax error on token \"Vector\", VariableDeclaratorId expected after this token\n" >- + "----------\n" >- + "4. ERROR in test\\X.java (at line 36)\n" >- + " }\n" >- + " ^\n" >- + "Syntax error on token \"}\", delete this token\n" >- + "----------\n" >- : "----------\n" >- + "1. ERROR in test\\X.java (at line 23)\n" >- + " }\n" >- + " ^\n" >- + "Syntax error, insert \"}\" to complete ClassBody\n" >- + "----------\n" >- + "2. ERROR in test\\X.java (at line 26)\n" >- + " * @param list Valid param tag\n" >- + " ^^^^\n" >- + "Javadoc: Parameter list is not declared\n" >- + "----------\n" >- + "3. ERROR in test\\X.java (at line 33)\n" >- + " public String foo(java.util.Vector ) {\n" >- + " ^\n" >- + "Syntax error on token \".\", ... expected\n" >- + "----------\n" >- + "4. ERROR in test\\X.java (at line 36)\n" >- + " }\n" >- + " ^\n" >- + "Syntax error on token \"}\", delete this token\n" >- + "----------\n"); >+ "----------\n" + >+ "1. ERROR in test\\X.java (at line 23)\n" + >+ " }\n" + >+ " ^\n" + >+ "Syntax error, insert \"}\" to complete ClassBody\n" + >+ "----------\n" + >+ "2. ERROR in test\\X.java (at line 26)\n" + >+ " * @param list Valid param tag\n" + >+ " ^^^^\n" + >+ "Javadoc: Parameter list is not declared\n" + >+ "----------\n" + >+ "3. ERROR in test\\X.java (at line 33)\n" + >+ " public String foo(java.util.Vector ) {\n" + >+ " ^^^^^^\n" + >+ "Syntax error, insert \"VariableDeclaratorId\" to complete FormalParameterList\n" + >+ "----------\n" + >+ "4. ERROR in test\\X.java (at line 36)\n" + >+ " }\n" + >+ " ^\n" + >+ "Syntax error on token \"}\", delete this token\n" + >+ "----------\n"); > } > > public void test040() { >Index: src/org/eclipse/jdt/core/tests/compiler/regression/CompilerInvocationTests.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/CompilerInvocationTests.java,v >retrieving revision 1.30 >diff -u -r1.30 CompilerInvocationTests.java >--- src/org/eclipse/jdt/core/tests/compiler/regression/CompilerInvocationTests.java 6 Oct 2009 13:18:00 -0000 1.30 >+++ src/org/eclipse/jdt/core/tests/compiler/regression/CompilerInvocationTests.java 14 Oct 2009 06:06:04 -0000 >@@ -568,7 +568,9 @@ > expectedProblemAttributes.put("InvalidUsageOfAnnotations", new ProblemAttributes(CategorizedProblem.CAT_SYNTAX)); > expectedProblemAttributes.put("InvalidUsageOfEnumDeclarations", new ProblemAttributes(CategorizedProblem.CAT_SYNTAX)); > expectedProblemAttributes.put("InvalidUsageOfForeachStatements", new ProblemAttributes(CategorizedProblem.CAT_SYNTAX)); >+ expectedProblemAttributes.put("InvalidUsageOfReceiverAnnotations", new ProblemAttributes(CategorizedProblem.CAT_SYNTAX)); > expectedProblemAttributes.put("InvalidUsageOfStaticImports", new ProblemAttributes(CategorizedProblem.CAT_SYNTAX)); >+ expectedProblemAttributes.put("InvalidUsageOfTypeAnnotations", new ProblemAttributes(CategorizedProblem.CAT_SYNTAX)); > expectedProblemAttributes.put("InvalidUsageOfTypeArguments", new ProblemAttributes(CategorizedProblem.CAT_SYNTAX)); > expectedProblemAttributes.put("InvalidUsageOfTypeParameters", new ProblemAttributes(CategorizedProblem.CAT_SYNTAX)); > expectedProblemAttributes.put("InvalidUsageOfTypeParametersForAnnotationDeclaration", new ProblemAttributes(CategorizedProblem.CAT_SYNTAX)); >@@ -661,6 +663,7 @@ > expectedProblemAttributes.put("MethodRequiresBody", new ProblemAttributes(CategorizedProblem.CAT_MEMBER)); > expectedProblemAttributes.put("MethodReturnsVoid", new ProblemAttributes(CategorizedProblem.CAT_MEMBER)); > expectedProblemAttributes.put("MethodVarargsArgumentNeedCast", new ProblemAttributes(CategorizedProblem.CAT_POTENTIAL_PROGRAMMING_PROBLEM)); >+ expectedProblemAttributes.put("misplacedTypeAnnotations", new ProblemAttributes(CategorizedProblem.CAT_SYNTAX)); > expectedProblemAttributes.put("MissingArgumentsForParameterizedMemberType", new ProblemAttributes(CategorizedProblem.CAT_TYPE)); > expectedProblemAttributes.put("MissingEnclosingInstance", new ProblemAttributes(CategorizedProblem.CAT_TYPE)); > expectedProblemAttributes.put("MissingEnclosingInstanceForConstructorCall", new ProblemAttributes(CategorizedProblem.CAT_TYPE)); >@@ -1200,7 +1203,9 @@ > expectedProblemAttributes.put("InvalidUsageOfAnnotations", SKIP); > expectedProblemAttributes.put("InvalidUsageOfEnumDeclarations", SKIP); > expectedProblemAttributes.put("InvalidUsageOfForeachStatements", SKIP); >+ expectedProblemAttributes.put("InvalidUsageOfReceiverAnnotations", SKIP); > expectedProblemAttributes.put("InvalidUsageOfStaticImports", SKIP); >+ expectedProblemAttributes.put("InvalidUsageOfTypeAnnotations", SKIP); > expectedProblemAttributes.put("InvalidUsageOfTypeArguments", SKIP); > expectedProblemAttributes.put("InvalidUsageOfTypeParameters", SKIP); > expectedProblemAttributes.put("InvalidUsageOfTypeParametersForAnnotationDeclaration", SKIP); >@@ -1293,6 +1298,7 @@ > expectedProblemAttributes.put("MethodRequiresBody", SKIP); > expectedProblemAttributes.put("MethodReturnsVoid", SKIP); > expectedProblemAttributes.put("MethodVarargsArgumentNeedCast", new ProblemAttributes(JavaCore.COMPILER_PB_VARARGS_ARGUMENT_NEED_CAST)); >+ expectedProblemAttributes.put("misplacedTypeAnnotations", SKIP); > expectedProblemAttributes.put("MissingArgumentsForParameterizedMemberType", SKIP); > expectedProblemAttributes.put("MissingEnclosingInstance", SKIP); > expectedProblemAttributes.put("MissingEnclosingInstanceForConstructorCall", SKIP); >#P org.eclipse.jdt.core.tests.model >Index: src/org/eclipse/jdt/core/tests/dom/ASTConverterTestAST3_2.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTestAST3_2.java,v >retrieving revision 1.166 >diff -u -r1.166 ASTConverterTestAST3_2.java >--- src/org/eclipse/jdt/core/tests/dom/ASTConverterTestAST3_2.java 17 Aug 2009 17:45:43 -0000 1.166 >+++ src/org/eclipse/jdt/core/tests/dom/ASTConverterTestAST3_2.java 14 Oct 2009 06:06:27 -0000 >@@ -7622,7 +7622,7 @@ > true); > assertEquals("Not a compilation unit", ASTNode.COMPILATION_UNIT, node.getNodeType()); > CompilationUnit unit = (CompilationUnit) node; >- assertProblemsSize(unit, 1, "Syntax error, insert \"AssignmentOperator Expression\" to complete Expression"); >+ assertProblemsSize(unit, 1, "Syntax error, insert \"VariableDeclarators\" to complete LocalVariableDeclaration"); > node = getASTNode(unit, 0, 0, 0); > assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType()); > assertTrue("Not recovered", isRecovered(node)); >@@ -7731,9 +7731,8 @@ > CompilationUnit unit = (CompilationUnit) node; > assertProblemsSize( > unit, >- 2, >- "Object.equ cannot be resolved to a variable\n" + >- "Syntax error, insert \"AssignmentOperator Expression\" to complete Expression"); >+ 1, >+ "Syntax error, insert \"VariableDeclarators\" to complete LocalVariableDeclaration"); > node = getASTNode(unit, 0, 0); > assertEquals("Not a field declaration statement", ASTNode.INITIALIZER, node.getNodeType()); > Initializer initializer = (Initializer) node; >@@ -7999,75 +7998,83 @@ > "}"); > > assertASTResult( >- "===== AST =====\n" + >- "import java.nio.ByteBuffer;\n" + >- "import java.nio.CharBuffer;\n" + >- "import java.nio.charset.Charset;\n" + >- "import java.nio.charset.CharsetDecoder;\n" + >- "import java.nio.charset.CharsetEncoder;\n" + >- "import java.nio.charset.CoderResult;\n" + >- "public class TestCharset extends Charset {\n" + >- " public CharsetDecoder newDecoder(){\n" + >- " return new CharsetDecoder(this,2.0,2.0){\n" + >- " void CharsetDecoder(){\n" + >- " }\n" + >- " protected CoderResult decodeLoop( ByteBuffer in, CharBuffer out){\n" + >- " return null;\n" + >- " }\n" + >- " }\n" + >- ";\n" + >- " ;\n" + >- " }\n" + >- " public CharsetEncoder newEncoder(){\n" + >- " return null;\n" + >- " }\n" + >- "}\n" + >- "\n" + >- "===== Details =====\n" + >- "===== Problems =====\n" + >- "1. ERROR in /Converter/src/TestCharset.java (at line 1)\n" + >- " import java.nio.ByteBuffer;\n" + >- " ^^^^^^^^\n" + >- "The import java.nio cannot be resolved\n" + >- "2. ERROR in /Converter/src/TestCharset.java (at line 2)\n" + >- " import java.nio.CharBuffer;\n" + >- " ^^^^^^^^\n" + >- "The import java.nio cannot be resolved\n" + >- "3. ERROR in /Converter/src/TestCharset.java (at line 3)\n" + >- " import java.nio.charset.Charset;\n" + >- " ^^^^^^^^\n" + >- "The import java.nio cannot be resolved\n" + >- "4. ERROR in /Converter/src/TestCharset.java (at line 4)\n" + >- " import java.nio.charset.CharsetDecoder;\n" + >- " ^^^^^^^^\n" + >- "The import java.nio cannot be resolved\n" + >- "5. ERROR in /Converter/src/TestCharset.java (at line 5)\n" + >- " import java.nio.charset.CharsetEncoder;\n" + >- " ^^^^^^^^\n" + >- "The import java.nio cannot be resolved\n" + >- "6. ERROR in /Converter/src/TestCharset.java (at line 6)\n" + >- " import java.nio.charset.CoderResult;\n" + >- " ^^^^^^^^\n" + >- "The import java.nio cannot be resolved\n" + >- "7. ERROR in /Converter/src/TestCharset.java (at line 7)\n" + >- " public class TestCharset extends Charset {\n" + >- " ^^^^^^^\n" + >- "Charset cannot be resolved to a type\n" + >- "8. ERROR in /Converter/src/TestCharset.java (at line 8)\n" + >- " public CharsetDecoder newDecoder() {\n" + >- " ^^^^^^^^^^^^^^\n" + >- "CharsetDecoder cannot be resolved to a type\n" + >- "9. ERROR in /Converter/src/TestCharset.java (at line 9)\n" + >- " return new CharsetDecoder(this, 2.0, 2.0) {\n" + >- " ^^^^^^^^^^^^^^\n" + >- "CharsetDecoder cannot be resolved to a type\n" + >- "10. ERROR in /Converter/src/TestCharset.java (at line 10)\n" + >- " CharsetDecoder(CharSet\n" + >- " ^^^^^^^^^^^^^^^^^^^^^^\n" + >- "Syntax error on token(s), misplaced construct(s)\n" + >- "11. ERROR in /Converter/src/TestCharset.java (at line 17)\n" + >- " public CharsetEncoder newEncoder() {\n" + >- " ^^^^^^^^^^^^^^\n" + >+ "===== AST =====\n" + >+ "import java.nio.ByteBuffer;\n" + >+ "import java.nio.CharBuffer;\n" + >+ "import java.nio.charset.Charset;\n" + >+ "import java.nio.charset.CharsetDecoder;\n" + >+ "import java.nio.charset.CharsetEncoder;\n" + >+ "import java.nio.charset.CoderResult;\n" + >+ "public class TestCharset extends Charset {\n" + >+ " public CharsetDecoder newDecoder(){\n" + >+ " return new CharsetDecoder(this,2.0,2.0){\n" + >+ " void CharsetDecoder(){\n" + >+ " }\n" + >+ " protected CoderResult decodeLoop( ByteBuffer in, CharBuffer out){\n" + >+ " return null;\n" + >+ " }\n" + >+ " }\n" + >+ ";\n" + >+ " ;\n" + >+ " }\n" + >+ " public CharsetEncoder newEncoder(){\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" + >+ "\n" + >+ "===== Details =====\n" + >+ "===== Problems =====\n" + >+ "1. ERROR in /Converter/src/TestCharset.java (at line 1)\n" + >+ " import java.nio.ByteBuffer;\n" + >+ " ^^^^^^^^\n" + >+ "The import java.nio cannot be resolved\n" + >+ "2. ERROR in /Converter/src/TestCharset.java (at line 2)\n" + >+ " import java.nio.CharBuffer;\n" + >+ " ^^^^^^^^\n" + >+ "The import java.nio cannot be resolved\n" + >+ "3. ERROR in /Converter/src/TestCharset.java (at line 3)\n" + >+ " import java.nio.charset.Charset;\n" + >+ " ^^^^^^^^\n" + >+ "The import java.nio cannot be resolved\n" + >+ "4. ERROR in /Converter/src/TestCharset.java (at line 4)\n" + >+ " import java.nio.charset.CharsetDecoder;\n" + >+ " ^^^^^^^^\n" + >+ "The import java.nio cannot be resolved\n" + >+ "5. ERROR in /Converter/src/TestCharset.java (at line 5)\n" + >+ " import java.nio.charset.CharsetEncoder;\n" + >+ " ^^^^^^^^\n" + >+ "The import java.nio cannot be resolved\n" + >+ "6. ERROR in /Converter/src/TestCharset.java (at line 6)\n" + >+ " import java.nio.charset.CoderResult;\n" + >+ " ^^^^^^^^\n" + >+ "The import java.nio cannot be resolved\n" + >+ "7. ERROR in /Converter/src/TestCharset.java (at line 7)\n" + >+ " public class TestCharset extends Charset {\n" + >+ " ^^^^^^^\n" + >+ "Charset cannot be resolved to a type\n" + >+ "8. ERROR in /Converter/src/TestCharset.java (at line 8)\n" + >+ " public CharsetDecoder newDecoder() {\n" + >+ " ^^^^^^^^^^^^^^\n" + >+ "CharsetDecoder cannot be resolved to a type\n" + >+ "9. ERROR in /Converter/src/TestCharset.java (at line 9)\n" + >+ " return new CharsetDecoder(this, 2.0, 2.0) {\n" + >+ " ^^^^^^^^^^^^^^\n" + >+ "CharsetDecoder cannot be resolved to a type\n" + >+ "10. ERROR in /Converter/src/TestCharset.java (at line 10)\n" + >+ " CharsetDecoder(CharSet\n" + >+ " ^^^^^^^\n" + >+ "Syntax error, insert \"VariableDeclaratorId\" to complete FormalParameter\n" + >+ "11. ERROR in /Converter/src/TestCharset.java (at line 10)\n" + >+ " CharsetDecoder(CharSet\n" + >+ " ^^^^^^^\n" + >+ "Syntax error, insert \")\" to complete ConstructorDeclaration\n" + >+ "12. ERROR in /Converter/src/TestCharset.java (at line 10)\n" + >+ " CharsetDecoder(CharSet\n" + >+ " ^^^^^^^\n" + >+ "Syntax error, insert \";\" to complete ClassBodyDeclarations\n" + >+ "13. ERROR in /Converter/src/TestCharset.java (at line 17)\n" + >+ " public CharsetEncoder newEncoder() {\n" + >+ " ^^^^^^^^^^^^^^\n" + > "CharsetEncoder cannot be resolved to a type\n", > result); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 287648
:
145655
|
145779
|
145880
|
146186
|
146401
|
146602
|
148041
|
148087
|
149501
|
149970
|
150486
|
187248
|
217341
|
217581
|
217668
|
217685
|
217786