X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FSequence.java;h=975b2b11802575d307372cc90b8445835e2e46da;hp=1d5634378dce266e177bcfaef05b0b34dd8829bb;hb=b8a597c8d1a29afc24f9b89f726d5b1a9b9aeec1;hpb=f09d2abb95f106197aea99c345282c3bf0cd3717 diff --git a/src/edu/berkeley/sbp/Sequence.java b/src/edu/berkeley/sbp/Sequence.java index 1d56343..975b2b1 100644 --- a/src/edu/berkeley/sbp/Sequence.java +++ b/src/edu/berkeley/sbp/Sequence.java @@ -19,8 +19,7 @@ public abstract class Sequence extends Element implements Iterable { final Position firstp; - public Atom follow = null; - public final Atom follow() { return follow; } + Atom follow = null; // Static Constructors ////////////////////////////////////////////////////////////////////////////// @@ -63,6 +62,7 @@ public abstract class Sequence extends Element implements Iterable { public Sequence and(Sequence s) { Sequence ret = dup(); ret.needs.add(s); return ret; } public Sequence not(Sequence s) { Sequence ret = dup(); ret.hates.add(s); s.hated.add(ret); return ret; } + public Sequence followedBy(Atom a) { Sequence ret = dup(); ret.follow = a; return ret; } public Iterable needs() { return needs; } public Iterable hates() { return hates; } @@ -90,7 +90,7 @@ public abstract class Sequence extends Element implements Iterable { // Position ////////////////////////////////////////////////////////////////////////////// /** the imaginary position before or after an element of a sequence; corresponds to an "LR item" */ - public class Position implements IntegerMappable { + class Position implements IntegerMappable { private Forest zero = null; public Forest zero() {