import java.lang.ref.*;
import edu.berkeley.sbp.*;
import edu.berkeley.sbp.util.*;
-import edu.berkeley.sbp.*;
/** a token of input -- note that this represents an <i>actual input token</i> rather than an <tt>Element</tt> which <i>matches</i> a token */
public interface Token {
/** this is declared abstract as a way of forcing subclasses to provide a thoughtful implementation */
public abstract String toString();
- public abstract Location getLocation();
-
/** a sequence of input tokens; returns null when EOF is reached */
- public static interface Stream<T extends Token> {
- public T next() throws IOException;
+ public static interface Stream<Tok> {
+ public Tok next(int numstates, int resets, int waits) throws IOException;
+ public abstract Location getLocation();
}
- /** a location within the input stream */
+ /** a location *between tokens* in the input stream */
public static interface Location {
public String toString();
- public String getContext();
}
-
}
+