compatibility among different JDT versions: translate generated constants.
diff --git a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/DOMAdaptation.java b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/DOMAdaptation.java
index 47f29ef..2001aed 100644
--- a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/DOMAdaptation.java
+++ b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/DOMAdaptation.java
@@ -10,12 +10,18 @@
*******************************************************************************/
package org.eclipse.objectteams.internal.jdt.nullity;
+import java.lang.reflect.Field;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
import org.eclipse.jdt.core.compiler.InvalidInputException;
import org.eclipse.jdt.core.dom.BodyDeclaration;
import org.eclipse.jdt.core.dom.IExtendedModifier;
import org.eclipse.jdt.core.dom.MarkerAnnotation;
import org.eclipse.jdt.core.dom.Modifier;
-import org.eclipse.jdt.internal.compiler.parser.TerminalTokens;
+import org.eclipse.jdt.internal.compiler.ast.Annotation;
+import org.eclipse.jdt.internal.compiler.batch.Main;
import base org.eclipse.jdt.core.dom.ASTConverter;
@@ -27,55 +33,101 @@
@SuppressWarnings({ "decapsulation", "restriction" })
public team class DOMAdaptation {
+ int [] translation = new int[1024];
+
+ @SuppressWarnings("nls")
+ public void initVersion() {
+ if (this.translation == null) {
+ this.translation = new int[1024];
+ ResourceBundle bundle = Main.ResourceBundleFactory.getBundle(Locale.getDefault());
+ try {
+ String otVersion = bundle.getString("otdtc.version");
+ if (otVersion.contains("2.0.0"))
+ initTranslation(TerminalTokens_OT200.class);
+ else if (otVersion.contains("2.0.1"))
+ initTranslation(TerminalTokens_OT201.class);
+ else if (otVersion.contains("2.1.0 M1"))
+ initTranslation(TerminalTokens_OT21M1.class);
+ } catch (MissingResourceException mre) {
+ String version = bundle.getString("compiler.version");
+ if (version.contains("3.7.0"))
+ initTranslation(TerminalTokens_R370.class);
+ else if (version.contains("3.7.1"))
+ initTranslation(TerminalTokens_B74R37x.class);
+ else if (version.contains("3.8.0 M1"))
+ initTranslation(TerminalTokens_R38M1.class);
+ }
+ }
+ }
+ void initTranslation(Class<?> terminalTokensClass) {
+ for (Field field :terminalTokensClass.getDeclaredFields()) {
+ try {
+ int thisValue = field.getInt(null);
+ int ot21m1Value = TerminalTokens_OT21M1.class.getField(field.getName()).getInt(null);
+ this.translation[thisValue] = ot21m1Value;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
protected class Converter playedBy ASTConverter {
+
void setModifiers(BodyDeclaration bodyDeclaration, org.eclipse.jdt.internal.compiler.ast.Annotation[] annotations, int modifiersEnd)
<- replace void setModifiers(BodyDeclaration bodyDeclaration, org.eclipse.jdt.internal.compiler.ast.Annotation[] annotations, int modifiersEnd);
- @SuppressWarnings({ "inferredcallout", "basecall" })
+ @SuppressWarnings({ "basecall", "inferredcallout" })
callin void setModifiers(BodyDeclaration bodyDeclaration, org.eclipse.jdt.internal.compiler.ast.Annotation[] annotations, int modifiersEnd) {
this.scanner.tokenizeWhiteSpace = false;
try {
int token;
int indexInAnnotations = 0;
+//{Modification:
+ initVersion();
+ while ((token = translation[this.scanner.getNextToken()]) != TerminalTokens_OT21M1.TokenNameEOF) {
+/* orig:
while ((token = this.scanner.getNextToken()) != TerminalTokens.TokenNameEOF) {
+ */
IExtendedModifier modifier = null;
+// :giro
switchToken:
+// SH}
switch(token) {
- case TerminalTokens.TokenNameabstract:
+ case TerminalTokens_OT21M1.TokenNameabstract:
modifier = createModifier(Modifier.ModifierKeyword.ABSTRACT_KEYWORD);
break;
- case TerminalTokens.TokenNamepublic:
+ case TerminalTokens_OT21M1.TokenNamepublic:
modifier = createModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD);
break;
- case TerminalTokens.TokenNamestatic:
+ case TerminalTokens_OT21M1.TokenNamestatic:
modifier = createModifier(Modifier.ModifierKeyword.STATIC_KEYWORD);
break;
- case TerminalTokens.TokenNameprotected:
+ case TerminalTokens_OT21M1.TokenNameprotected:
modifier = createModifier(Modifier.ModifierKeyword.PROTECTED_KEYWORD);
break;
- case TerminalTokens.TokenNameprivate:
+ case TerminalTokens_OT21M1.TokenNameprivate:
modifier = createModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD);
break;
- case TerminalTokens.TokenNamefinal:
+ case TerminalTokens_OT21M1.TokenNamefinal:
modifier = createModifier(Modifier.ModifierKeyword.FINAL_KEYWORD);
break;
- case TerminalTokens.TokenNamenative:
+ case TerminalTokens_OT21M1.TokenNamenative:
modifier = createModifier(Modifier.ModifierKeyword.NATIVE_KEYWORD);
break;
- case TerminalTokens.TokenNamesynchronized:
+ case TerminalTokens_OT21M1.TokenNamesynchronized:
modifier = createModifier(Modifier.ModifierKeyword.SYNCHRONIZED_KEYWORD);
break;
- case TerminalTokens.TokenNametransient:
+ case TerminalTokens_OT21M1.TokenNametransient:
modifier = createModifier(Modifier.ModifierKeyword.TRANSIENT_KEYWORD);
break;
- case TerminalTokens.TokenNamevolatile:
+ case TerminalTokens_OT21M1.TokenNamevolatile:
modifier = createModifier(Modifier.ModifierKeyword.VOLATILE_KEYWORD);
break;
- case TerminalTokens.TokenNamestrictfp:
+ case TerminalTokens_OT21M1.TokenNamestrictfp:
modifier = createModifier(Modifier.ModifierKeyword.STRICTFP_KEYWORD);
break;
- case TerminalTokens.TokenNameAT :
+ case TerminalTokens_OT21M1.TokenNameAT :
// we have an annotation
if (annotations != null && indexInAnnotations < annotations.length) {
//{Modification: skip synthetic annotations
@@ -93,9 +145,9 @@
this.scanner.resetTo(annotation.declarationSourceEnd + 1, modifiersEnd);
}
break;
- case TerminalTokens.TokenNameCOMMENT_BLOCK :
- case TerminalTokens.TokenNameCOMMENT_LINE :
- case TerminalTokens.TokenNameCOMMENT_JAVADOC :
+ case TerminalTokens_OT21M1.TokenNameCOMMENT_BLOCK :
+ case TerminalTokens_OT21M1.TokenNameCOMMENT_LINE :
+ case TerminalTokens_OT21M1.TokenNameCOMMENT_JAVADOC :
break;
default :
// there is some syntax errors in source code
diff --git a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_B74R37x.java b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_B74R37x.java
new file mode 100755
index 0000000..b2f2b65
--- /dev/null
+++ b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_B74R37x.java
@@ -0,0 +1,147 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.objectteams.internal.jdt.nullity;
+
+/**
+ * IMPORTANT NOTE: These constants are dedicated to the internal Scanner implementation.
+ * It is mirrored in org.eclipse.jdt.core.compiler public package where it is API.
+ * The mirror implementation is using the backward compatible ITerminalSymbols constant
+ * definitions (stable with 2.0), whereas the internal implementation uses TerminalTokens
+ * which constant values reflect the latest parser generation state.
+ */
+/**
+ * Maps each terminal symbol in the java-grammar into a unique integer.
+ * This integer is used to represent the terminal when computing a parsing action.
+ *
+ * Disclaimer : These constant values are generated automatically using a Java
+ * grammar, therefore their actual values are subject to change if new keywords
+ * were added to the language (for instance, 'assert' is a keyword in 1.4).
+ */
+// captured constants as of v_B74_R37x
+public interface TerminalTokens_B74R37x {
+
+ // special tokens not part of grammar - not autogenerated
+ int TokenNameWHITESPACE = 1000,
+ TokenNameCOMMENT_LINE = 1001,
+ TokenNameCOMMENT_BLOCK = 1002,
+ TokenNameCOMMENT_JAVADOC = 1003;
+
+ int TokenNameIdentifier = 26,
+ TokenNameabstract = 56,
+ TokenNameassert = 74,
+ TokenNameboolean = 32,
+ TokenNamebreak = 75,
+ TokenNamebyte = 33,
+ TokenNamecase = 102,
+ TokenNamecatch = 100,
+ TokenNamechar = 34,
+ TokenNameclass = 72,
+ TokenNamecontinue = 76,
+ TokenNameconst = 108,
+ TokenNamedefault = 97,
+ TokenNamedo = 77,
+ TokenNamedouble = 35,
+ TokenNameelse = 104,
+ TokenNameenum = 98,
+ TokenNameextends = 99,
+ TokenNamefalse = 44,
+ TokenNamefinal = 57,
+ TokenNamefinally = 103,
+ TokenNamefloat = 36,
+ TokenNamefor = 78,
+ TokenNamegoto = 109,
+ TokenNameif = 79,
+ TokenNameimplements = 106,
+ TokenNameimport = 101,
+ TokenNameinstanceof = 13,
+ TokenNameint = 37,
+ TokenNameinterface = 95,
+ TokenNamelong = 38,
+ TokenNamenative = 58,
+ TokenNamenew = 43,
+ TokenNamenull = 45,
+ TokenNamepackage = 96,
+ TokenNameprivate = 59,
+ TokenNameprotected = 60,
+ TokenNamepublic = 61,
+ TokenNamereturn = 80,
+ TokenNameshort = 39,
+ TokenNamestatic = 54,
+ TokenNamestrictfp = 62,
+ TokenNamesuper = 41,
+ TokenNameswitch = 81,
+ TokenNamesynchronized = 55,
+ TokenNamethis = 42,
+ TokenNamethrow = 82,
+ TokenNamethrows = 105,
+ TokenNametransient = 63,
+ TokenNametrue = 46,
+ TokenNametry = 83,
+ TokenNamevoid = 40,
+ TokenNamevolatile = 64,
+ TokenNamewhile = 73,
+ TokenNameIntegerLiteral = 47,
+ TokenNameLongLiteral = 48,
+ TokenNameFloatingPointLiteral = 49,
+ TokenNameDoubleLiteral = 50,
+ TokenNameCharacterLiteral = 51,
+ TokenNameStringLiteral = 52,
+ TokenNamePLUS_PLUS = 8,
+ TokenNameMINUS_MINUS = 9,
+ TokenNameEQUAL_EQUAL = 18,
+ TokenNameLESS_EQUAL = 14,
+ TokenNameGREATER_EQUAL = 15,
+ TokenNameNOT_EQUAL = 19,
+ TokenNameLEFT_SHIFT = 17,
+ TokenNameRIGHT_SHIFT = 10,
+ TokenNameUNSIGNED_RIGHT_SHIFT = 12,
+ TokenNamePLUS_EQUAL = 84,
+ TokenNameMINUS_EQUAL = 85,
+ TokenNameMULTIPLY_EQUAL = 86,
+ TokenNameDIVIDE_EQUAL = 87,
+ TokenNameAND_EQUAL = 88,
+ TokenNameOR_EQUAL = 89,
+ TokenNameXOR_EQUAL = 90,
+ TokenNameREMAINDER_EQUAL = 91,
+ TokenNameLEFT_SHIFT_EQUAL = 92,
+ TokenNameRIGHT_SHIFT_EQUAL = 93,
+ TokenNameUNSIGNED_RIGHT_SHIFT_EQUAL = 94,
+ TokenNameOR_OR = 25,
+ TokenNameAND_AND = 24,
+ TokenNamePLUS = 1,
+ TokenNameMINUS = 2,
+ TokenNameNOT = 66,
+ TokenNameREMAINDER = 5,
+ TokenNameXOR = 21,
+ TokenNameAND = 20,
+ TokenNameMULTIPLY = 4,
+ TokenNameOR = 22,
+ TokenNameTWIDDLE = 67,
+ TokenNameDIVIDE = 6,
+ TokenNameGREATER = 11,
+ TokenNameLESS = 7,
+ TokenNameLPAREN = 29,
+ TokenNameRPAREN = 28,
+ TokenNameLBRACE = 68,
+ TokenNameRBRACE = 31,
+ TokenNameLBRACKET = 16,
+ TokenNameRBRACKET = 70,
+ TokenNameSEMICOLON = 27,
+ TokenNameQUESTION = 23,
+ TokenNameCOLON = 65,
+ TokenNameCOMMA = 30,
+ TokenNameDOT = 3,
+ TokenNameEQUAL = 71,
+ TokenNameAT = 53,
+ TokenNameELLIPSIS = 107,
+ TokenNameEOF = 69,
+ TokenNameERROR = 110;
+}
diff --git a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_OT200.java b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_OT200.java
new file mode 100644
index 0000000..22d648a
--- /dev/null
+++ b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_OT200.java
@@ -0,0 +1,157 @@
+package org.eclipse.objectteams.internal.jdt.nullity;
+
+/**
+ * IMPORTANT NOTE: These constants are dedicated to the internal Scanner implementation.
+ * It is mirrored in org.eclipse.jdt.core.compiler public package where it is API.
+ * The mirror implementation is using the backward compatible ITerminalSymbols constant
+ * definitions (stable with 2.0), whereas the internal implementation uses TerminalTokens
+ * which constant values reflect the latest parser generation state.
+ */
+/**
+ * Maps each terminal symbol in the java-grammar into a unique integer.
+ * This integer is used to represent the terminal when computing a parsing action.
+ *
+ * Disclaimer : These constant values are generated automatically using a Java
+ * grammar, therefore their actual values are subject to change if new keywords
+ * were added to the language (for instance, 'assert' is a keyword in 1.4).
+ */
+public interface TerminalTokens_OT200 {
+
+ // special tokens not part of grammar - not autogenerated
+ int
+ TokenNameWHITESPACE = 1000,
+ TokenNameCOMMENT_LINE = 1001,
+ TokenNameCOMMENT_BLOCK = 1002,
+ TokenNameCOMMENT_JAVADOC = 1003;
+
+ int
+ TokenNameIdentifier = 22,
+ TokenNameabstract = 60,
+ TokenNameassert = 94,
+ TokenNameboolean = 33,
+ TokenNamebreak = 95,
+ TokenNamebyte = 34,
+ TokenNamecase = 113,
+ TokenNamecatch = 115,
+ TokenNamechar = 35,
+ TokenNameclass = 77,
+ TokenNamecontinue = 96,
+ TokenNameconst = 127,
+ TokenNamedefault = 108,
+ TokenNamedo = 97,
+ TokenNamedouble = 36,
+ TokenNameelse = 116,
+ TokenNameenum = 105,
+ TokenNameextends = 107,
+ TokenNamefalse = 47,
+ TokenNamefinal = 61,
+ TokenNamefinally = 117,
+ TokenNamefloat = 37,
+ TokenNamefor = 98,
+ TokenNamegoto = 128,
+ TokenNameif = 99,
+ TokenNameimplements = 125,
+ TokenNameimport = 111,
+ TokenNameinstanceof = 14,
+ TokenNameint = 38,
+ TokenNameinterface = 80,
+ TokenNamelong = 39,
+ TokenNamenative = 62,
+ TokenNamenew = 44,
+ TokenNamenull = 48,
+ TokenNamepackage = 112,
+ TokenNameprivate = 63,
+ TokenNameprotected = 64,
+ TokenNamepublic = 65,
+ TokenNamereturn = 100,
+ TokenNameshort = 40,
+ TokenNamestatic = 57,
+ TokenNamestrictfp = 66,
+ TokenNamesuper = 42,
+ TokenNameswitch = 101,
+ TokenNamesynchronized = 58,
+ TokenNamethis = 43,
+ TokenNamethrow = 102,
+ TokenNamethrows = 118,
+ TokenNametransient = 67,
+ TokenNametrue = 49,
+ TokenNametry = 103,
+ TokenNamevoid = 41,
+ TokenNamevolatile = 68,
+ TokenNamewhile = 81,
+ TokenNameas = 82,
+ TokenNamebase = 31,
+ TokenNamecallin = 69,
+ TokenNameplayedBy = 126,
+ TokenNameprecedence = 114,
+ TokenNamereadonly = 70,
+ TokenNameteam = 59,
+ TokenNametsuper = 45,
+ TokenNamewhen = 109,
+ TokenNamewith = 110,
+ TokenNamewithin = 104,
+ TokenNamereplace = 121,
+ TokenNameafter = 119,
+ TokenNamebefore = 122,
+ TokenNameget = 123,
+ TokenNameset = 124,
+ TokenNameIntegerLiteral = 50,
+ TokenNameLongLiteral = 51,
+ TokenNameFloatingPointLiteral = 52,
+ TokenNameDoubleLiteral = 53,
+ TokenNameCharacterLiteral = 54,
+ TokenNameStringLiteral = 55,
+ TokenNamePLUS_PLUS = 9,
+ TokenNameMINUS_MINUS = 10,
+ TokenNameEQUAL_EQUAL = 18,
+ TokenNameLESS_EQUAL = 15,
+ TokenNameGREATER_EQUAL = 16,
+ TokenNameNOT_EQUAL = 19,
+ TokenNameLEFT_SHIFT = 17,
+ TokenNameRIGHT_SHIFT = 11,
+ TokenNameUNSIGNED_RIGHT_SHIFT = 13,
+ TokenNamePLUS_EQUAL = 83,
+ TokenNameMINUS_EQUAL = 84,
+ TokenNameMULTIPLY_EQUAL = 85,
+ TokenNameDIVIDE_EQUAL = 86,
+ TokenNameAND_EQUAL = 87,
+ TokenNameOR_EQUAL = 88,
+ TokenNameXOR_EQUAL = 89,
+ TokenNameREMAINDER_EQUAL = 90,
+ TokenNameLEFT_SHIFT_EQUAL = 91,
+ TokenNameRIGHT_SHIFT_EQUAL = 92,
+ TokenNameUNSIGNED_RIGHT_SHIFT_EQUAL = 93,
+ TokenNameOR_OR = 26,
+ TokenNameAND_AND = 25,
+ TokenNamePLUS = 2,
+ TokenNameMINUS = 3,
+ TokenNameNOT = 71,
+ TokenNameREMAINDER = 6,
+ TokenNameXOR = 21,
+ TokenNameAND = 20,
+ TokenNameMULTIPLY = 4,
+ TokenNameOR = 23,
+ TokenNameTWIDDLE = 72,
+ TokenNameDIVIDE = 7,
+ TokenNameGREATER = 12,
+ TokenNameLESS = 5,
+ TokenNameLPAREN = 27,
+ TokenNameRPAREN = 29,
+ TokenNameLBRACE = 74,
+ TokenNameRBRACE = 32,
+ TokenNameLBRACKET = 8,
+ TokenNameRBRACKET = 76,
+ TokenNameSEMICOLON = 28,
+ TokenNameQUESTION = 24,
+ TokenNameCOLON = 56,
+ TokenNameCOMMA = 30,
+ TokenNameDOT = 1,
+ TokenNameEQUAL = 78,
+ TokenNameAT = 46,
+ TokenNameELLIPSIS = 120,
+ TokenNameBINDIN = 79,
+ TokenNameBINDOUT = 75,
+ TokenNameCALLOUT_OVERRIDE = 106,
+ TokenNameEOF = 73,
+ TokenNameERROR = 129;
+}
diff --git a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_OT201.java b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_OT201.java
new file mode 100644
index 0000000..3727905
--- /dev/null
+++ b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_OT201.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Technical University Berlin - extended API and implementation
+ *******************************************************************************/
+package org.eclipse.objectteams.internal.jdt.nullity;
+
+/**
+ * IMPORTANT NOTE: These constants are dedicated to the internal Scanner implementation.
+ * It is mirrored in org.eclipse.jdt.core.compiler public package where it is API.
+ * The mirror implementation is using the backward compatible ITerminalSymbols constant
+ * definitions (stable with 2.0), whereas the internal implementation uses TerminalTokens
+ * which constant values reflect the latest parser generation state.
+ */
+/**
+ * Maps each terminal symbol in the java-grammar into a unique integer.
+ * This integer is used to represent the terminal when computing a parsing action.
+ *
+ * Disclaimer : These constant values are generated automatically using a Java
+ * grammar, therefore their actual values are subject to change if new keywords
+ * were added to the language (for instance, 'assert' is a keyword in 1.4).
+ */
+public interface TerminalTokens_OT201 {
+
+ // special tokens not part of grammar - not autogenerated
+ int
+ TokenNameWHITESPACE = 1000,
+ TokenNameCOMMENT_LINE = 1001,
+ TokenNameCOMMENT_BLOCK = 1002,
+ TokenNameCOMMENT_JAVADOC = 1003;
+
+ int
+ TokenNameIdentifier = 22,
+ TokenNameabstract = 60,
+ TokenNameassert = 94,
+ TokenNameboolean = 33,
+ TokenNamebreak = 95,
+ TokenNamebyte = 34,
+ TokenNamecase = 114,
+ TokenNamecatch = 111,
+ TokenNamechar = 35,
+ TokenNameclass = 78,
+ TokenNamecontinue = 96,
+ TokenNameconst = 127,
+ TokenNamedefault = 108,
+ TokenNamedo = 97,
+ TokenNamedouble = 36,
+ TokenNameelse = 117,
+ TokenNameenum = 105,
+ TokenNameextends = 107,
+ TokenNamefalse = 47,
+ TokenNamefinal = 61,
+ TokenNamefinally = 115,
+ TokenNamefloat = 37,
+ TokenNamefor = 98,
+ TokenNamegoto = 128,
+ TokenNameif = 99,
+ TokenNameimplements = 125,
+ TokenNameimport = 112,
+ TokenNameinstanceof = 14,
+ TokenNameint = 38,
+ TokenNameinterface = 80,
+ TokenNamelong = 39,
+ TokenNamenative = 62,
+ TokenNamenew = 44,
+ TokenNamenull = 48,
+ TokenNamepackage = 113,
+ TokenNameprivate = 63,
+ TokenNameprotected = 64,
+ TokenNamepublic = 65,
+ TokenNamereturn = 100,
+ TokenNameshort = 40,
+ TokenNamestatic = 57,
+ TokenNamestrictfp = 66,
+ TokenNamesuper = 42,
+ TokenNameswitch = 101,
+ TokenNamesynchronized = 58,
+ TokenNamethis = 43,
+ TokenNamethrow = 102,
+ TokenNamethrows = 118,
+ TokenNametransient = 67,
+ TokenNametrue = 49,
+ TokenNametry = 103,
+ TokenNamevoid = 41,
+ TokenNamevolatile = 68,
+ TokenNamewhile = 81,
+ TokenNameas = 82,
+ TokenNamebase = 31,
+ TokenNamecallin = 69,
+ TokenNameplayedBy = 126,
+ TokenNameprecedence = 116,
+ TokenNamereadonly = 70,
+ TokenNameteam = 59,
+ TokenNametsuper = 46,
+ TokenNamewhen = 109,
+ TokenNamewith = 110,
+ TokenNamewithin = 104,
+ TokenNamereplace = 120,
+ TokenNameafter = 119,
+ TokenNamebefore = 121,
+ TokenNameget = 122,
+ TokenNameset = 123,
+ TokenNameIntegerLiteral = 50,
+ TokenNameLongLiteral = 51,
+ TokenNameFloatingPointLiteral = 52,
+ TokenNameDoubleLiteral = 53,
+ TokenNameCharacterLiteral = 54,
+ TokenNameStringLiteral = 55,
+ TokenNamePLUS_PLUS = 9,
+ TokenNameMINUS_MINUS = 10,
+ TokenNameEQUAL_EQUAL = 18,
+ TokenNameLESS_EQUAL = 15,
+ TokenNameGREATER_EQUAL = 16,
+ TokenNameNOT_EQUAL = 19,
+ TokenNameLEFT_SHIFT = 17,
+ TokenNameRIGHT_SHIFT = 12,
+ TokenNameUNSIGNED_RIGHT_SHIFT = 13,
+ TokenNamePLUS_EQUAL = 83,
+ TokenNameMINUS_EQUAL = 84,
+ TokenNameMULTIPLY_EQUAL = 85,
+ TokenNameDIVIDE_EQUAL = 86,
+ TokenNameAND_EQUAL = 87,
+ TokenNameOR_EQUAL = 88,
+ TokenNameXOR_EQUAL = 89,
+ TokenNameREMAINDER_EQUAL = 90,
+ TokenNameLEFT_SHIFT_EQUAL = 91,
+ TokenNameRIGHT_SHIFT_EQUAL = 92,
+ TokenNameUNSIGNED_RIGHT_SHIFT_EQUAL = 93,
+ TokenNameOR_OR = 27,
+ TokenNameAND_AND = 25,
+ TokenNamePLUS = 2,
+ TokenNameMINUS = 3,
+ TokenNameNOT = 71,
+ TokenNameREMAINDER = 6,
+ TokenNameXOR = 21,
+ TokenNameAND = 20,
+ TokenNameMULTIPLY = 5,
+ TokenNameOR = 23,
+ TokenNameTWIDDLE = 72,
+ TokenNameDIVIDE = 7,
+ TokenNameGREATER = 11,
+ TokenNameLESS = 4,
+ TokenNameLPAREN = 26,
+ TokenNameRPAREN = 28,
+ TokenNameLBRACE = 74,
+ TokenNameRBRACE = 32,
+ TokenNameLBRACKET = 8,
+ TokenNameRBRACKET = 76,
+ TokenNameSEMICOLON = 29,
+ TokenNameQUESTION = 24,
+ TokenNameCOLON = 56,
+ TokenNameCOMMA = 30,
+ TokenNameDOT = 1,
+ TokenNameEQUAL = 77,
+ TokenNameAT = 45,
+ TokenNameELLIPSIS = 124,
+ TokenNameBINDIN = 79,
+ TokenNameBINDOUT = 75,
+ TokenNameCALLOUT_OVERRIDE = 106,
+ TokenNameEOF = 73,
+ TokenNameERROR = 129;
+}
diff --git a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_OT21M1.java b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_OT21M1.java
new file mode 100644
index 0000000..48939c5
--- /dev/null
+++ b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_OT21M1.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Technical University Berlin - extended API and implementation
+ *******************************************************************************/
+package org.eclipse.objectteams.internal.jdt.nullity;
+
+/**
+ * IMPORTANT NOTE: These constants are dedicated to the internal Scanner implementation.
+ * It is mirrored in org.eclipse.jdt.core.compiler public package where it is API.
+ * The mirror implementation is using the backward compatible ITerminalSymbols constant
+ * definitions (stable with 2.0), whereas the internal implementation uses TerminalTokens
+ * which constant values reflect the latest parser generation state.
+ */
+/**
+ * Maps each terminal symbol in the java-grammar into a unique integer.
+ * This integer is used to represent the terminal when computing a parsing action.
+ *
+ * Disclaimer : These constant values are generated automatically using a Java
+ * grammar, therefore their actual values are subject to change if new keywords
+ * were added to the language (for instance, 'assert' is a keyword in 1.4).
+ */
+public interface TerminalTokens_OT21M1 {
+
+ // special tokens not part of grammar - not autogenerated
+ int
+ TokenNameWHITESPACE = 1000,
+ TokenNameCOMMENT_LINE = 1001,
+ TokenNameCOMMENT_BLOCK = 1002,
+ TokenNameCOMMENT_JAVADOC = 1003;
+
+ int
+ TokenNameIdentifier = 22,
+ TokenNameabstract = 60,
+ TokenNameassert = 94,
+ TokenNameboolean = 33,
+ TokenNamebreak = 95,
+ TokenNamebyte = 34,
+ TokenNamecase = 114,
+ TokenNamecatch = 111,
+ TokenNamechar = 35,
+ TokenNameclass = 78,
+ TokenNamecontinue = 96,
+ TokenNameconst = 127,
+ TokenNamedefault = 108,
+ TokenNamedo = 97,
+ TokenNamedouble = 36,
+ TokenNameelse = 117,
+ TokenNameenum = 105,
+ TokenNameextends = 107,
+ TokenNamefalse = 47,
+ TokenNamefinal = 61,
+ TokenNamefinally = 115,
+ TokenNamefloat = 37,
+ TokenNamefor = 98,
+ TokenNamegoto = 128,
+ TokenNameif = 99,
+ TokenNameimplements = 125,
+ TokenNameimport = 112,
+ TokenNameinstanceof = 14,
+ TokenNameint = 38,
+ TokenNameinterface = 80,
+ TokenNamelong = 39,
+ TokenNamenative = 62,
+ TokenNamenew = 44,
+ TokenNamenull = 48,
+ TokenNamepackage = 113,
+ TokenNameprivate = 63,
+ TokenNameprotected = 64,
+ TokenNamepublic = 65,
+ TokenNamereturn = 100,
+ TokenNameshort = 40,
+ TokenNamestatic = 57,
+ TokenNamestrictfp = 66,
+ TokenNamesuper = 42,
+ TokenNameswitch = 101,
+ TokenNamesynchronized = 58,
+ TokenNamethis = 43,
+ TokenNamethrow = 102,
+ TokenNamethrows = 118,
+ TokenNametransient = 67,
+ TokenNametrue = 49,
+ TokenNametry = 103,
+ TokenNamevoid = 41,
+ TokenNamevolatile = 68,
+ TokenNamewhile = 81,
+ TokenNameas = 82,
+ TokenNamebase = 31,
+ TokenNamecallin = 69,
+ TokenNameplayedBy = 126,
+ TokenNameprecedence = 116,
+ TokenNamereadonly = 70,
+ TokenNameteam = 59,
+ TokenNametsuper = 46,
+ TokenNamewhen = 109,
+ TokenNamewith = 110,
+ TokenNamewithin = 104,
+ TokenNamereplace = 120,
+ TokenNameafter = 119,
+ TokenNamebefore = 121,
+ TokenNameget = 122,
+ TokenNameset = 123,
+ TokenNameIntegerLiteral = 50,
+ TokenNameLongLiteral = 51,
+ TokenNameFloatingPointLiteral = 52,
+ TokenNameDoubleLiteral = 53,
+ TokenNameCharacterLiteral = 54,
+ TokenNameStringLiteral = 55,
+ TokenNamePLUS_PLUS = 9,
+ TokenNameMINUS_MINUS = 10,
+ TokenNameEQUAL_EQUAL = 18,
+ TokenNameLESS_EQUAL = 15,
+ TokenNameGREATER_EQUAL = 16,
+ TokenNameNOT_EQUAL = 19,
+ TokenNameLEFT_SHIFT = 17,
+ TokenNameRIGHT_SHIFT = 12,
+ TokenNameUNSIGNED_RIGHT_SHIFT = 13,
+ TokenNamePLUS_EQUAL = 83,
+ TokenNameMINUS_EQUAL = 84,
+ TokenNameMULTIPLY_EQUAL = 85,
+ TokenNameDIVIDE_EQUAL = 86,
+ TokenNameAND_EQUAL = 87,
+ TokenNameOR_EQUAL = 88,
+ TokenNameXOR_EQUAL = 89,
+ TokenNameREMAINDER_EQUAL = 90,
+ TokenNameLEFT_SHIFT_EQUAL = 91,
+ TokenNameRIGHT_SHIFT_EQUAL = 92,
+ TokenNameUNSIGNED_RIGHT_SHIFT_EQUAL = 93,
+ TokenNameOR_OR = 27,
+ TokenNameAND_AND = 25,
+ TokenNamePLUS = 2,
+ TokenNameMINUS = 3,
+ TokenNameNOT = 71,
+ TokenNameREMAINDER = 6,
+ TokenNameXOR = 21,
+ TokenNameAND = 20,
+ TokenNameMULTIPLY = 5,
+ TokenNameOR = 23,
+ TokenNameTWIDDLE = 72,
+ TokenNameDIVIDE = 7,
+ TokenNameGREATER = 11,
+ TokenNameLESS = 4,
+ TokenNameLPAREN = 26,
+ TokenNameRPAREN = 28,
+ TokenNameLBRACE = 74,
+ TokenNameRBRACE = 32,
+ TokenNameLBRACKET = 8,
+ TokenNameRBRACKET = 76,
+ TokenNameSEMICOLON = 29,
+ TokenNameQUESTION = 24,
+ TokenNameCOLON = 56,
+ TokenNameCOMMA = 30,
+ TokenNameDOT = 1,
+ TokenNameEQUAL = 77,
+ TokenNameAT = 45,
+ TokenNameELLIPSIS = 124,
+ TokenNameBINDIN = 79,
+ TokenNameBINDOUT = 75,
+ TokenNameCALLOUT_OVERRIDE = 106,
+ TokenNameEOF = 73,
+ TokenNameERROR = 129;
+}
diff --git a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_R370.java b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_R370.java
new file mode 100644
index 0000000..a16a02b
--- /dev/null
+++ b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_R370.java
@@ -0,0 +1,136 @@
+package org.eclipse.objectteams.internal.jdt.nullity;
+
+/**
+ * IMPORTANT NOTE: These constants are dedicated to the internal Scanner implementation.
+ * It is mirrored in org.eclipse.jdt.core.compiler public package where it is API.
+ * The mirror implementation is using the backward compatible ITerminalSymbols constant
+ * definitions (stable with 2.0), whereas the internal implementation uses TerminalTokens
+ * which constant values reflect the latest parser generation state.
+ */
+/**
+ * Maps each terminal symbol in the java-grammar into a unique integer.
+ * This integer is used to represent the terminal when computing a parsing action.
+ *
+ * Disclaimer : These constant values are generated automatically using a Java
+ * grammar, therefore their actual values are subject to change if new keywords
+ * were added to the language (for instance, 'assert' is a keyword in 1.4).
+ */
+public interface TerminalTokens_R370 {
+
+ // special tokens not part of grammar - not autogenerated
+ int TokenNameWHITESPACE = 1000,
+ TokenNameCOMMENT_LINE = 1001,
+ TokenNameCOMMENT_BLOCK = 1002,
+ TokenNameCOMMENT_JAVADOC = 1003;
+
+ int TokenNameIdentifier = 26,
+ TokenNameabstract = 56,
+ TokenNameassert = 74,
+ TokenNameboolean = 32,
+ TokenNamebreak = 75,
+ TokenNamebyte = 33,
+ TokenNamecase = 101,
+ TokenNamecatch = 102,
+ TokenNamechar = 34,
+ TokenNameclass = 72,
+ TokenNamecontinue = 76,
+ TokenNameconst = 108,
+ TokenNamedefault = 97,
+ TokenNamedo = 77,
+ TokenNamedouble = 35,
+ TokenNameelse = 103,
+ TokenNameenum = 98,
+ TokenNameextends = 99,
+ TokenNamefalse = 44,
+ TokenNamefinal = 57,
+ TokenNamefinally = 104,
+ TokenNamefloat = 36,
+ TokenNamefor = 78,
+ TokenNamegoto = 109,
+ TokenNameif = 79,
+ TokenNameimplements = 107,
+ TokenNameimport = 100,
+ TokenNameinstanceof = 12,
+ TokenNameint = 37,
+ TokenNameinterface = 95,
+ TokenNamelong = 38,
+ TokenNamenative = 58,
+ TokenNamenew = 43,
+ TokenNamenull = 45,
+ TokenNamepackage = 96,
+ TokenNameprivate = 59,
+ TokenNameprotected = 60,
+ TokenNamepublic = 61,
+ TokenNamereturn = 80,
+ TokenNameshort = 39,
+ TokenNamestatic = 54,
+ TokenNamestrictfp = 62,
+ TokenNamesuper = 41,
+ TokenNameswitch = 81,
+ TokenNamesynchronized = 55,
+ TokenNamethis = 42,
+ TokenNamethrow = 82,
+ TokenNamethrows = 105,
+ TokenNametransient = 63,
+ TokenNametrue = 46,
+ TokenNametry = 83,
+ TokenNamevoid = 40,
+ TokenNamevolatile = 64,
+ TokenNamewhile = 73,
+ TokenNameIntegerLiteral = 47,
+ TokenNameLongLiteral = 48,
+ TokenNameFloatingPointLiteral = 49,
+ TokenNameDoubleLiteral = 50,
+ TokenNameCharacterLiteral = 51,
+ TokenNameStringLiteral = 52,
+ TokenNamePLUS_PLUS = 8,
+ TokenNameMINUS_MINUS = 9,
+ TokenNameEQUAL_EQUAL = 18,
+ TokenNameLESS_EQUAL = 15,
+ TokenNameGREATER_EQUAL = 16,
+ TokenNameNOT_EQUAL = 19,
+ TokenNameLEFT_SHIFT = 17,
+ TokenNameRIGHT_SHIFT = 10,
+ TokenNameUNSIGNED_RIGHT_SHIFT = 11,
+ TokenNamePLUS_EQUAL = 84,
+ TokenNameMINUS_EQUAL = 85,
+ TokenNameMULTIPLY_EQUAL = 86,
+ TokenNameDIVIDE_EQUAL = 87,
+ TokenNameAND_EQUAL = 88,
+ TokenNameOR_EQUAL = 89,
+ TokenNameXOR_EQUAL = 90,
+ TokenNameREMAINDER_EQUAL = 91,
+ TokenNameLEFT_SHIFT_EQUAL = 92,
+ TokenNameRIGHT_SHIFT_EQUAL = 93,
+ TokenNameUNSIGNED_RIGHT_SHIFT_EQUAL = 94,
+ TokenNameOR_OR = 25,
+ TokenNameAND_AND = 24,
+ TokenNamePLUS = 1,
+ TokenNameMINUS = 2,
+ TokenNameNOT = 66,
+ TokenNameREMAINDER = 5,
+ TokenNameXOR = 21,
+ TokenNameAND = 20,
+ TokenNameMULTIPLY = 4,
+ TokenNameOR = 22,
+ TokenNameTWIDDLE = 67,
+ TokenNameDIVIDE = 6,
+ TokenNameGREATER = 13,
+ TokenNameLESS = 7,
+ TokenNameLPAREN = 28,
+ TokenNameRPAREN = 29,
+ TokenNameLBRACE = 68,
+ TokenNameRBRACE = 31,
+ TokenNameLBRACKET = 14,
+ TokenNameRBRACKET = 70,
+ TokenNameSEMICOLON = 27,
+ TokenNameQUESTION = 23,
+ TokenNameCOLON = 65,
+ TokenNameCOMMA = 30,
+ TokenNameDOT = 3,
+ TokenNameEQUAL = 71,
+ TokenNameAT = 53,
+ TokenNameELLIPSIS = 106,
+ TokenNameEOF = 69,
+ TokenNameERROR = 110;
+}
diff --git a/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_R38M1.java b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_R38M1.java
new file mode 100755
index 0000000..390dabb
--- /dev/null
+++ b/contrib/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/TerminalTokens_R38M1.java
@@ -0,0 +1,146 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.objectteams.internal.jdt.nullity;
+
+/**
+ * IMPORTANT NOTE: These constants are dedicated to the internal Scanner implementation.
+ * It is mirrored in org.eclipse.jdt.core.compiler public package where it is API.
+ * The mirror implementation is using the backward compatible ITerminalSymbols constant
+ * definitions (stable with 2.0), whereas the internal implementation uses TerminalTokens
+ * which constant values reflect the latest parser generation state.
+ */
+/**
+ * Maps each terminal symbol in the java-grammar into a unique integer.
+ * This integer is used to represent the terminal when computing a parsing action.
+ *
+ * Disclaimer : These constant values are generated automatically using a Java
+ * grammar, therefore their actual values are subject to change if new keywords
+ * were added to the language (for instance, 'assert' is a keyword in 1.4).
+ */
+public interface TerminalTokens_R38M1 {
+
+ // special tokens not part of grammar - not autogenerated
+ int TokenNameWHITESPACE = 1000,
+ TokenNameCOMMENT_LINE = 1001,
+ TokenNameCOMMENT_BLOCK = 1002,
+ TokenNameCOMMENT_JAVADOC = 1003;
+
+ int TokenNameIdentifier = 26,
+ TokenNameabstract = 56,
+ TokenNameassert = 74,
+ TokenNameboolean = 32,
+ TokenNamebreak = 75,
+ TokenNamebyte = 33,
+ TokenNamecase = 102,
+ TokenNamecatch = 100,
+ TokenNamechar = 34,
+ TokenNameclass = 72,
+ TokenNamecontinue = 76,
+ TokenNameconst = 108,
+ TokenNamedefault = 97,
+ TokenNamedo = 77,
+ TokenNamedouble = 35,
+ TokenNameelse = 104,
+ TokenNameenum = 98,
+ TokenNameextends = 99,
+ TokenNamefalse = 44,
+ TokenNamefinal = 57,
+ TokenNamefinally = 103,
+ TokenNamefloat = 36,
+ TokenNamefor = 78,
+ TokenNamegoto = 109,
+ TokenNameif = 79,
+ TokenNameimplements = 106,
+ TokenNameimport = 101,
+ TokenNameinstanceof = 13,
+ TokenNameint = 37,
+ TokenNameinterface = 95,
+ TokenNamelong = 38,
+ TokenNamenative = 58,
+ TokenNamenew = 43,
+ TokenNamenull = 45,
+ TokenNamepackage = 96,
+ TokenNameprivate = 59,
+ TokenNameprotected = 60,
+ TokenNamepublic = 61,
+ TokenNamereturn = 80,
+ TokenNameshort = 39,
+ TokenNamestatic = 54,
+ TokenNamestrictfp = 62,
+ TokenNamesuper = 41,
+ TokenNameswitch = 81,
+ TokenNamesynchronized = 55,
+ TokenNamethis = 42,
+ TokenNamethrow = 82,
+ TokenNamethrows = 105,
+ TokenNametransient = 63,
+ TokenNametrue = 46,
+ TokenNametry = 83,
+ TokenNamevoid = 40,
+ TokenNamevolatile = 64,
+ TokenNamewhile = 73,
+ TokenNameIntegerLiteral = 47,
+ TokenNameLongLiteral = 48,
+ TokenNameFloatingPointLiteral = 49,
+ TokenNameDoubleLiteral = 50,
+ TokenNameCharacterLiteral = 51,
+ TokenNameStringLiteral = 52,
+ TokenNamePLUS_PLUS = 8,
+ TokenNameMINUS_MINUS = 9,
+ TokenNameEQUAL_EQUAL = 18,
+ TokenNameLESS_EQUAL = 14,
+ TokenNameGREATER_EQUAL = 15,
+ TokenNameNOT_EQUAL = 19,
+ TokenNameLEFT_SHIFT = 17,
+ TokenNameRIGHT_SHIFT = 10,
+ TokenNameUNSIGNED_RIGHT_SHIFT = 12,
+ TokenNamePLUS_EQUAL = 84,
+ TokenNameMINUS_EQUAL = 85,
+ TokenNameMULTIPLY_EQUAL = 86,
+ TokenNameDIVIDE_EQUAL = 87,
+ TokenNameAND_EQUAL = 88,
+ TokenNameOR_EQUAL = 89,
+ TokenNameXOR_EQUAL = 90,
+ TokenNameREMAINDER_EQUAL = 91,
+ TokenNameLEFT_SHIFT_EQUAL = 92,
+ TokenNameRIGHT_SHIFT_EQUAL = 93,
+ TokenNameUNSIGNED_RIGHT_SHIFT_EQUAL = 94,
+ TokenNameOR_OR = 25,
+ TokenNameAND_AND = 24,
+ TokenNamePLUS = 1,
+ TokenNameMINUS = 2,
+ TokenNameNOT = 66,
+ TokenNameREMAINDER = 5,
+ TokenNameXOR = 21,
+ TokenNameAND = 20,
+ TokenNameMULTIPLY = 4,
+ TokenNameOR = 22,
+ TokenNameTWIDDLE = 67,
+ TokenNameDIVIDE = 6,
+ TokenNameGREATER = 11,
+ TokenNameLESS = 7,
+ TokenNameLPAREN = 29,
+ TokenNameRPAREN = 28,
+ TokenNameLBRACE = 68,
+ TokenNameRBRACE = 31,
+ TokenNameLBRACKET = 16,
+ TokenNameRBRACKET = 70,
+ TokenNameSEMICOLON = 27,
+ TokenNameQUESTION = 23,
+ TokenNameCOLON = 65,
+ TokenNameCOMMA = 30,
+ TokenNameDOT = 3,
+ TokenNameEQUAL = 71,
+ TokenNameAT = 53,
+ TokenNameELLIPSIS = 107,
+ TokenNameEOF = 69,
+ TokenNameERROR = 110;
+}