import java.util.*; class Tokens { int pos; String[] tokens; /* */ /* Convert the source into an array of strings. */ Tokens (String source) { StringTokenizer st = new StringTokenizer(source); int tokenCount = st.countTokens(); tokens = new String[tokenCount]; for (int i = 0 ; i < tokenCount ; i++) { tokens[i] = st.nextToken(); } } boolean atEnd() { return pos == tokens.length; } boolean nextIs(String target) { return tokens[pos].equals(target); } String next() { return tokens[pos++]; } void eat(String s) throws SyntaxError { if (pos != tokens.length && tokens[pos].equals(s)) pos++; else throw new SyntaxError(s); } }