ifc-expressions
Version:
Parsing and evaluation of IFC expressions
32 lines (31 loc) • 1.03 kB
JavaScript
import { LiteralExpr } from "../LiteralExpr.js";
import { ExprKind } from "../ExprKind.js";
import { Type } from "../../type/Types.js";
import { LogicalValue } from "../../value/LogicalValue.js";
export class LogicalLiteralExpr extends LiteralExpr {
constructor(value) {
super(ExprKind.LOGICAL_LITERAL, value);
}
calculateResult(ctx) {
return LogicalValue.of(this.value);
}
buildExprString(builder) {
switch (this.value) {
case LogicalValue.UNKNOWN_VALUE:
builder.appendString(LogicalValue.UNKNOWN_VALUE);
break;
case true:
builder.appendString("TRUE");
break;
case false:
builder.appendString("FALSE");
break;
default:
throw new Error("Cannot build exprString for logical value " + JSON.stringify(this));
}
}
getType() {
return Type.LOGICAL;
}
}
//# sourceMappingURL=LogicalLiteralExpr.js.map