import Logger from '../Logger'; import Token from '../Token'; import TokenType from '../TokenType'; import ITokenRule from './ITokenRule'; import LexerContext from './LexerContext'; import LexerRule from './LexerRule'; export default class Lexer { logger: Logger; constructor(logger: Logger); lex(ctx: LexerContext): LexerContext; lexToken(index: number, inType: TokenType | undefined, ctx: LexerContext): Token | undefined; lexTokenRule(index: number, rule: ITokenRule, ctx: LexerContext): Token | undefined; lexRule(index: number, rule: LexerRule, ctx: LexerContext): number | undefined; substituteToken(token: Token, value: string, ctx: LexerContext): void; applyTextReplace(text: string, regex: RegExp, value: string): string; getInStringArray(source: string): boolean[]; error(msg: string, token: Token | undefined, ctx: LexerContext): void; }