public Token nextToken() {

	if (currentPosition == characters.length)
	    return Token.getTokenInstance("END");

	char nextChar = consume();
	StringBuilder builder = new StringBuilder();
	builder.append(nextChar);

	if (isAlpha(nextChar)) {

	    while (isAlpha(nextChar = peek())) {
		nextChar = consume();
		builder.append(nextChar);
	    }

	} else if (nextChar == '&' || nextChar == '|') {
	    nextChar = consume();
	    builder.append(nextChar);

	} else if (nextChar == '"') {
	    consumeStringLiteral(builder);
	}

	return Token.getTokenInstance(builder.toString());
    }