@fink/loxia
Version:
A fink to JavaScript compiler.
100 lines (84 loc) • 2.8 kB
JavaScript
import { transform as transform_0 } from "../transform.js";
import { lst as lst_0 } from "../literals/list.js";
import { lst_a as lst_a_0 } from "../literals/list.js";
import { ˆlet as let_0 } from "../identifier/init.js";
import { transform_with_partial as transform_with_partial_0 } from "./call.js";
import { af as af_0 } from "./call.js";
const apply_step_0 = (callee_id_0, arg_id_0, drec_0, ctx_0) => {
const loc_0 = drec_0.loc;
const dlst_0 = lst_0(`args`, {
loc: loc_0
}, ctx_0);
const emp_0 = dlst_0[0];
const empty_id_0 = dlst_0[1];
const args_ctx_0 = dlst_0[2];
let ret_0;
ret_0: {
/* istanbul ignore else */
if (arg_id_0 === false) {
ret_0 = [emp_0, empty_id_0, args_ctx_0];
/* istanbul ignore next */
break ret_0;
}
const dlst_2 = lst_a_0(empty_id_0, arg_id_0, `args`, {
loc: loc_0
}, args_ctx_0);
ret_0 = [[...emp_0, ...dlst_2[0]], dlst_2[1], dlst_2[2]];
/* istanbul ignore next */
break ret_0;
}
const dlst_1 = ret_0;
const dlst_3 = af_0(callee_id_0, dlst_1[1], `ppr`, {
loc: loc_0
}, dlst_1[2]);
return [[...dlst_1[0], ...dlst_3[0]], dlst_3[1], dlst_3[2]];
};
const pipe_all_0 = (...args_2) => {
pipe_all_0: do {
const dlst_4 = args_2[0];
const hdm_0 = dlst_4[0];
const expr_0 = undefined === hdm_0 ? false : hdm_0;
const prev_res_id_0 = args_2[1];
const ctx_1 = args_2[2];
const hdm_1 = args_2[3];
const out_0 = undefined === hdm_1 ? [] : hdm_1;
/* istanbul ignore else */
if (expr_0 === false) {
return [out_0, prev_res_id_0, ctx_1];
}
const dlst_5 = transform_with_partial_0(expr_0, `pfn`, ctx_1);
const {
partial_ident: _key_11,
...next_ctx_2
} = dlst_5[2];
const dlst_6 = apply_step_0(dlst_5[1], prev_res_id_0, expr_0, next_ctx_2);
args_2 = [dlst_4.slice(1), dlst_6[1], dlst_6[2], [...out_0, ...dlst_5[0], ...dlst_6[0]]];
continue pipe_all_0;
} while (true);
};
const transform_pipe_0 = (expr_1, result_13, ctx_2) => {
const value_2 = expr_1.args;
let ret_4;
ret_4: {
/* istanbul ignore else */
if (null != value_2) {
/* istanbul ignore else */
if (undefined !== value_2[0]) {
const result_17 = transform_0(expr_1.args[0], `pps`, ctx_2);
ret_4 = result_17;
/* istanbul ignore next */
break ret_4;
}
}
ret_4 = [[], false, ctx_2];
/* istanbul ignore next */
break ret_4;
}
const dlst_7 = ret_4;
const dlst_9 = pipe_all_0(expr_1.exprs, dlst_7[1], dlst_7[2]);
const dlst_10 = let_0(dlst_9[1], result_13, expr_1, dlst_9[2]);
return [[...dlst_7[0], ...dlst_9[0], ...dlst_10[0]], dlst_10[2]];
};
export const apply_step = apply_step_0,
pipe_all = pipe_all_0,
transform_pipe = transform_pipe_0;