import { DepType, ParserContext, ParsedResult } from './data'; /** * 合并依赖 * 比如 第一次调用 getCells => {cells:[1]} * 第二次调用 getCells => {cells: [1,3]} * 则最终依赖为: {cells: [1,3]} // 注意已去重 * @param o 老依赖 * @param n 要添加的依赖 * @return 新依赖 */ export declare function mergeDeps(o: Record, n: Record): { variables: string[]; cells: string[]; }; declare class Parser { parser: any; variables: Record; functions: Record; context: ParserContext; deps: Record; constructor(context: ParserContext); parse(expression: string): { error: string | null; result: any; }; parseWithDeps(express: string): ParsedResult; setVariable(name: string, value: any): this; getVariable(name: string): any; setFunction(name: string, f: Function): this; /** * 直接调用方法 * 与getFunction的区别: 需要在这里处理依赖和错误 * 也就是, 某些function直接返回数据, 而某些将返回ParserResult结构 * **** 注意: 返回依赖的计算, 必定使用些方法, 而不可直接yy.xx *** */ callFunction(name: string, args: any): any; /** * @deprecated * 无法搜集依赖, 改用callFunction */ getFunction(name: string): Function; _throwError(errorName: string): void; } export default Parser;