mathjslab
Version:
MathJSLab - An interpreter with language syntax like MATLAB®/Octave, ISBN 978-65-00-82338-7.
55 lines (54 loc) • 2.3 kB
TypeScript
import type { BuiltInFunctionInputSignature, NodeBuiltInFunction, NodeInput } from './AST';
/**
* Utilities for the declarative built-in function signature table.
*
* Signatures describe valid input/output arities and parameter validators in a
* form that can be shared by built-ins instead of hand-written argument checks.
*/
declare class FunctionSignature {
/**
* Normalize a built-in's input signature declaration to an array.
*/
static inputSignatures(node: NodeBuiltInFunction): BuiltInFunctionInputSignature[];
/**
* Normalize a built-in's output signature declaration to an array.
*/
static outputSignatures(node: NodeBuiltInFunction): BuiltInFunctionInputSignature[];
/**
* Minimum accepted argument count for one signature.
*/
static arityMinimum(signature: BuiltInFunctionInputSignature): number;
/**
* Maximum accepted argument count for one signature.
*/
static arityMaximum(signature: BuiltInFunctionInputSignature): number;
/**
* Return the 1-based variadic position, when a signature is variadic.
*/
static variadicPosition(signature: BuiltInFunctionInputSignature, preferParameterPosition?: boolean): number | undefined;
/**
* Derive the `nargin`/`nargout` display arity for one or more overloads.
*/
static declaredArity(signatures: BuiltInFunctionInputSignature[]): number | undefined;
/**
* Check whether a count satisfies one signature's arity interval.
*/
static arityMatches(signature: BuiltInFunctionInputSignature, argCount: number): boolean;
/**
* Return input overloads whose arity matches the supplied arguments.
*/
static matchingInputSignatures(node: NodeBuiltInFunction, argCount: number): BuiltInFunctionInputSignature[];
/**
* Check whether a built-in accepts the supplied number of inputs.
*/
static inputArityIsValid(node: NodeBuiltInFunction, argCount: number): boolean;
/**
* Check whether at least one matching overload accepts the argument values.
*/
static inputParametersAreValid(node: NodeBuiltInFunction, args: NodeInput[]): boolean;
}
export { FunctionSignature };
declare const _default: {
FunctionSignature: typeof FunctionSignature;
};
export default _default;