Functions to analyze unified-latex Abstract Syntax Tree (AST).
If you want to look for particular AST nodes in an array; useful when making plugins.
npm install @unified-latex/unified-latex-util-scan
This package contains both esm and commonjs exports. To explicitly access the esm export,
import the .js file. To explicitly access the commonjs export, import the .cjs file.
prefixMatch(nodes, prefixes, options)Efficiently search for a large number of strings using a prefix-tree. The longest match is returned.
function prefixMatch(nodes: Ast.Node[], prefixes: string | string[] | { dump(spacer?: number): string; tree(): any; addWord(word: string): ...; removeWord(word: string): ...; isPrefix(word: string): boolean; countPrefix(word: string): number; ... 5 more ...; getSubAnagrams(word: string): string[]; }, options: { startIndex?: number; matchSubstrings?: boolean; assumeOneCharStrings?: boolean; }): { match: string; endNodeIndex: number; endNodePartialMatch: string | null; }
Parameters
| Param | Type |
|---|---|
| nodes | Ast.Node[] |
| prefixes | Omitted |
| options | Omitted |
scan(nodes, token, options)Scan nodes looking for the first occurrence of token.
If options.onlySkipWhitespaceAndComments==true, then the scan
will only skip whitespace/comment nodes.
function scan(
nodes: (Ast.Node | Ast.Argument)[],
token: string | Ast.Node | Ast.Argument,
options: {
startIndex?: number;
onlySkipWhitespaceAndComments?: boolean;
allowSubstringMatches?: boolean;
}
): number;
Parameters
| Param | Type |
|---|---|
| nodes | (Ast.Node | Ast.Argument)[] |
| token | Omitted |
| options | Omitted |
Generated using TypeDoc