X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FInput.java;h=846fd9a7b60de45439cc7650913e8121e6f1c75a;hb=b205c5ee125119b0372328b70e8a66164df18fd0;hp=a2c9baa1c84c47e4feccb2ed117e9735929bc3fa;hpb=c7af09d552a9cf2d53a72baa975c9a73384813ea;p=sbp.git diff --git a/src/edu/berkeley/sbp/Input.java b/src/edu/berkeley/sbp/Input.java index a2c9baa..846fd9a 100644 --- a/src/edu/berkeley/sbp/Input.java +++ b/src/edu/berkeley/sbp/Input.java @@ -10,15 +10,28 @@ import edu.berkeley.sbp.util.*; public interface Input { /** returns the token just beyond the current location and advances beyond it */ - public Token next(int numstates, int resets, int waits) throws IOException; + public Token next() throws IOException; /** returns the location the input stream is currently at */ - public Location getLocation(); + public Location getLocation(); - /** a location *between tokens* in the input stream */ - public static interface Location { + /** 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"); + } + } + } }