UNPKG

mathup

Version:

Easy MathML authoring tool with a quick to write syntax

79 lines 2.29 kB
/** * @typedef {"command" * | "ident" * | "infix" * | "number" * | "operator" * | "paren.close" * | "paren.open" * | "prefix" * | "sep.col" * | "sep.row" * | "space" * | "text"} TokenType * * @typedef {object} Token * @property {TokenType} type * @property {string} value * @property {string} [accent] * @property {number} [arity] * @property {string} [name] * @property {boolean} [split] - Can be broken up into smaller units. * @property {boolean} [sep] - Can function as a group seperator. * @property {Record<string, string | number | boolean | null | undefined>} [attrs] * @property {Token[]} [extraTokensAfter] * * @typedef {object} State * @property {number} start * @property {boolean} grouping * * @typedef {object} TokenizerOptions * @property {string} [decimalMark="."] - Decimal separator. Default is `"."` * @property {string} [colSep=","] - Column separator e.g. for arrays and * matrices. Default is `","` * @property {string} [rowSep=";"] - Row separator e.g. for matrices. Default is * `";"` * * @param {Required<TokenizerOptions>} options * @returns {(input: string) => Generator<Token>} */ export default function createTokenizer(options: Required<TokenizerOptions>): (input: string) => Generator<Token>; export type TokenType = "command" | "ident" | "infix" | "number" | "operator" | "paren.close" | "paren.open" | "prefix" | "sep.col" | "sep.row" | "space" | "text"; export type Token = { type: TokenType; value: string; accent?: string; arity?: number; name?: string; /** * - Can be broken up into smaller units. */ split?: boolean; /** * - Can function as a group seperator. */ sep?: boolean; attrs?: Record<string, string | number | boolean | null | undefined>; extraTokensAfter?: Token[]; }; export type State = { start: number; grouping: boolean; }; export type TokenizerOptions = { /** * - Decimal separator. Default is `"."` */ decimalMark?: string; /** * - Column separator e.g. for arrays and * matrices. Default is `","` */ colSep?: string; /** * - Row separator e.g. for matrices. Default is * `";"` */ rowSep?: string; }; //# sourceMappingURL=index.d.ts.map