ifc-expressions
Version:
Parsing and evaluation of IFC expressions
51 lines (50 loc) • 2.16 kB
TypeScript
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;
}