@fink/larix
Version:
A parser for generating fink's AST.
101 lines (84 loc) • 1.81 kB
JavaScript
const {
map,
fold
} = require("@fink/std-lib/iter.js");
const {
serialize
} = require("./serialize.js");
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);
}
};
exports.print = print;
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;
}
};
exports.test = test;
const jest_serializer = {
print,
test
};
exports.jest_serializer = jest_serializer;