mathup
Version:
Easy MathML authoring tool with a quick to write syntax
79 lines • 2.29 kB
TypeScript
/**
* @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