@fink/loxia
Version:
A fink to JavaScript compiler.
31 lines (28 loc) • 1.05 kB
JavaScript
import types_0 from "@babel/types";
import { add as add_0 } from "../context.js";
import { get_js as get_js_0 } from "../context.js";
import { set_js2 as set_js2_0 } from "../context.js";
import { transform_unary as transform_unary_0 } from "../transform.js";
const transform_binary_0 = jsop_0 => {
return (expr_0, ctx_0) => {
const val_0 = expr_0[0].args;
const left_0 = get_js_0(val_0[0], ctx_0);
const right_0 = get_js_0(val_0[1], ctx_0);
const js_0 = types_0.logicalExpression(jsop_0, left_0, right_0);
const result_5 = set_js2_0(expr_0, js_0, ctx_0);
return result_5;
};
};
const add_logical_0 = ctx_1 => {
const arg_11 = transform_binary_0(`&&`);
const pfn_0 = add_0(`and`, arg_11);
const ppr_0 = pfn_0(ctx_1);
const arg_14 = transform_binary_0(`||`);
const pfn_1 = add_0(`or`, arg_14);
const ppr_1 = pfn_1(ppr_0);
const pfn_2 = add_0(`not`, transform_unary_0);
const ppr_2 = pfn_2(ppr_1);
return ppr_2;
};
export const transform_binary = transform_binary_0,
add_logical = add_logical_0;