UNPKG

mathjslab

Version:

MathJSLab - An interpreter with language syntax like MATLAB®/Octave, ISBN 978-65-00-82338-7.

55 lines (54 loc) 2.3 kB
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;