UNPKG

nerdamer-ts

Version:

javascript light-weight symbolic math expression evaluator

56 lines (55 loc) 1.63 kB
declare type OperationFunction = (...args: any) => any; declare type OperatorsDependencies = { registerOperator: (name: string, operation?: OperationFunction) => void; }; export declare type OperatorDescriptor = { precedence: number; operator: string; action: string; prefix: boolean; postfix: boolean; leftAssoc: boolean; operation?: OperationFunction; overloaded?: boolean; overloadAction?: string; overloadLeftAssoc?: boolean; vectorFn?: string; value?: any; }; export declare type Bracket = { type: string; id: number; is_open: boolean; is_close: boolean; maps_to?: string; }; export declare type Brackets = Record<string, Bracket>; export declare class OperatorDictionary { private deps; private operators; constructor(); injectOperatorsDeps(depsFunction: OperatorsDependencies): void; brackets: Brackets; /** * Replaces nerdamer.setOperator * @param {object} operator * @param action * @param {'over' | 'under'} shift */ setOperator(operator: OperatorDescriptor, action?: OperationFunction, shift?: 'over' | 'under'): void; /** * Gets an opererator by its symbol * @param {String} operator * @returns {OperatorDescriptor} */ getOperator(operator: string): OperatorDescriptor; aliasOperator(o: string, n: string): void; /** * Returns the list of operators. Caution! Can break parser! * @returns {object} */ getOperators(): Record<string, OperatorDescriptor>; getBrackets(): Brackets; isOperator(name: string): boolean; } export {};