package edu.berkeley.sbp;
import java.io.*;
import java.util.*;
import java.lang.reflect.*;
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 actual input token rather than an Element which matches a token */
public interface Token {
/** this is declared abstract as a way of forcing subclasses to provide a thoughtful implementation */
public abstract String toString();
/** a sequence of input tokens; returns null when EOF is reached */
public static interface Stream {
public T next(int numstates) throws IOException;
public abstract Location getLocation();
}
/** a location *between tokens* in the input stream */
public static interface Location {
public String toString();
}
}