UNPKG

parjs

Version:

A parser-combinator library for JavaScript.

35 lines (34 loc) 939 B
"use strict"; /** @module parjs/internal */ /** */ Object.defineProperty(exports, "__esModule", { value: true }); const scalar_converter_1 = require("../scalar-converter"); /** * Represents the given function as a Parjs combinator. * @param f The combinator function. */ function defineCombinator(f) { return (x) => { let resolved = scalar_converter_1.ScalarConverter.convert(x); return f(resolved); }; } exports.defineCombinator = defineCombinator; function composeCombinator(...fs) { return x => { let last = x; for (let f of fs) { last = f(last); } return last; }; } exports.composeCombinator = composeCombinator; function pipe(source, ...funcs) { let last = scalar_converter_1.ScalarConverter.convert(source); for (let func of funcs) { last = func(last); } return last; } exports.pipe = pipe; //# sourceMappingURL=combinator.js.map