UNPKG

@fink/larix

Version:

A parser for generating fink's AST.

88 lines (76 loc) 1.72 kB
import { map, fold } from "@fink/std-lib/iter.js"; import { serialize } from "./serialize.js"; export const print = ast => { const ˆvalue_1 = ast; /* istanbul ignore else */ if (ˆvalue_1 != null) { const { errors: ˆp_3 } = ˆvalue_1; /* istanbul ignore else */ if (typeof ˆp_3?.[Symbol.iterator] === "function") { const [ˆa_4] = ˆp_3; /* istanbul ignore else */ if (ˆa_4 != null) { { const { errors } = ast; let _do_result; { let ˆpipe_result_5 = errors; ˆpipe_result_5 = map(({ error }) => error)(ˆpipe_result_5); _do_result = ˆpipe_result_5 = fold(``, (err, str) => `${str}${err}\n`)(ˆpipe_result_5); } const errors_text = _do_result; _do_result = undefined; return `${serialize(ast)} error: ${errors_text} `; } } } } { return serialize(ast); } }; export const test = val => { const ˆvalue_6 = val; /* istanbul ignore else */ if (ˆvalue_6 != null) { const { type: ˆp_8, loc: ˆp_9 } = ˆvalue_6; /* istanbul ignore else */ if (ˆp_8 != null) /* istanbul ignore else */ if (ˆp_9 != null) { return true; } } /* istanbul ignore else */ if (ˆvalue_6 != null) { const { type: ˆp_10, errors: ˆp_11 } = ˆvalue_6; /* istanbul ignore else */ if (ˆp_10 != null) /* istanbul ignore else */ if (typeof ˆp_11?.[Symbol.iterator] === "function") { return true; } } { return false; } }; export const jest_serializer = { print, test };