@parser-generator/definition
Version:
A Parser Generator that supports LL,SLR,LR1,LALR
42 lines • 1.2 kB
TypeScript
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