package parseLib.parser;
import parseLib.util.Input;
import javaf.prelude.Function1;
/**
* A parser transformer to apply function parser result
*/
public class MkFunction<X,Y> extends Parser<Y> {
private Parser<X> p;
private Function1<X,Y> f;
public MkFunction(Parser<X> p, Function1<X,Y> f) {
this.p = p;
this.f = f;
}
public Y parse(Input i) {
X x = p.parse(i);
if (x==null)
return null;
else
return f.apply(x);
}
}