@thi.ng/parse
Version:
Purely functional parser combinators & AST generation for generic inputs
17 lines (16 loc) • 358 B
JavaScript
import { discard } from "../xform/discard.js";
const seq = (parsers, id = "seq") => (ctx) => {
if (ctx.done) return false;
ctx.start(id);
for (let i = 0, n = parsers.length; i < n; i++) {
if (!parsers[i](ctx)) {
return ctx.discard();
}
}
return ctx.end();
};
const seqD = (parsers) => discard(seq(parsers));
export {
seq,
seqD
};