rulescribe
Version:
Typescript rule engine
17 lines (16 loc) • 789 B
TypeScript
import { FunctionDefinition, FunctionType, RuleDefenition, Token } from "./interfaces";
export default class EngineScope {
readonly builtinFunction: Map<string, FunctionDefinition<CallableFunction>>;
private symbols;
private funcs;
private rules;
constructor(builtinFunction?: Map<string, FunctionDefinition<CallableFunction>>, symbols?: Map<string, any>);
define(name: string, value: any): void;
lookup(name: string): any;
declare(name: string, parameters: string[], body: Token[]): void;
addRule(name: string, rule: RuleDefenition): void;
getRule(name: string): RuleDefenition | undefined;
getRuleNames(): string[];
functionType(name: string): FunctionType;
getFunc(name: string): FunctionDefinition<Token[] | Function> | undefined;
}