Spaces:
Running
Running
import { Token } from './ast'; | |
import type { Source } from './source'; | |
import { TokenKind } from './tokenKind'; | |
/** | |
* Given a Source object, creates a Lexer for that source. | |
* A Lexer is a stateful stream generator in that every time | |
* it is advanced, it returns the next token in the Source. Assuming the | |
* source lexes, the final Token emitted by the lexer will be of kind | |
* EOF, after which the lexer will repeatedly return the same EOF token | |
* whenever called. | |
*/ | |
export declare class Lexer { | |
source: Source; | |
/** | |
* The previously focused non-ignored token. | |
*/ | |
lastToken: Token; | |
/** | |
* The currently focused non-ignored token. | |
*/ | |
token: Token; | |
/** | |
* The (1-indexed) line containing the current token. | |
*/ | |
line: number; | |
/** | |
* The character offset at which the current line begins. | |
*/ | |
lineStart: number; | |
constructor(source: Source); | |
get [Symbol.toStringTag](): string; | |
/** | |
* Advances the token stream to the next non-ignored token. | |
*/ | |
advance(): Token; | |
/** | |
* Looks ahead and returns the next non-ignored token, but does not change | |
* the state of Lexer. | |
*/ | |
lookahead(): Token; | |
} | |
/** | |
* @internal | |
*/ | |
export declare function isPunctuatorTokenKind(kind: TokenKind): boolean; | |