package tools;

import sockets.*;

public class Tokenizer extends PullString {
    public Pull in;

    private String split;
    private String buf = ""; // can we use a StringBuffer?

    public Tokenizer(String split) {
	this.split = split;
    }

    public String pullString() {
	if (buf == null)
	    return null;

	String token;
	int i;

	while (true) {
	    i = buf.indexOf(split);
	    if (i >= 0) break;
	    Object more = in.pullString();
	    if (more == null) {
		token = buf;
		buf = null;
		return token;
	    }
	    buf += (String)more;
	}
	token = buf.substring(0, i);
	buf = buf.substring(i + split.length());
	return token;
    }
}
