package parseLib.parser; import parseLib.acceptor.Acceptor; import parseLib.util.Input; /** * Compose a parser followed by an acceptor */ public class MkFst<T> extends Parser<T> { private Parser<T> left; private Acceptor right; public MkFst(Parser<T> left, Acceptor right) { this.left = left; this.right = right; } public T parse(Input i) { T t = left.parse(i); if (t==null) return null; if (!right.accept(i)) return null; return t; }; }