UNPKG

@fink/loxia

Version:

A fink to JavaScript compiler.

135 lines (115 loc) 3.65 kB
import { ir_fn as ir_fn_0 } from "../context.js"; import { transform as transform_0 } from "../transform.js"; import { bind as bind_0 } from "../identifier/init.js"; import { str as str_4 } from "../literals/string.js"; const impd_0 = (uri_id_0, res_id_0, drec_0, ctx_0) => { const result_0 = ir_fn_0(`impd`, [uri_id_0], res_id_0, { loc: drec_0.loc }, ctx_0); return result_0; }; const imp_0 = (uri_id_1, key_id_0, res_id_1, drec_1, ctx_1) => { const loc_1 = drec_1.loc; /* istanbul ignore else */ if (key_id_0 === false) { const result_3 = ir_fn_0(`imp`, [uri_id_1], res_id_1, { loc: loc_1 }, ctx_1); return result_3; } const result_2 = ir_fn_0(`imp`, [uri_id_1, key_id_0], res_id_1, { loc: loc_1 }, ctx_1); return result_2; }; const get_key_val_0 = (expr_0, ctx_2) => { let ret_3; ret_3: { /* istanbul ignore else */ if (null != expr_0) { /* istanbul ignore else */ if (expr_0.right === false) { const result_6 = bind_0(expr_0.left, ctx_2); ret_3 = result_6; /* istanbul ignore next */ break ret_3; } } /* istanbul ignore else */ if (null != expr_0) { const itm_0 = expr_0.right; /* istanbul ignore else */ if (null != itm_0) { /* istanbul ignore else */ if (itm_0.type === `ident`) { const result_5 = bind_0(expr_0.right, ctx_2); ret_3 = result_5; /* istanbul ignore next */ break ret_3; } } } } const dlst_0 = ret_3; const dlst_1 = str_4(expr_0.left.value, `key`, expr_0.left, dlst_0[1]); return [dlst_1[0], dlst_1[1], dlst_0[0], dlst_1[2]]; }; const transform_imp_rec_0 = (...args_3) => { transform_imp_rec_0: do { const dlst_2 = args_3[0]; const hdm_0 = dlst_2[0]; const expr_1 = undefined === hdm_0 ? false : hdm_0; const uri_id_2 = args_3[1]; const ctx_3 = args_3[2]; const hdm_1 = args_3[3]; const out_0 = undefined === hdm_1 ? [] : hdm_1; /* istanbul ignore else */ if (expr_1 === false) { return [out_0, ctx_3]; } /* istanbul ignore else */ if (null != expr_1) { /* istanbul ignore else */ if (expr_1.type === `rec:kv`) { const dlst_3 = get_key_val_0(expr_1, ctx_3); const dlst_4 = imp_0(uri_id_2, dlst_3[1], dlst_3[2], expr_1, dlst_3[3]); args_3 = [dlst_2.slice(1), uri_id_2, dlst_4[2], [...out_0, ...dlst_3[0], ...dlst_4[0]]]; continue transform_imp_rec_0; } } /* istanbul ignore next */ return; } while (true); }; const transform_imp_0 = (node_0, uri_id_3, ctx_4) => { /* istanbul ignore else */ if (null != node_0) { /* istanbul ignore else */ if (node_0.type === `rec`) { const result_18 = transform_imp_rec_0(node_0.exprs, uri_id_3, ctx_4); return result_18; } } /* istanbul ignore else */ if (null != node_0) { /* istanbul ignore else */ if (node_0.type === `ident`) { const dlst_5 = bind_0(node_0, ctx_4); const dlst_6 = imp_0(uri_id_3, false, dlst_5[0], node_0, dlst_5[1]); return [dlst_6[0], dlst_6[2]]; } } /* istanbul ignore next */ return; }; const transform_import_0 = (node_1, res_id_2, ctx_5) => { const dlst_7 = transform_0(node_1.right, `src`, ctx_5); const dlst_8 = impd_0(dlst_7[1], res_id_2, node_1, dlst_7[2]); return [[...dlst_7[0], ...dlst_8[0]], dlst_8[2]]; }; export const impd = impd_0, imp = imp_0, get_key_val = get_key_val_0, transform_imp_rec = transform_imp_rec_0, transform_imp = transform_imp_0, transform_import = transform_import_0;