import net.sourceforge.phpdt.internal.core.JavaElement;
public class MementoTokenizer {
- private static final String COUNT = Character.toString(JavaElement.JEM_COUNT);
- private static final String JAVAPROJECT = Character.toString(JavaElement.JEM_JAVAPROJECT);
- private static final String PACKAGEFRAGMENTROOT = Character.toString(JavaElement.JEM_PACKAGEFRAGMENTROOT);
- private static final String PACKAGEFRAGMENT = Character.toString(JavaElement.JEM_PACKAGEFRAGMENT);
- private static final String FIELD = Character.toString(JavaElement.JEM_FIELD);
- private static final String METHOD = Character.toString(JavaElement.JEM_METHOD);
- private static final String INITIALIZER = Character.toString(JavaElement.JEM_INITIALIZER);
- private static final String COMPILATIONUNIT = Character.toString(JavaElement.JEM_COMPILATIONUNIT);
-// private static final String CLASSFILE = Character.toString(JavaElement.JEM_CLASSFILE);
+ private static final String COUNT = Character
+ .toString(JavaElement.JEM_COUNT);
+
+ private static final String JAVAPROJECT = Character
+ .toString(JavaElement.JEM_JAVAPROJECT);
+
+ private static final String PACKAGEFRAGMENTROOT = Character
+ .toString(JavaElement.JEM_PACKAGEFRAGMENTROOT);
+
+ private static final String PACKAGEFRAGMENT = Character
+ .toString(JavaElement.JEM_PACKAGEFRAGMENT);
+
+ private static final String FIELD = Character
+ .toString(JavaElement.JEM_FIELD);
+
+ private static final String METHOD = Character
+ .toString(JavaElement.JEM_METHOD);
+
+ private static final String INITIALIZER = Character
+ .toString(JavaElement.JEM_INITIALIZER);
+
+ private static final String COMPILATIONUNIT = Character
+ .toString(JavaElement.JEM_COMPILATIONUNIT);
+
+ // private static final String CLASSFILE =
+ // Character.toString(JavaElement.JEM_CLASSFILE);
private static final String TYPE = Character.toString(JavaElement.JEM_TYPE);
- private static final String PACKAGEDECLARATION = Character.toString(JavaElement.JEM_PACKAGEDECLARATION);
- private static final String IMPORTDECLARATION = Character.toString(JavaElement.JEM_IMPORTDECLARATION);
- private static final String LOCALVARIABLE = Character.toString(JavaElement.JEM_LOCALVARIABLE);
+
+ private static final String PACKAGEDECLARATION = Character
+ .toString(JavaElement.JEM_PACKAGEDECLARATION);
+
+ private static final String IMPORTDECLARATION = Character
+ .toString(JavaElement.JEM_IMPORTDECLARATION);
+
+ private static final String LOCALVARIABLE = Character
+ .toString(JavaElement.JEM_LOCALVARIABLE);
private final char[] memento;
+
private final int length;
+
private int index = 0;
-
+
public MementoTokenizer(String memento) {
this.memento = memento.toCharArray();
this.length = this.memento.length;
}
-
+
public boolean hasMoreTokens() {
return this.index < this.length;
}
-
+
public String nextToken() {
int start = this.index;
StringBuffer buffer = null;
switch (this.memento[this.index++]) {
+ case JavaElement.JEM_ESCAPE:
+ buffer = new StringBuffer();
+ buffer.append(this.memento[this.index]);
+ start = ++this.index;
+ break;
+ case JavaElement.JEM_COUNT:
+ return COUNT;
+ case JavaElement.JEM_JAVAPROJECT:
+ return JAVAPROJECT;
+ case JavaElement.JEM_PACKAGEFRAGMENTROOT:
+ return PACKAGEFRAGMENTROOT;
+ case JavaElement.JEM_PACKAGEFRAGMENT:
+ return PACKAGEFRAGMENT;
+ case JavaElement.JEM_FIELD:
+ return FIELD;
+ case JavaElement.JEM_METHOD:
+ return METHOD;
+ case JavaElement.JEM_INITIALIZER:
+ return INITIALIZER;
+ case JavaElement.JEM_COMPILATIONUNIT:
+ return COMPILATIONUNIT;
+ // case JavaElement.JEM_CLASSFILE:
+ // return CLASSFILE;
+ case JavaElement.JEM_TYPE:
+ return TYPE;
+ case JavaElement.JEM_PACKAGEDECLARATION:
+ return PACKAGEDECLARATION;
+ case JavaElement.JEM_IMPORTDECLARATION:
+ return IMPORTDECLARATION;
+ case JavaElement.JEM_LOCALVARIABLE:
+ return LOCALVARIABLE;
+ }
+ loop: while (this.index < this.length) {
+ switch (this.memento[this.index]) {
case JavaElement.JEM_ESCAPE:
- buffer = new StringBuffer();
- buffer.append(this.memento[this.index]);
+ if (buffer == null)
+ buffer = new StringBuffer();
+ buffer.append(CharOperation.subarray(this.memento, start,
+ this.index));
start = ++this.index;
break;
case JavaElement.JEM_COUNT:
- return COUNT;
case JavaElement.JEM_JAVAPROJECT:
- return JAVAPROJECT;
case JavaElement.JEM_PACKAGEFRAGMENTROOT:
- return PACKAGEFRAGMENTROOT;
case JavaElement.JEM_PACKAGEFRAGMENT:
- return PACKAGEFRAGMENT;
case JavaElement.JEM_FIELD:
- return FIELD;
case JavaElement.JEM_METHOD:
- return METHOD;
case JavaElement.JEM_INITIALIZER:
- return INITIALIZER;
case JavaElement.JEM_COMPILATIONUNIT:
- return COMPILATIONUNIT;
-// case JavaElement.JEM_CLASSFILE:
-// return CLASSFILE;
+ // case JavaElement.JEM_CLASSFILE:
case JavaElement.JEM_TYPE:
- return TYPE;
case JavaElement.JEM_PACKAGEDECLARATION:
- return PACKAGEDECLARATION;
case JavaElement.JEM_IMPORTDECLARATION:
- return IMPORTDECLARATION;
case JavaElement.JEM_LOCALVARIABLE:
- return LOCALVARIABLE;
- }
- loop: while (this.index < this.length) {
- switch (this.memento[this.index]) {
- case JavaElement.JEM_ESCAPE:
- if (buffer == null) buffer = new StringBuffer();
- buffer.append(CharOperation.subarray(this.memento, start, this.index));
- start = ++this.index;
- break;
- case JavaElement.JEM_COUNT:
- case JavaElement.JEM_JAVAPROJECT:
- case JavaElement.JEM_PACKAGEFRAGMENTROOT:
- case JavaElement.JEM_PACKAGEFRAGMENT:
- case JavaElement.JEM_FIELD:
- case JavaElement.JEM_METHOD:
- case JavaElement.JEM_INITIALIZER:
- case JavaElement.JEM_COMPILATIONUNIT:
-// case JavaElement.JEM_CLASSFILE:
- case JavaElement.JEM_TYPE:
- case JavaElement.JEM_PACKAGEDECLARATION:
- case JavaElement.JEM_IMPORTDECLARATION:
- case JavaElement.JEM_LOCALVARIABLE:
- break loop;
+ break loop;
}
this.index++;
}
if (buffer != null) {
- buffer.append(CharOperation.subarray(this.memento, start, this.index));
+ buffer.append(CharOperation.subarray(this.memento, start,
+ this.index));
return buffer.toString();
} else {
- return new String(CharOperation.subarray(this.memento, start, this.index));
+ return new String(CharOperation.subarray(this.memento, start,
+ this.index));
}
}
-
+
}