ifc-expressions
Version:
Parsing and evaluation of IFC expressions
24 lines (23 loc) • 1.24 kB
TypeScript
import { IfcExpressionContext } from "../context/IfcExpressionContext.js";
import { ExprKind } from "./ExprKind.js";
import { ExprEvalError, ExprEvalResult } from "./ExprEvalResult.js";
import { ExprBase } from "./ExprBase.js";
import { Expr } from "./Expr.js";
export declare abstract class Expr1<V, E> extends ExprBase<E> {
readonly sub: Expr<V>;
protected constructor(exprKind: ExprKind, sub: Expr<V>);
getChildren(): Array<Expr<any>>;
protected abstract calculateResult(ctx: IfcExpressionContext, localCtx: Map<string, any>, subExpressionResult: V): E | ExprEvalError;
/**
* Override to generate a more specific error result.
* @param ctx
* @param localCtx
* @param subExpressionResult
* @protected
*/
protected obtainResultForSubExpressionError(ctx: IfcExpressionContext, localCtx: Map<string, any>, subExpressionResult: ExprEvalError): ExprEvalResult<E>;
private makeErrorOrCalculate;
protected onBeforeRecusion(ctx: IfcExpressionContext, localCtx: Map<string, any>): undefined | ExprEvalError;
evaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): ExprEvalResult<E>;
protected handleError(error: any, subResult: ExprEvalResult<V>): ExprEvalError;
}