X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FInput.java;h=d19b20890411bc062eb51a8c49dc9b5b9f214b3c;hp=be41cbebeff1af501c5a65d25c5318a14f1210e9;hb=0e17670bcfa7b0fe8eb3a2cac81f4b080a09fc98;hpb=ac3843911c47a601ffd679d2e075b519d3a18d6a
diff --git a/src/edu/berkeley/sbp/Input.java b/src/edu/berkeley/sbp/Input.java
index be41cbe..d19b208 100644
--- a/src/edu/berkeley/sbp/Input.java
+++ b/src/edu/berkeley/sbp/Input.java
@@ -6,7 +6,7 @@ import java.lang.ref.*;
import edu.berkeley.sbp.*;
import edu.berkeley.sbp.util.*;
-/** a stream of tokens to be parsed */
+/** a stream of Tokens to be parsed */
public interface Input {
/** returns the token just beyond the current location and advances beyond it */
@@ -15,42 +15,19 @@ public interface Input {
/** 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();
+ /** 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);
- /** an implementation of Location for a cartesian grid (row, col) */
- public static class Cartesian implements Location, Comparable {
- protected final int row;
- protected final int col;
- public String toString() { return row+":"+col; }
- public int getCol() { return col; }
- public int getRow() { return row; }
- public Cartesian(int col, int row) { this.row = row; this.col = col; }
- public int compareTo(Location loc) throws ClassCastException {
- if (!(loc instanceof Cartesian)) throw new ClassCastException();
- Cartesian c = (Cartesian)loc;
- if (row < c.row) return -1;
- if (row > c.row) return 1;
- if (col < c.col) return -1;
- if (col > c.col) return 1;
- return 0;
- }
- }
+ 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");
- }
- }
+ /** a contiguous set of Locations */
+ public static interface Region /* implements Topology> */ {
}
+
}