UNPKG

@fink/loxia

Version:

A fink to JavaScript compiler.

322 lines (281 loc) 8.35 kB
const { _in_ } = require("@fink/js-interop/runtime.js"); const { replace_all: replace_all_0 } = require("@fink/std-lib/regex.js"); const { rx: rx_0 } = require("@fink/std-lib/regex.js"); const { join: join_0 } = require("@fink/std-lib/iter.js"); const { map: map_0 } = require("@fink/std-lib/iter.js"); const t2s_0 = tpe_0 => { /* istanbul ignore else */ if (null != tpe_0) { /* istanbul ignore else */ if (undefined !== tpe_0.r) { const sx_7 = t2s_0(tpe_0.r); return `${tpe_0.t}: ${sx_7}`; } } /* istanbul ignore else */ if (null != tpe_0) { const itm_2 = tpe_0.i; /* istanbul ignore else */ if (null != itm_2) { /* istanbul ignore else */ if (undefined !== itm_2[0]) { const pfn_3 = map_0(t2s_0); const ppr_3 = pfn_3(tpe_0.i); const pfn_4 = join_0(`, `); const ppr_4 = pfn_4(ppr_3); return `${tpe_0.t}[${ppr_4}]`; } } } /* istanbul ignore else */ if (null != tpe_0) { /* istanbul ignore else */ if (undefined !== tpe_0.e) { const pfn_0 = map_0(dlst_0 => { const sx_1 = t2s_0(dlst_0[1]); return `${dlst_0[0]}: ${sx_1}`; }); const ppr_0 = pfn_0(tpe_0.e); const pfn_1 = join_0(`, `); const ppr_1 = pfn_1(ppr_0); const ppr_2 = (kvs_0 => { /* istanbul ignore else */ if (kvs_0 === ``) { return tpe_0.t; } return `${tpe_0.t}{${kvs_0}}`; })(ppr_1); return ppr_2; } } /* istanbul ignore else */ if (null != tpe_0) { /* istanbul ignore else */ if (undefined !== tpe_0.t) { return tpe_0.t; } } /* istanbul ignore next */ return; }; const a2s_0 = (...args_13) => { a2s_0: do { const dlst_1 = args_13[0]; const hdm_0 = dlst_1[0]; const arg_6 = undefined === hdm_0 ? false : hdm_0; const tail_7 = dlst_1.slice(1); const hdm_1 = args_13[1]; const out_0 = undefined === hdm_1 ? [] : hdm_1; /* istanbul ignore else */ if (arg_6 === false) { /* istanbul ignore else */ if (null != out_0) { /* istanbul ignore else */ if (undefined !== out_0[0]) { const callee_10 = join_0(`, `); const sx_10 = callee_10(out_0); return ` ${sx_10}`; } } return ``; } /* istanbul ignore else */ if (null != arg_6) { /* istanbul ignore else */ if (undefined !== arg_6.t) { /* istanbul ignore else */ if (undefined !== arg_6.i) { const sx_9 = t2s_0(arg_6.t); args_13 = [tail_7, [...out_0, `${arg_6.i}(${sx_9})`]]; continue a2s_0; } } } /* istanbul ignore else */ if (null != arg_6) { /* istanbul ignore else */ if (undefined !== arg_6.i) { args_13 = [tail_7, [...out_0, arg_6.i]]; continue a2s_0; } } args_13 = [tail_7, [...out_0, arg_6]]; continue a2s_0; } while (true); }; const raw_0 = s_0 => { const result_17 = replace_all_0(s_0, rx_0`(\n)`, `\\n`); return result_17; }; const ops_0 = { "==": `eq`, "!=": `neq`, ">": `gt`, "<": `lt`, ">=": `gte`, "<=": `lte`, "+": `add`, "-": `sub`, "*": `mul`, "^": `pow`, "/": `div`, "%": `rem` }; const serialize_0 = (...args_16) => { serialize_0: do { const dlst_2 = args_16[0]; const hdm_2 = dlst_2[0]; const curr_0 = undefined === hdm_2 ? false : hdm_2; const tail_12 = dlst_2.slice(1); const hdm_3 = args_16[1]; const out_1 = undefined === hdm_3 ? `` : hdm_3; const hdm_4 = args_16[2]; const indent_0 = undefined === hdm_4 ? `` : hdm_4; /* istanbul ignore else */ if (curr_0 === false) { return out_1; } /* istanbul ignore else */ if (null != curr_0) { const itm_26 = curr_0[0]; /* istanbul ignore else */ if (null != itm_26) { /* istanbul ignore else */ if (itm_26.f === `=`) { const sx_54 = a2s_0(curr_0[1]); args_16 = [tail_12, `${out_1}\n${indent_0}id ${curr_0[0].args[0].i}, fn${sx_54}:`, ` ${indent_0}`]; continue serialize_0; } } } /* istanbul ignore else */ if (null != curr_0) { const itm_24 = curr_0[0]; /* istanbul ignore else */ if (null != itm_24) { /* istanbul ignore else */ if (true === _in_(itm_24.f, [`str`, `int`, `float`])) { const drec_6 = curr_0[0]; const sx_48 = raw_0(drec_6.args[0]); const sx_49 = a2s_0(curr_0[1]); args_16 = [tail_12, `${out_1}\n${indent_0}${drec_6.f} \'${sx_48}\', fn${sx_49}:`, ` ${indent_0}`]; continue serialize_0; } } } /* istanbul ignore else */ if (null != curr_0) { const itm_22 = curr_0[0]; /* istanbul ignore else */ if (null != itm_22) { /* istanbul ignore else */ if (true === _in_(itm_22.f, [`lst`, `rec`])) { const sx_43 = a2s_0(curr_0[1]); args_16 = [tail_12, `${out_1}\n${indent_0}${curr_0[0].f}_e fn${sx_43}:`, ` ${indent_0}`]; continue serialize_0; } } } /* istanbul ignore else */ if (null != curr_0) { const itm_15 = curr_0[0]; /* istanbul ignore else */ if (null != itm_15) { /* istanbul ignore else */ if (itm_15.f === `fn`) { const itm_17 = itm_15.args; /* istanbul ignore else */ if (null != itm_17) { const itm_18 = itm_17[0]; /* istanbul ignore else */ if (null != itm_18) { /* istanbul ignore else */ if (undefined !== itm_18[0]) { /* istanbul ignore else */ if (undefined !== itm_18[1]) { /* istanbul ignore else */ if (undefined !== itm_18[2]) { const drec_4 = curr_0[0]; const val_18 = drec_4.args; const sx_33 = a2s_0(val_18[0]); const sx_35 = serialize_0(val_18[1], ``, ` ${indent_0}`); const sx_38 = a2s_0(curr_0[1]); args_16 = [tail_12, `${out_1}\n${indent_0}z (fn${sx_33}: #${drec_4.f}${sx_35} ${indent_0}), fn${sx_38}:`, ` ${indent_0}`]; continue serialize_0; } } } } } } } } /* istanbul ignore else */ if (null != curr_0) { const itm_13 = curr_0[0]; /* istanbul ignore else */ if (null != itm_13) { /* istanbul ignore else */ if (true === _in_(itm_13.f, [`cn`, `fn`])) { const drec_3 = curr_0[0]; const val_16 = drec_3.args; const sx_24 = a2s_0(val_16[0]); const sx_26 = serialize_0(val_16[1], ``, ` ${indent_0}`); const sx_29 = a2s_0(curr_0[1]); args_16 = [tail_12, `${out_1}\n${indent_0}id (fn${sx_24}: #${drec_3.f}${sx_26} ${indent_0}), fn${sx_29}:`, ` ${indent_0}`]; continue serialize_0; } } } /* istanbul ignore else */ if (null != curr_0) { const itm_11 = curr_0[0]; /* istanbul ignore else */ if (null != itm_11) { /* istanbul ignore else */ if (true === _in_(itm_11.f, [`cc`, `cif`, `cf`])) { const drec_2 = curr_0[0]; const sx_20 = a2s_0(drec_2.args); args_16 = [tail_12, `${out_1}\n${indent_0}${drec_2.f}${sx_20}`, ` ${indent_0}`]; continue serialize_0; } } } /* istanbul ignore else */ if (null != curr_0) { const itm_9 = curr_0[1]; /* istanbul ignore else */ if (null != itm_9) { /* istanbul ignore else */ if (undefined !== itm_9[0]) { const drec_0 = curr_0[0]; const f_0 = drec_0.f; const hdm_5 = ops_0[f_0]; const sx_14 = a2s_0(drec_0.args); const sx_15 = a2s_0(curr_0[1]); args_16 = [tail_12, `${out_1}\n${indent_0}${undefined === hdm_5 ? f_0 : hdm_5}${sx_14}, fn${sx_15}:`, ` ${indent_0}`]; continue serialize_0; } } } /* istanbul ignore next */ return; } while (true); }; exports.t2s = t2s_0; exports.a2s = a2s_0; exports.raw = raw_0; exports.ops = ops_0; exports.serialize = serialize_0;