UNPKG

@parser-generator/definition

Version:

A Parser Generator that supports LL,SLR,LR1,LALR

42 lines 1.2 kB
import { SSymbol, Terminal } from "./syntax"; export interface TableKey { key(): SSymbol; } export interface IToken { key(): Terminal; } export interface ILexer { peek(): IToken; next(): IToken; } export declare type TokenPatterns<T> = Array<{ regexp: RegExp; type: T; }>; export declare abstract class CommonAbstractRegexpLexer<T, A> { private patterns; private lastIndex; private text; private hasMore; private buffer; constructor(text: string, patterns: TokenPatterns<A>); peek(): T; peekFor(i: number): T; next(): T; /** * 填充直到队列达到指定数量,或没有足够的输入符号. * 如果填充达到要求的数量,返回true,否则false * @param i */ private fill; /** * 填充 */ private addToken; protected abstract createToken(lexeme: string, type: A, match: RegExpExecArray): T | undefined; protected onMatchFaild(text: string, lastIndex: number): void; protected abstract getEOF(): T; } export declare abstract class AbstractRegexpLexer<T extends IToken, A> extends CommonAbstractRegexpLexer<T, A> implements ILexer { } //# sourceMappingURL=lexical.d.ts.map