UNPKG

@fink/loxia

Version:

A fink to JavaScript compiler.

193 lines (165 loc) 5.42 kB
import types_0 from "@babel/types"; const arrayExpression_0 = types_0.arrayExpression; const memberExpression_0 = types_0.memberExpression; const numericLiteral_0 = types_0.numericLiteral; const callExpression_0 = types_0.callExpression; const identifier_0 = types_0.identifier; import { ˆnull as null_0 } from "@fink/js-interop/nullish.js"; import { add as add_0 } from "../context.js"; import { get_js as get_js_0 } from "../context.js"; import { set_js2 as set_js2_0 } from "../context.js"; import { with_loc as with_loc_0 } from "../context.js"; const ids_to_js_0 = (...args_0) => { ids_to_js_0: do { const dlst_0 = args_0[0]; const hdm_0 = dlst_0[0]; const id_0 = undefined === hdm_0 ? false : hdm_0; const tail_1 = dlst_0.slice(1); const ctx_0 = args_0[1]; const hdm_1 = args_0[2]; const out_0 = undefined === hdm_1 ? [] : hdm_1; /* istanbul ignore else */ if (id_0 === false) { return out_0; } /* istanbul ignore else */ if (null != id_0) { /* istanbul ignore else */ if (id_0.i === `_`) { args_0 = [tail_1, ctx_0, [...out_0, null_0]]; continue ids_to_js_0; } } const item_0 = get_js_0(id_0, ctx_0); args_0 = [tail_1, ctx_0, [...out_0, item_0]]; continue ids_to_js_0; } while (true); }; const transform_tpl_0 = (expr_0, ctx_1) => { const arg_8 = ids_to_js_0(expr_0[0].args, ctx_1); const js_0 = arrayExpression_0(arg_8); const result_7 = set_js2_0(expr_0, js_0, ctx_1); return result_7; }; const transform_tpl_i_0 = (expr_1, ctx_2) => { const val_2 = expr_1[0].args; const tpl_id_0 = val_2[0]; const idx_0 = val_2[1]; let ret_3; ret_3: { /* istanbul ignore else */ if (true === idx_0 < 0) { const arg_21 = get_js_0(tpl_id_0, ctx_2); const arg_24 = identifier_0(`at`); const arg_20 = memberExpression_0(arg_21, arg_24); const item_3 = numericLiteral_0(idx_0); const result_11 = callExpression_0(arg_20, [item_3]); ret_3 = result_11; /* istanbul ignore next */ break ret_3; } const arg_14 = get_js_0(tpl_id_0, ctx_2); const arg_17 = numericLiteral_0(idx_0); const result_10 = memberExpression_0(arg_14, arg_17, true); ret_3 = result_10; /* istanbul ignore next */ break ret_3; } const js_1 = ret_3; const result_12 = set_js2_0(expr_1, js_1, ctx_2); return result_12; }; const transform_tpl_s_0 = (expr_2, ctx_3) => { const val_4 = expr_2[0].args; const end_idx_0 = val_4[2]; const items_2 = get_js_0(val_4[0], ctx_3); const start_0 = numericLiteral_0(val_4[1]); let ret_5; ret_5: { /* istanbul ignore else */ if (true === end_idx_0 >= 0) { ret_5 = [start_0]; /* istanbul ignore next */ break ret_5; } const item_4 = numericLiteral_0(end_idx_0); ret_5 = [start_0, item_4]; /* istanbul ignore next */ break ret_5; } const args_4 = ret_5; const arg_37 = identifier_0(`slice`); const arg_35 = memberExpression_0(items_2, arg_37); const js_2 = callExpression_0(arg_35, args_4); const result_20 = set_js2_0(expr_2, js_2, ctx_3); return result_20; }; const elems_or_spread_0 = expr_3 => { /* istanbul ignore else */ if (null != expr_3) { /* istanbul ignore else */ if (expr_3.type === `ArrayExpression`) { return expr_3.elements; } } const arg_44 = types_0.spreadElement(expr_3); const item_7 = with_loc_0(expr_3, arg_44); return [item_7]; }; const transform_list_append_0 = (expr_4, ctx_4) => { const val_7 = expr_4[0].args; const val_id_0 = val_7[1]; const arg_46 = get_js_0(val_7[0], ctx_4); const elems_0 = elems_or_spread_0(arg_46); let ret_9; ret_9: { /* istanbul ignore else */ if (null != val_id_0) { /* istanbul ignore else */ if (val_id_0.i === `_`) { ret_9 = null_0; /* istanbul ignore next */ break ret_9; } } const result_27 = get_js_0(val_id_0, ctx_4); ret_9 = result_27; /* istanbul ignore next */ break ret_9; } const elem_0 = ret_9; const js_3 = arrayExpression_0([...elems_0, elem_0]); const result_30 = set_js2_0(expr_4, js_3, ctx_4); return result_30; }; const transform_list_chain_0 = (expr_5, ctx_5) => { const val_9 = expr_5[0].args; const arg_55 = get_js_0(val_9[0], ctx_5); const elems1_0 = elems_or_spread_0(arg_55); const arg_58 = get_js_0(val_9[1], ctx_5); const elems2_0 = elems_or_spread_0(arg_58); const js_4 = arrayExpression_0([...elems1_0, ...elems2_0]); const result_35 = set_js2_0(expr_5, js_4, ctx_5); return result_35; }; const add_list_0 = ctx_6 => { const pfn_0 = add_0(`tpl`, transform_tpl_0); const ppr_0 = pfn_0(ctx_6); const pfn_1 = add_0(`tpl_i`, transform_tpl_i_0); const ppr_1 = pfn_1(ppr_0); const pfn_2 = add_0(`tpl_s`, transform_tpl_s_0); const ppr_2 = pfn_2(ppr_1); const pfn_3 = add_0(`lst_a`, transform_list_append_0); const ppr_3 = pfn_3(ppr_2); const pfn_4 = add_0(`lst_c`, transform_list_chain_0); const ppr_4 = pfn_4(ppr_3); return ppr_4; }; export const ids_to_js = ids_to_js_0, transform_tpl = transform_tpl_0, transform_tpl_i = transform_tpl_i_0, transform_tpl_s = transform_tpl_s_0, elems_or_spread = elems_or_spread_0, transform_list_append = transform_list_append_0, transform_list_chain = transform_list_chain_0, add_list = add_list_0;