very-small-parser
Version:
A very small Markdown, HTML, and CSS parser.
14 lines (13 loc) • 486 B
TypeScript
export interface IToken {
type: string;
len?: number;
raw?: string;
children?: IToken[];
value?: string;
}
export type TNullableToken<T extends IToken> = T | undefined | null;
export type TChildrenToken<T extends IToken> = TNullableToken<T> | T[];
export type TTokenizer<T extends IToken = IToken, P extends IParser<any> = IParser<any>> = (parser: P, value: string) => TNullableToken<T>;
export interface IParser<T extends IToken> {
parse(value: string): T[];
}