UNPKG

ifc-expressions

Version:

Parsing and evaluation of IFC expressions

51 lines (50 loc) 2.16 kB
import { ExprType } from "../type/ExprType.js"; import { Expr } from "../expression/Expr.js"; import { ArgumentDocumentation, LocalizedText } from "../documentation/Documentation.js"; export type BuiltinPropertyDefinition = { name: string; kind: "property"; valueType: ExprType; documentation?: LocalizedText; }; export type BuiltinFunctionDefinition = { name: string; kind: "function"; returnType: ExprType; argumentTypes: Array<ExprType>; documentation?: LocalizedText; argumentDocumentation?: Array<ArgumentDocumentation>; }; export type BuiltinMemberDefinition = BuiltinPropertyDefinition | BuiltinFunctionDefinition; export declare function isBuiltinPropertyDefinition(definition: BuiltinMemberDefinition | undefined): definition is BuiltinPropertyDefinition; export declare function isBuiltinFunctionDefinition(definition: BuiltinMemberDefinition | undefined): definition is BuiltinFunctionDefinition; export type BuiltinVariableDefinition = { name: string; type?: ExprType; documentation?: LocalizedText; members?: Array<BuiltinMemberDefinition>; createReferenceExpr?: () => Expr<any>; }; export type RegisteredBuiltinVariableDefinition = { name: string; type: ExprType; documentation?: LocalizedText; members: Map<string, BuiltinMemberDefinition>; createReferenceExpr: () => Expr<any>; }; export declare class BuiltinVariableRegistry { private static readonly defaultRegistry; private readonly builtinVariables; constructor(definitions?: Array<BuiltinVariableDefinition>); static getDefaultRegistry(): BuiltinVariableRegistry; static normalizeName(name: string): string; static isBuiltinVariable(name: string): boolean; static isReservedName(name: string): boolean; static getDefinition(name: string): RegisteredBuiltinVariableDefinition | undefined; isBuiltinVariable(name: string): boolean; isReservedName(name: string): boolean; getDefinition(name: string): RegisteredBuiltinVariableDefinition | undefined; getDefinitions(): Array<RegisteredBuiltinVariableDefinition>; private register; private registerMembers; }