UNPKG

@eagleoutice/flowr-dev

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

41 lines 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TernaryLogic = exports.Ternary = void 0; // diverging from boolean | maybe requires explicit handling var Ternary; (function (Ternary) { Ternary["Always"] = "always"; Ternary["Maybe"] = "maybe"; Ternary["Never"] = "never"; })(Ternary || (exports.Ternary = Ternary = {})); exports.TernaryLogic = { name: 'Ternary', negate(value) { if (value === Ternary.Always) { return Ternary.Never; } else if (value === Ternary.Never) { return Ternary.Always; } return Ternary.Maybe; }, or(...values) { if (values.includes(Ternary.Always)) { return Ternary.Always; } else if (values.includes(Ternary.Maybe)) { return Ternary.Maybe; } return Ternary.Never; }, and(...values) { if (values.every(value => value === Ternary.Always)) { return Ternary.Always; } else if (values.every(value => value === Ternary.Always || value === Ternary.Maybe)) { return Ternary.Maybe; } return Ternary.Never; } }; //# sourceMappingURL=logic.js.map