ifc-expressions
Version:
Parsing and evaluation of IFC expressions
28 lines (27 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DivideExpr = void 0;
const Expr2_js_1 = require("../Expr2.js");
const NumericValue_js_1 = require("../../value/NumericValue.js");
const ExprKind_js_1 = require("../ExprKind.js");
const ExprEvalResult_js_1 = require("../ExprEvalResult.js");
const Types_js_1 = require("../../type/Types.js");
class DivideExpr extends Expr2_js_1.Expr2 {
constructor(left, right) {
super(ExprKind_js_1.ExprKind.NUM_DIVIDE, left, right);
}
calculateResult(ctx, localCtx, left, right) {
return NumericValue_js_1.NumericValue.of(left.getValue().dividedBy(right.getValue()));
}
handleError(error, leftResult, rightResult) {
return new ExprEvalResult_js_1.ExprEvalError2Obj(error, leftResult, rightResult, ExprEvalResult_js_1.ExprEvalStatus.MATH_ERROR, error, this.getTextSpan());
}
buildExprString(builder) {
builder.appendExpr(this.left).appendString(" / ").appendExpr(this.right);
}
getType() {
return Types_js_1.Type.NUMERIC;
}
}
exports.DivideExpr = DivideExpr;
//# sourceMappingURL=DivideExpr.js.map