UNPKG

@thi.ng/parse

Version:

Purely functional parser combinators & AST generation for generic inputs

19 lines (18 loc) 430 B
import { string } from "../prims/string.js"; import { discard } from "../xform/discard.js"; const alt = (parsers) => (ctx) => { if (ctx.done) return false; for (let i = 0, n = parsers.length; i < n; i++) { if (parsers[i](ctx)) { return true; } } return false; }; const altS = (strings) => alt(strings.map((x) => string(x))); const altD = (parsers) => discard(alt(parsers)); export { alt, altD, altS };