package de.fuberlin.projecta.lexer.io;
public class StringCharStream implements ICharStream {
private String data;
private int offset;
public StringCharStream(String data) {
this.data = data;
this.offset = 0;
}
public String getNextChars(int numberOfChars) {
final int count = Math.min(numberOfChars, data.length());
return data.substring(0, count);
}
public int consumeChars(int numberOfChars) {
final int count = Math.min(numberOfChars, data.length());
data = data.substring(count, data.length());
this.offset += count;
return count;
}
public void resetOffset() {
this.offset = -1;
}
public boolean isEmpty() {
return data.length() == 0;
}
public String getData() {
return data;
}
public int getOffset() {
return offset;
}
}