UNPKG

onelang

Version:

OneLang transpiler framework core

41 lines (40 loc) 1.72 kB
import { ExprLangAst as Ast } from "./ExprLangAst"; export interface IModelHandler { methodCall(method: any, args: any[], thisObj: object, model: object): any; memberAccess(obj: object, memberName: string | number, isProperty: boolean): any; } export declare class JSModelHandler implements IModelHandler { static methodCall(method: any, args: any[], thisObj: object, model: object): any; static memberAccess(obj: object, memberName: string | number, isProperty: boolean): any; methodCall(method: any, args: any[], thisObj: object, model: object): any; memberAccess(obj: object, memberName: string | number, isProperty: boolean): any; } export declare class VariableSource { name: string; vars: { [varName: string]: any; }; callbacks: { [varName: string]: () => any; }; constructor(name: string); checkUnique(varName: string, allowOverwrite?: boolean): void; addCallback(varName: string, callback: () => any): void; setVariable(varName: string, value: any, allowOverwrite?: boolean): void; getVariable(varName: string): any; printAll(): string; static createSingle(varName: string, value: any, sourceName?: string): VariableSource; static fromObject(obj: object, sourceName?: string): VariableSource; } export declare class VariableContext { sources: VariableSource[]; constructor(sources?: VariableSource[]); inherit(...newSources: VariableSource[]): VariableContext; getVariable(varName: string): any; printAll(): string; } export declare class ExprLangVM { modelHandler: IModelHandler; constructor(modelHandler?: IModelHandler); evaluate(expr: Ast.Expression, vars?: VariableContext): any; }