@fink/loxia
Version:
A fink to JavaScript compiler.
43 lines (36 loc) • 1.07 kB
JavaScript
const types_0 = require("@babel/types");
const {
add: add_0
} = require("../context.js");
const {
get_js: get_js_0
} = require("../context.js");
const {
set_js2: set_js2_0
} = require("../context.js");
const {
transform_unary: transform_unary_0
} = require("../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;
};
exports.transform_binary = transform_binary_0;
exports.add_logical = add_logical_0;