UNPKG

@thi.ng/parse

Version:

Purely functional parser combinators & AST generation for generic inputs

21 lines (20 loc) 572 B
const comp = (...xforms) => { const [a, b, c, d] = xforms; switch (xforms.length) { case 0: return (x) => x; case 1: return a; case 2: return (scope, ctx, user) => b(a(scope, ctx, user), ctx, user); case 3: return (scope, ctx, user) => c(b(a(scope, ctx, user), ctx, user), ctx, user); case 4: return (scope, ctx, user) => d(c(b(a(scope, ctx, user), ctx, user), ctx, user), ctx, user); default: return (scope, ctx, user) => xforms.reduce((scope2, x) => x(scope2, ctx, user), scope); } }; export { comp };