UNPKG

ifc-expressions

Version:

Parsing and evaluation of IFC expressions

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