/** * Jinja2/DTL Lexer - Tokenizes template source into tokens * Compatible with both Jinja2 and Django Template Language */ import { Token } from './tokens'; export declare class Lexer { private state; private variableStart; private variableEnd; private blockStart; private blockEnd; private commentStart; private commentEnd; constructor(source: string, options?: { variableStart?: string; variableEnd?: string; blockStart?: string; blockEnd?: string; commentStart?: string; commentEnd?: string; }); tokenize(): Token[]; private scanToken; private checkWord; private scanRawBlock; /** * Optimized scanText using indexOf * Instead of checking 3 delimiters at each character position, * we use indexOf to jump directly to the next '{' character. * Benchmarks show +178% average speedup, up to +393% for text-heavy templates. */ private scanText; /** Advance to target position while tracking line/column */ private advanceTo; /** Advance to end while tracking line/column */ private advanceToEnd; private scanExpression; private scanExpressionToken; private scanString; private scanNumber; private scanIdentifier; private scanOperator; private scanComment; private isAtEnd; private peek; private peekNext; private advance; private match; private check; private skipWhitespace; private isWhitespace; private isDigit; private isAlpha; private isAlphaNumeric; private addToken; } export { TokenType, KEYWORDS } from './tokens'; export type { Token, LexerState } from './tokens'; //# sourceMappingURL=index.d.ts.map