UNPKG

ifc-expressions

Version:

Parsing and evaluation of IFC expressions

19 lines (18 loc) 1.38 kB
import { IfcExpressionContext } from "../context/IfcExpressionContext.js"; import { ExprBase } from "./ExprBase.js"; import { ExprKind } from "./ExprKind.js"; import { ExprEvalError, ExprEvalResult } from "./ExprEvalResult.js"; import { Expr } from "./Expr.js"; export declare abstract class Expr2<L, R, E> extends ExprBase<E> { readonly left: Expr<L>; readonly right: Expr<R>; protected constructor(exprKind: ExprKind, left: Expr<L>, right: Expr<R>); getChildren(): Array<Expr<any>>; protected abstract calculateResult(ctx: IfcExpressionContext, localCtx: Map<string, any>, leftOperand: L, rightOperand: R): E | ExprEvalError; protected onBeforeRecursion(ctx: IfcExpressionContext, localCtx: Map<string, any>): void; protected onAfterLeftRecursion(ctx: IfcExpressionContext, localCtx: Map<string, any>, leftResult: L): void; evaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): ExprEvalResult<E>; protected makeResultForRightSubExprError(ctx: IfcExpressionContext, localCtx: Map<string, any>, leftResult: ExprEvalResult<L>, rightResult: ExprEvalError): ExprEvalResult<E>; protected makeErrorForLeftSubExprError(ctx: IfcExpressionContext, localCtx: Map<string, any>, leftResult: ExprEvalError): ExprEvalError; protected handleError(error: any, leftResult: ExprEvalResult<L>, rightResult: ExprEvalResult<R>): ExprEvalError; }