UNPKG

ifc-expressions

Version:

Parsing and evaluation of IFC expressions

28 lines (27 loc) 1.8 kB
import { ExpressionValue } from "../../value/ExpressionValue.js"; import { FuncArg } from "./FuncArg.js"; import { ExprEvalError, ExprEvalResult } from "../ExprEvalResult.js"; import { ExprType } from "../../type/ExprType.js"; import { ParserRuleContext } from "antlr4ng"; import { FunctionExpr } from "./FunctionExpr.js"; import { Expr } from "../Expr.js"; import { LocalizedText } from "../../documentation/Documentation.js"; export declare abstract class Func { protected name: string; protected formalArguments: Array<FuncArg<unknown>>; protected documentationRef?: LocalizedText; protected constructor(name: string, args: Array<FuncArg<unknown>>); abstract getReturnType(argumentTypes: Array<ExprType>): ExprType; withDocumentation(documentation: LocalizedText): this; getDocumentation(): LocalizedText | undefined; getFormalArguments(): ReadonlyArray<FuncArg<unknown>>; getSignatureLabel(displayName?: string): string; checkArgumentsAndGetReturnType(argumentTypes: Array<[ParserRuleContext, ExprType]>, ctx: any): ExprType; protected checkArgumentTypes(providedArgumentTypes: Array<[ParserRuleContext, ExprType]>, ctx: any): void; getName(): string; evaluate(callingExpr: FunctionExpr, funcArgs: Array<ExprEvalResult<ExpressionValue>>): ExprEvalResult<ExpressionValue>; protected abstract calculateResult(callingExpr: FunctionExpr, evaluatedArguments: Map<string, ExpressionValue>): ExprEvalResult<ExpressionValue>; protected transformArguments(callingExpr: Expr<any>, evaluatedArguments: Map<string, ExprEvalResult<ExpressionValue>>): void; protected getArgumentValues(callingExpr: FunctionExpr, provided: Array<ExprEvalResult<ExpressionValue>>): Map<string, ExprEvalResult<ExpressionValue>> | ExprEvalError; private checkArgs; }