X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/MementoTokenizer.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/MementoTokenizer.java index 92cc164..e1e9ac5 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/MementoTokenizer.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/MementoTokenizer.java @@ -14,99 +14,128 @@ import net.sourceforge.phpdt.core.compiler.CharOperation; 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)); } } - + }