parjs
Version:
A parser-combinator library for JavaScript.
35 lines (34 loc) • 939 B
JavaScript
;
/** @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