ifc-expressions
Version:
Parsing and evaluation of IFC expressions
23 lines (22 loc) • 1.06 kB
TypeScript
import { Expr } from "./Expr.js";
import { IfcExpressionContext } from "../context/IfcExpressionContext.js";
import { ExprEvalError, ExprEvalResult } from "./ExprEvalResult.js";
import { ExprKind } from "./ExprKind.js";
import { ExprType } from "../type/ExprType.js";
import { TextSpan } from "../util/TextSpan.js";
import { ExprStringBuilder } from "./ExprStringBuilder.js";
export declare abstract class ExprBase<T> implements Expr<T> {
private readonly exprKind;
private textSpan?;
protected constructor(exprKind: ExprKind);
setTextSpan(ctx: TextSpan): void;
getTextSpan(): TextSpan | undefined;
abstract getChildren(): Array<Expr<any>>;
abstract evaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): ExprEvalResult<T>;
getKind(): ExprKind;
protected wrapInResultIfNecessary(result: T | ExprEvalError): ExprEvalResult<T>;
private hasTextSpan;
toExprString(builder?: ExprStringBuilder): string;
protected abstract buildExprString(builder: ExprStringBuilder): void;
abstract getType(): ExprType;
}