UNPKG

@fink/loxia

Version:

A fink to JavaScript compiler.

87 lines (76 loc) 2.61 kB
import { is_empty as is_empty_0 } from "@fink/std-lib/iter.js"; import { obj_to_json as obj_to_json_0 } from "@fink/std-lib/json.js"; import { parse as parse_0 } from "@fink/larix/parser.js"; import { generate as generate_0 } from "../generate.js"; import { init_ctx as init_ctx_0 } from "../ir/init.js"; import { serialize as serialize_0 } from "../ir/serialize.js"; import { transform as transform_0 } from "../ir/transform.js"; import { optimize as optimize_0 } from "../optimize/init.js"; import { infer_types as infer_types_0 } from "../types/init.js"; const fink2lir_0 = (source_0, options_0) => { const filename_0 = `test.fnk`; const ast_0 = parse_0(source_0, filename_0); const ctx_0 = init_ctx_0(source_0, filename_0, options_0); const dlst_0 = transform_0(ast_0, `mod`, ctx_0); const dlst_1 = optimize_0(dlst_0[0], options_0); const result_5 = serialize_0(dlst_1[0]); return result_5; }; const fink2js_0 = (source_1, options_1) => { const filename_1 = `test.fnk`; const ast_1 = parse_0(source_1, filename_1); /* istanbul ignore else */ if (null != ast_1) { const val_1 = is_empty_0(ast_1.errors); /* istanbul ignore else */ if (true === val_1) { const drec_0 = generate_0(ast_1, filename_1, source_1, options_1); const errors_0 = drec_0.errors; const val_3 = is_empty_0(errors_0); /* istanbul ignore else */ if (true === val_3) { return drec_0.code; } return { errors: errors_0 }; } } return { errors: ast_1.errors }; }; const fink2types_0 = (source_2, options_2) => { const filename_2 = `test.fnk`; const ast_2 = parse_0(source_2, filename_2); const ctx_1 = init_ctx_0(source_2, filename_2, options_2); const dlst_2 = transform_0(ast_2, `mod`, ctx_1); const dlst_3 = infer_types_0(dlst_2[0], options_2); const result_19 = serialize_0(dlst_3[0]); return result_19; }; const pretty_source_map_0 = drec_1 => { const { sourcesContent: _key_18, ...source_map_0 } = drec_1; const result_20 = obj_to_json_0(source_map_0, undefined, 2); return result_20; }; const fink2js_sm_0 = source_3 => { const filename_3 = `test.fnk`; const ast_3 = parse_0(source_3, filename_3); const drec_2 = generate_0(ast_3, filename_3, source_3, { module_type: `mjs`, source_maps: true }); const sx_1 = pretty_source_map_0(drec_2.source_map); return `${drec_2.code} ${sx_1} `; }; export const fink2lir = fink2lir_0, fink2js = fink2js_0, fink2types = fink2types_0, pretty_source_map = pretty_source_map_0, fink2js_sm = fink2js_sm_0;