@fink/loxia
Version:
A fink to JavaScript compiler.
48 lines (42 loc) • 1.43 kB
JavaScript
import { add as add_0 } from "../context.js";
import { any as any_0 } from "../context.js";
import { transform as transform_0 } from "../transform.js";
const transform_exprs_0 = (...args_0) => {
transform_exprs_0: do {
const dlst_0 = args_0[0];
const expr_0 = dlst_0[0];
const tail_1 = dlst_0.slice(1);
const res_id_0 = args_0[1];
const ctx_0 = args_0[2];
const hdm_0 = args_0[3];
const out_0 = undefined === hdm_0 ? [] : hdm_0;
/* istanbul ignore else */
if (null != tail_1) {
/* istanbul ignore else */
if (undefined !== dlst_0[1]) {
const dlst_2 = transform_0(expr_0, `blkv`, ctx_0);
args_0 = [tail_1, res_id_0, dlst_2[2], [...out_0, ...dlst_2[0]]];
continue transform_exprs_0;
}
}
const dlst_1 = transform_0(expr_0, res_id_0, ctx_0);
return [[...out_0, ...dlst_1[0]], dlst_1[2]];
} while (true);
};
const transform_block_0 = (expr_1, res_id_1, ctx_1) => {
const scopes_0 = ctx_1.scopes;
const dlst_3 = transform_exprs_0(expr_1.exprs, res_id_1, { ...ctx_1,
scopes: [{}, ...scopes_0]
});
return [dlst_3[0], { ...dlst_3[1],
scopes: scopes_0
}];
};
const add_block_0 = ctx_2 => {
const pfn_0 = add_0(`block`, any_0, transform_block_0);
const ppr_0 = pfn_0(ctx_2);
return ppr_0;
};
export const transform_exprs = transform_exprs_0,
transform_block = transform_block_0,
add_block = add_block_0;