final Position firstp;
- public Atom follow = null;
- public final Atom follow() { return follow; }
+ Atom follow = null;
// Static Constructors //////////////////////////////////////////////////////////////////////////////
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<Sequence> needs() { return needs; }
public Iterable<Sequence> hates() { return hates; }
// 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() {