X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FInput.java;h=d19b20890411bc062eb51a8c49dc9b5b9f214b3c;hp=b326468aff26137e5e4a56ffcad3741c87d76b3d;hb=0e17670bcfa7b0fe8eb3a2cac81f4b080a09fc98;hpb=6a2ea790f843e058c7e67d3c7d1deebadcfe1fd5
diff --git a/src/edu/berkeley/sbp/Input.java b/src/edu/berkeley/sbp/Input.java
index b326468..d19b208 100644
--- a/src/edu/berkeley/sbp/Input.java
+++ b/src/edu/berkeley/sbp/Input.java
@@ -6,22 +6,28 @@ import java.lang.ref.*;
import edu.berkeley.sbp.*;
import edu.berkeley.sbp.util.*;
-/** a token of input -- note that this represents an actual input token rather than an Element which matches a token */
-public interface Input {
+/** a stream of Tokens to be parsed */
+public interface Input {
- /** this is declared abstract as a way of forcing subclasses to provide a thoughtful implementation */
- public abstract String toString();
+ /** returns the token just beyond the current location and advances beyond it */
+ public Token next() throws IOException;
- /** a sequence of input tokens; returns null when EOF is reached */
- public static interface Stream {
- public Tok next(int numstates, int resets, int waits) throws IOException;
- public abstract Location getLocation();
- }
+ /** returns the location the input stream is currently at */
+ public Location getLocation();
+
+ /** a location (position) in the input stream -- between tokens */
+ public static interface Location extends Comparable {
+
+ /** return the region between this location and loc */
+ public Region createRegion(Location loc);
- /** a location *between tokens* in the input stream */
- public static interface Location {
public String toString();
}
+
+ /** a contiguous set of Locations */
+ public static interface Region /* implements Topology> */ {
+ }
+
}