UNPKG

angel-eval

Version:

A conditional expression parser and interpreter.

62 lines (45 loc) 1.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _Evaluatable = _interopRequireDefault(require("../Evaluatable")); var _utils = require("../utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class ConditionalExpression extends _Evaluatable.default { constructor(leftNode, rightNode, operator) { super(); this.leftNode = leftNode; this.rightNode = rightNode; this.operator = operator; } evaluate(context) { const left = (0, _utils.evaluateNode)(this.leftNode, context); const right = (0, _utils.evaluateNode)(this.rightNode, context); switch (this.operator) { // case "==": // return left == right; // case "!=": // return left != right; case "===": return left === right; case "!==": return left !== right; case "<=": return left <= right; case "<": return left < right; case ">=": return left >= right; case ">": return left > right; case "&&": return left && right; case "||": return left || right; } throw new Error(this.operator + " not implemented"); } } var _default = ConditionalExpression; exports.default = _default;