From a7b84506c2e1ed63343db215f76afced082e2826 Mon Sep 17 00:00:00 2001 From: adam Date: Sun, 15 Jan 2006 06:03:14 -0500 Subject: [PATCH] checkpoint darcs-hash:20060115110314-5007d-95cfa97478f0e08071641815931951ab4bec8109.gz --- src/edu/berkeley/sbp/Input.java | 12 +++------- src/edu/berkeley/sbp/Parser.java | 2 +- src/edu/berkeley/sbp/misc/CartesianInput.java | 2 +- src/edu/berkeley/sbp/misc/MetaGrammar.java | 6 ++--- .../misc/{StringToken.java => StringInput.java} | 23 ++++++++++---------- src/edu/berkeley/sbp/tib/Tib.java | 2 +- 6 files changed, 20 insertions(+), 27 deletions(-) rename src/edu/berkeley/sbp/misc/{StringToken.java => StringInput.java} (67%) diff --git a/src/edu/berkeley/sbp/Input.java b/src/edu/berkeley/sbp/Input.java index b326468..d8374cd 100644 --- a/src/edu/berkeley/sbp/Input.java +++ b/src/edu/berkeley/sbp/Input.java @@ -7,16 +7,10 @@ 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 { +public interface Input { - /** this is declared abstract as a way of forcing subclasses to provide a thoughtful implementation */ - public abstract String toString(); - - /** 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(); - } + public Tok next(int numstates, int resets, int waits) throws IOException; + public abstract Location getLocation(); /** a location *between tokens* in the input stream */ public static interface Location { diff --git a/src/edu/berkeley/sbp/Parser.java b/src/edu/berkeley/sbp/Parser.java index 87b5508..75f3ace 100644 --- a/src/edu/berkeley/sbp/Parser.java +++ b/src/edu/berkeley/sbp/Parser.java @@ -18,7 +18,7 @@ public abstract class Parser { public abstract Forest shiftToken(Tok t, Input.Location loc); /** parse input, using the table pt to drive the parser */ - public Forest parse(Input.Stream input) throws IOException, ParseFailed { + public Forest parse(Input input) throws IOException, ParseFailed { GSS gss = new GSS(); Input.Location loc = input.getLocation(); GSS.Phase current = gss.new Phase(null, this, null, input.next(1, 0, 0), loc, null); diff --git a/src/edu/berkeley/sbp/misc/CartesianInput.java b/src/edu/berkeley/sbp/misc/CartesianInput.java index 200396e..4930173 100644 --- a/src/edu/berkeley/sbp/misc/CartesianInput.java +++ b/src/edu/berkeley/sbp/misc/CartesianInput.java @@ -7,7 +7,7 @@ import edu.berkeley.sbp.*; import edu.berkeley.sbp.Input.Location; import edu.berkeley.sbp.util.*; -public abstract class CartesianInput implements Input.Stream { +public abstract class CartesianInput implements Input { private int line = 1; private int col = 0; diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index 03f8f97..7f4120f 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -40,9 +40,9 @@ public class MetaGrammar extends StringWalker { private boolean strings; private Element set(Range.Set r) { if (strings) throw new Error(); return CharRange.set(r); } - private Element string(String s) { return strings ? StringToken.string(s) : CharRange.string(s); } - private Atom leftBrace() { return strings ? StringToken.leftBrace : CharRange.leftBrace; } - private Atom rightBrace() { return strings ? StringToken.rightBrace : CharRange.rightBrace; } + private Element string(String s) { return strings ? StringInput.string(s) : CharRange.string(s); } + private Atom leftBrace() { return strings ? StringInput.leftBrace : CharRange.leftBrace; } + private Atom rightBrace() { return strings ? StringInput.rightBrace : CharRange.rightBrace; } public MetaGrammar() { this("s", false); } public MetaGrammar(String s) { this(s, false); } diff --git a/src/edu/berkeley/sbp/misc/StringToken.java b/src/edu/berkeley/sbp/misc/StringInput.java similarity index 67% rename from src/edu/berkeley/sbp/misc/StringToken.java rename to src/edu/berkeley/sbp/misc/StringInput.java index b21e458..1f3d0d3 100644 --- a/src/edu/berkeley/sbp/misc/StringToken.java +++ b/src/edu/berkeley/sbp/misc/StringInput.java @@ -4,24 +4,23 @@ import java.util.*; import java.lang.reflect.*; import java.lang.ref.*; import edu.berkeley.sbp.*; -import edu.berkeley.sbp.*; +import edu.berkeley.sbp.Input.Location; import edu.berkeley.sbp.util.*; -import edu.berkeley.sbp.*; /** an implementation of Input for streams of Java char values */ -public class StringToken implements Input { +public class StringInput { - public static final StringToken left = new StringToken(null, null) { public boolean equals(Object o) { return this==o; } }; - public static final StringToken right = new StringToken(null, null) { public boolean equals(Object o) { return this==o; } }; + public static final StringInput left = new StringInput(null, null) { public boolean equals(Object o) { return this==o; } }; + public static final StringInput right = new StringInput(null, null) { public boolean equals(Object o) { return this==o; } }; - public static final Atom leftBrace = new StringAtom(new DiscreteTopology(left)) { public String toString() { return "{"; } }; - public static final Atom rightBrace = new StringAtom(new DiscreteTopology(right)) { public String toString() { return "}"; } }; + public static final Atom leftBrace = new StringAtom(new DiscreteTopology(left)) { public String toString() { return "{"; } }; + public static final Atom rightBrace = new StringAtom(new DiscreteTopology(right)) { public String toString() { return "}"; } }; private static class StringAtom extends Atom { private String s; private Topology t; - public StringAtom(String s) { this.t = new DiscreteTopology(new StringToken(s, null)); this.s = s; } - public StringAtom(Topology t) { this.t = t; } + public StringAtom(String s) { this.t = new DiscreteTopology(new StringInput(s, null)); this.s = s; } + public StringAtom(Topology t) { this.t = t; } public String toString() { return "[atom \""+s+"\"]"; } public Topology top() { return t; } } @@ -31,15 +30,15 @@ public class StringToken implements Input { return new StringAtom(s); } - public static Topology top() { return new DiscreteTopology(); } + public static Topology top() { return new DiscreteTopology(); } public final String s; public final Location location; - private StringToken(String s, Location loc) { this.s = s; this.location = loc; } + private StringInput(String s, Location loc) { this.s = s; this.location = loc; } public String result() { return s; } public Location getLocation() { return location; } public String toString() { return "\'"+StringUtil.escapify(s)+"\'"; } - public boolean equals(Object o) { return o!=null && o instanceof StringToken && s.equals(((StringToken)o).s); } + public boolean equals(Object o) { return o!=null && o instanceof StringInput && s.equals(((StringInput)o).s); } public int hashCode() { return s==null ? 0 : s.hashCode(); } } diff --git a/src/edu/berkeley/sbp/tib/Tib.java b/src/edu/berkeley/sbp/tib/Tib.java index 15c286a..6693600 100644 --- a/src/edu/berkeley/sbp/tib/Tib.java +++ b/src/edu/berkeley/sbp/tib/Tib.java @@ -24,7 +24,7 @@ import java.io.*; * experimentation with the TIB spec. Once the spec is finalized it * should probably be rewritten. */ -public class Tib implements Input.Stream { +public class Tib implements Input { public Tib(String s) throws IOException { this(new StringReader(s)); } public Tib(Reader r) throws IOException { this(new BufferedReader(r)); } -- 1.7.10.4