UNPKG

ifc-expressions

Version:

Parsing and evaluation of IFC expressions

24 lines (23 loc) 1.24 kB
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; }