ifc-expressions
Version:
Parsing and evaluation of IFC expressions
25 lines (24 loc) • 884 B
JavaScript
import { Func } from "../Func.js";
import { FuncArgAny } from "../arg/FuncArgAny.js";
import { Type } from "../../../type/Types.js";
import { ExprEvalSuccessObj } from "../../ExprEvalResult.js";
import { BooleanValue } from "../../../value/BooleanValue.js";
export class EQUALS extends Func {
constructor() {
super("EQUALS", [
new FuncArgAny(true, EQUALS.KEY_LEFT),
new FuncArgAny(true, EQUALS.KEY_RIGHT),
]);
}
calculateResult(callingExpr, evaluatedArguments) {
const left = evaluatedArguments.get(EQUALS.KEY_LEFT);
const right = evaluatedArguments.get(EQUALS.KEY_RIGHT);
return new ExprEvalSuccessObj(BooleanValue.of(left.equals(right)));
}
getReturnType(argumentTypes) {
return Type.BOOLEAN;
}
}
EQUALS.KEY_LEFT = "left";
EQUALS.KEY_RIGHT = "right";
//# sourceMappingURL=EQUALS.js.map