ifc-expressions
Version:
Parsing and evaluation of IFC expressions
29 lines (28 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EQUALS = void 0;
const Func_js_1 = require("../Func.js");
const FuncArgAny_js_1 = require("../arg/FuncArgAny.js");
const Types_js_1 = require("../../../type/Types.js");
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
const BooleanValue_js_1 = require("../../../value/BooleanValue.js");
class EQUALS extends Func_js_1.Func {
constructor() {
super("EQUALS", [
new FuncArgAny_js_1.FuncArgAny(true, EQUALS.KEY_LEFT),
new FuncArgAny_js_1.FuncArgAny(true, EQUALS.KEY_RIGHT),
]);
}
calculateResult(callingExpr, evaluatedArguments) {
const left = evaluatedArguments.get(EQUALS.KEY_LEFT);
const right = evaluatedArguments.get(EQUALS.KEY_RIGHT);
return new ExprEvalResult_js_1.ExprEvalSuccessObj(BooleanValue_js_1.BooleanValue.of(left.equals(right)));
}
getReturnType(argumentTypes) {
return Types_js_1.Type.BOOLEAN;
}
}
exports.EQUALS = EQUALS;
EQUALS.KEY_LEFT = "left";
EQUALS.KEY_RIGHT = "right";
//# sourceMappingURL=EQUALS.js.map