1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
package com.metaweb.lessen.tokenizers;
public class StringTokenizer extends TokenizerBase {
final protected String _text;
final protected int _start;
final protected int _end;
protected int _next;
public StringTokenizer(String text, int start, int end) {
_text = text;
_start = start;
_end = end;
_next = _start;
next();
}
public StringTokenizer(String text) {
this(text, 0, text.length());
}
@Override
protected boolean hasMoreChar() {
return _next < _end;
}
@Override
protected void advance() {
advance(1, false);
}
@Override
protected void advance(int by, boolean flush) {
_next += by;
if (flush) {
flush(_next);
}
}
@Override
protected void flush(int upToIndex) {
// nothing to do in this case
}
@Override
protected char getCharRelative(int offset) {
return _text.charAt(_next + offset);
}
@Override
protected char getCurrentChar() {
return _text.charAt(_next);
}
@Override
protected int getCurrentOffset() {
return _next;
}
@Override
protected String getText(int from, int to) {
return _text.substring(from, to);
}
@Override
protected boolean hasMoreChar(int offset) {
return _next + offset < _end;
}
}
|