UNPKG

@fink/loxia

Version:

A fink to JavaScript compiler.

219 lines (193 loc) 7.19 kB
import { unique_or_id as unique_or_id_0 } from "../context.js"; import { ir_fn as ir_fn_0 } from "../context.js"; 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 { lst_c as lst_c_0 } from "../literals/list.js"; import { lst_h as lst_h_0 } from "../assignment/init.js"; import { fnc as fnc_0 } from "../func/init.js"; const af_0 = (fn_id_0, args_id_0, name_or_id_0, drec_0, ctx_0) => { const result_0 = ir_fn_0(`af`, [fn_id_0, args_id_0], name_or_id_0, { loc: drec_0.loc }, ctx_0); return result_0; }; const prtl_func_0 = (prtl_arg_id_0, res_0, res_id_0, fn_id_or_name_0, drec_1, ctx_1) => { const loc_1 = drec_1.loc; const dlst_0 = unique_or_id_0(`args`, { loc: loc_1 }, ctx_1); const args_id_1 = dlst_0[0]; const dlst_1 = lst_h_0(args_id_1, prtl_arg_id_0, { loc: loc_1 }, dlst_0[1]); const result_4 = fnc_0(args_id_1, res_id_0, [...dlst_1[0], ...res_0], fn_id_or_name_0, { loc: loc_1 }, dlst_1[2]); return result_4; }; const add_arg_0 = (args_id_2, arg_18, arg_id_0, drec_2, ctx_2) => { const dlst_2 = lst_a_0(args_id_2, arg_id_0, `cargs`, { loc: drec_2.loc }, ctx_2); return [[...arg_18, ...dlst_2[0]], dlst_2[1], dlst_2[2]]; }; const spread_arg_0 = (args_id_3, arg_24, arg_id_1, drec_3, ctx_3) => { const dlst_3 = lst_c_0(args_id_3, arg_id_1, `cargs`, { loc: drec_3.loc }, ctx_3); return [[...arg_24, ...dlst_3[0]], dlst_3[1], dlst_3[2]]; }; const transform_with_partial_0 = (expr_0, name_0, ctx_4) => { const hdm_0 = ctx_4.partial_ident; const outer_prtl_0 = undefined === hdm_0 ? false : hdm_0; let ret_4; ret_4: { /* istanbul ignore else */ if (outer_prtl_0 === false) { const result_12 = transform_0(expr_0, name_0, ctx_4); ret_4 = result_12; /* istanbul ignore next */ break ret_4; } const result_11 = transform_0(expr_0, name_0, { ...ctx_4, partial_ident: false }); ret_4 = result_11; /* istanbul ignore next */ break ret_4; } const dlst_4 = ret_4; const arg_36 = dlst_4[0]; const arg_id_2 = dlst_4[1]; const next_ctx_2 = dlst_4[2]; const hdm_1 = next_ctx_2.partial_ident; const arg_prtl_0 = undefined === hdm_1 ? false : hdm_1; /* istanbul ignore else */ if (null != [outer_prtl_0, arg_prtl_0]) { /* istanbul ignore else */ if (outer_prtl_0 === false) { /* istanbul ignore else */ if (true === (arg_prtl_0 !== false)) { const result_16 = prtl_func_0(arg_prtl_0, arg_36, arg_id_2, `pfn`, expr_0, { ...next_ctx_2, partial_ident: false }); return result_16; } } } return [arg_36, arg_id_2, { ...next_ctx_2, partial_ident: outer_prtl_0 }]; }; const transform_arg_0 = (expr_1, args_id_4, ctx_5) => { const dlst_5 = transform_with_partial_0(expr_1, `arg`, ctx_5); const result_18 = add_arg_0(args_id_4, dlst_5[0], dlst_5[1], expr_1, dlst_5[2]); return result_18; }; const transform_spread_arg_0 = (expr_2, args_id_5, ctx_6) => { const dlst_6 = transform_0(expr_2.right, `sprd`, ctx_6); const result_20 = spread_arg_0(args_id_5, dlst_6[0], dlst_6[1], expr_2, dlst_6[2]); return result_20; }; const transform_partial_arg_0 = (expr_3, args_id_6, ctx_7) => { const dlst_7 = transform_0(expr_3, `parg`, ctx_7); const result_22 = add_arg_0(args_id_6, dlst_7[0], dlst_7[1], expr_3, dlst_7[2]); return result_22; }; const transform_all_args_0 = (...args_11) => { transform_all_args_0: do { const dlst_8 = args_11[0]; const hdm_2 = dlst_8[0]; const expr_4 = undefined === hdm_2 ? false : hdm_2; const tail_59 = dlst_8.slice(1); const args_id_7 = args_11[1]; const ctx_8 = args_11[2]; const hdm_3 = args_11[3]; const out_0 = undefined === hdm_3 ? [] : hdm_3; /* istanbul ignore else */ if (expr_4 === false) { return [out_0, args_id_7, ctx_8]; } /* istanbul ignore else */ if (null != expr_4) { /* istanbul ignore else */ if (expr_4.type === `spread`) { const dlst_12 = transform_spread_arg_0(expr_4, args_id_7, ctx_8); args_11 = [tail_59, dlst_12[1], dlst_12[2], [...out_0, ...dlst_12[0]]]; continue transform_all_args_0; } } /* istanbul ignore else */ if (null != expr_4) { /* istanbul ignore else */ if (expr_4.type === `partial`) { const dlst_11 = transform_partial_arg_0(expr_4, args_id_7, ctx_8); args_11 = [tail_59, dlst_11[1], dlst_11[2], [...out_0, ...dlst_11[0]]]; continue transform_all_args_0; } } /* istanbul ignore else */ if (null != expr_4) { /* istanbul ignore else */ if (expr_4.type === `empty`) { const dlst_10 = add_arg_0(args_id_7, [], { i: `_`, loc: expr_4.loc }, expr_4, ctx_8); args_11 = [tail_59, dlst_10[1], dlst_10[2], [...out_0, ...dlst_10[0]]]; continue transform_all_args_0; } } const dlst_9 = transform_arg_0(expr_4, args_id_7, ctx_8); args_11 = [tail_59, dlst_9[1], dlst_9[2], [...out_0, ...dlst_9[0]]]; continue transform_all_args_0; } while (true); }; const transform_args_0 = (expr_5, ctx_9) => { const dlst_13 = lst_0(`cargs`, expr_5, ctx_9); const dlst_14 = transform_all_args_0(expr_5.args, dlst_13[1], dlst_13[2]); return [[...dlst_13[0], ...dlst_14[0]], dlst_14[1], dlst_14[2]]; }; const transform_call_0 = (node_0, result_36, ctx_10) => { const hdm_4 = ctx_10.partial_ident; const outer_prtl_1 = undefined === hdm_4 ? false : hdm_4; const dlst_15 = transform_0(node_0.callee, `callee`, ctx_10); const callee_26 = dlst_15[0]; const c_id_0 = dlst_15[1]; const dlst_16 = transform_args_0(node_0, dlst_15[2]); const args_14 = dlst_16[0]; const args_id_9 = dlst_16[1]; const next_ctx_11 = dlst_16[2]; const hdm_5 = next_ctx_11.partial_ident; const call_prtl_0 = undefined === hdm_5 ? false : hdm_5; /* istanbul ignore else */ if (null != [outer_prtl_1, call_prtl_0]) { /* istanbul ignore else */ if (outer_prtl_1 === false) { /* istanbul ignore else */ if (true === (call_prtl_0 !== false)) { const dlst_18 = af_0(c_id_0, args_id_9, `pfn`, node_0, next_ctx_11); const dlst_19 = prtl_func_0(call_prtl_0, [...callee_26, ...args_14, ...dlst_18[0]], dlst_18[1], result_36, node_0, dlst_18[2]); return [dlst_19[0], { ...dlst_19[2], partial_ident: outer_prtl_1 }]; } } } const dlst_17 = af_0(c_id_0, args_id_9, result_36, node_0, next_ctx_11); return [[...callee_26, ...args_14, ...dlst_17[0]], { ...dlst_17[2], partial_ident: outer_prtl_1 }]; }; export const af = af_0, prtl_func = prtl_func_0, add_arg = add_arg_0, spread_arg = spread_arg_0, transform_with_partial = transform_with_partial_0, transform_arg = transform_arg_0, transform_spread_arg = transform_spread_arg_0, transform_partial_arg = transform_partial_arg_0, transform_all_args = transform_all_args_0, transform_args = transform_args_0, transform_call = transform_call_0;