UNPKG

parjs

Version:

Library for building parsers using combinators.

36 lines 1.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pipe = exports.composeCombinator = exports.defineCombinator = void 0; const wrap_implicit_1 = require("../wrap-implicit"); /** * Represents the given function as a Parjs combinator. * * @param f The combinator function. */ function defineCombinator(f) { return (x) => { const resolved = (0, wrap_implicit_1.wrapImplicit)(x); return f(resolved); }; } exports.defineCombinator = defineCombinator; function composeCombinator(...fs) { return (x) => { let last = x; for (const f of fs) { last = f(last); } return last; }; } exports.composeCombinator = composeCombinator; // eslint-disable-next-line @typescript-eslint/no-explicit-any function pipe(source, ...funcs) { let last = (0, wrap_implicit_1.wrapImplicit)(source); for (const func of funcs) { last = func(last); } return last; } exports.pipe = pipe; //# sourceMappingURL=combinator.js.map