X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FInput.java;h=846fd9a7b60de45439cc7650913e8121e6f1c75a;hb=e64e99e8fd3b7a291639ee28a4a5ef3e75d6de4a;hp=d8374cdf08e35af3a76c9023e76708841f0f692f;hpb=a7b84506c2e1ed63343db215f76afced082e2826;p=sbp.git
diff --git a/src/edu/berkeley/sbp/Input.java b/src/edu/berkeley/sbp/Input.java
index d8374cd..846fd9a 100644
--- a/src/edu/berkeley/sbp/Input.java
+++ b/src/edu/berkeley/sbp/Input.java
@@ -6,16 +6,32 @@ 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 {
- public Tok next(int numstates, int resets, int waits) throws IOException;
- public abstract Location getLocation();
+ /** returns the token just beyond the current location and advances beyond it */
+ public Token next() throws IOException;
- /** a location *between tokens* in the input stream */
- public static interface Location {
+ /** returns the location the input stream is currently at */
+ public Location getLocation();
+
+ /** a location between tokens in the input stream */
+ public static interface Location extends Comparable {
public String toString();
}
+
+ public static class Region /* implements Topology> */ {
+ public final Loc start;
+ public final Loc end;
+ public Region(Loc a, Loc b) {
+ switch(a.compareTo(b)) {
+ case -1:
+ case 0: start=a; end=b; return;
+ case 1: start=b; end=a; return;
+ default: throw new Error("impossible");
+ }
+ }
+ }
}