X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FInput.java;h=13c45d49de0476210819bc76befe901ce5c7e653;hb=b9228a7c1bd98e514e6a5c0483c2e539ee777992;hp=c16947d24f18600ae7b0c4ee0bd0e76fa0fd1e49;hpb=3ee451bce342d4bb61ad6235ba57bdf817bfdd1a;p=sbp.git diff --git a/src/edu/berkeley/sbp/Input.java b/src/edu/berkeley/sbp/Input.java index c16947d..13c45d4 100644 --- a/src/edu/berkeley/sbp/Input.java +++ b/src/edu/berkeley/sbp/Input.java @@ -16,6 +16,18 @@ public interface Input { /** returns the location the input stream is currently at */ public Location getLocation(); + + /** should return a short string describing where the input is coming from */ + public String getName(); + + /** + * Optional: If possible, this method will return a + * <60 char long rendering of the input region (for example, if + * the input is a region of characters, it would be those + * characters, possibly with ellipses in the middle to truncate + * the length) -- otherwise, returns null. + */ + public abstract String showRegion(Region r); /** a location (position) in the input stream -- between tokens */ public static interface Location extends Comparable { @@ -24,10 +36,29 @@ public interface Input { public Region createRegion(Location loc); public String toString(); + + /** the location following this one */ + public Location next(); + + /** the location preceding this one */ + public Location prev(); } /** a contiguous set of Locations */ public static interface Region /* implements Topology> */ { + + /** + * the toString() method of Region should return a <80char + * "rendition" of the input region, if possible + */ + public abstract String toString(); + + /** The location of the start of this region */ + public abstract Location getStart(); + + /** The location of the end of this region */ + public abstract Location getEnd(); + } }