UNPKG

@fink/loxia

Version:

A fink to JavaScript compiler.

113 lines (94 loc) 2.67 kB
const { is_empty: is_empty_0 } = require("@fink/std-lib/iter.js"); const { obj_to_json: obj_to_json_0 } = require("@fink/std-lib/json.js"); const { parse: parse_0 } = require("@fink/larix/parser.js"); const { generate: generate_0 } = require("../generate.js"); const { init_ctx: init_ctx_0 } = require("../ir/init.js"); const { serialize: serialize_0 } = require("../ir/serialize.js"); const { transform: transform_0 } = require("../ir/transform.js"); const { optimize: optimize_0 } = require("../optimize/init.js"); const { infer_types: infer_types_0 } = require("../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} `; }; exports.fink2lir = fink2lir_0; exports.fink2js = fink2js_0; exports.fink2types = fink2types_0; exports.pretty_source_map = pretty_source_map_0; exports.fink2js_sm = fink2js_sm_0;