package parseLib.parser;
import parseLib.util.*;
/**
* Combine sequential parsers in a triplet
*/
public class MkTuple3<T1,T2,T3> extends Parser<Tuple3<T1,T2,T3>> {
Parser<T1> p1;
Parser<T2> p2;
Parser<T3> p3;
public MkTuple3(Parser<T1> p1, Parser<T2> p2, Parser<T3> p3) {
this.p1 = p1;
this.p2 = p2;
this.p3 = p3;
}
public Tuple3<T1,T2,T3> parse(Input i) {
T1 t1 = p1.parse(i);
if (t1==null)
return null;
T2 t2 = p2.parse(i);
if (t2==null)
return null;
T3 t3 = p3.parse(i);
if (t3==null)
return null;
return new Tuple3<T1,T2,T3>(t1, t2, t3);
};
}