/** 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 {
- // FIXME!!! remove this
- /** converts this <tt>Token</tt> into a standalone result (ie for a non-rewriting pattern) */
- public String result();
-
/** 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 T next(int numstates) 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();
}
-
}
+