TokenReader
export interface TokenReader {
assert(matchers: [unknown]): TokenReader
end(): void
endMatch(throwFail: string | boolean): TokenReader
errors: ErrorCollector
findLast(matchers: [unknown]): undefined | [TokenReader, unknown]
findLastMatch(matchers: [unknown]): undefined | [TokenReader, unknown]
findNext(matchers: [unknown]): undefined | [TokenReader, unknown]
findNextMatch(matchers: [unknown]): undefined | [TokenReader, unknown]
insertSemicolons(multilineOperators: string[]): TokenReader
isEof(): boolean
matches(matchers: [unknown]): undefined | UnwrapSingleton<MapMatchersToTokens<Matchers>>
originalTokens: Token[]
readUntil(matchers: [unknown]): TokenReader
rest: Token[]
tokens: Token[]
unreadToken(): void
}
Properties
assert
tokenReader.assert satisfies (matchers: [unknown]) => TokenReader
end
tokenReader.end satisfies () => void
endMatch
tokenReader.endMatch satisfies (throwFail: string | boolean) => TokenReader
errors
tokenReader.errors satisfies ErrorCollector
findLast
tokenReader.findLast satisfies (matchers: [unknown]) => undefined | [TokenReader, unknown]
findLastMatch
tokenReader.findLastMatch satisfies (matchers: [unknown]) => undefined | [TokenReader, unknown]
findNext
tokenReader.findNext satisfies (matchers: [unknown]) => undefined | [TokenReader, unknown]
findNextMatch
tokenReader.findNextMatch satisfies (matchers: [unknown]) => undefined | [TokenReader, unknown]
insertSemicolons
Creates a new TokenReader with semicolons inserted right before newlines if:
- not first/last in the token list
- not surrounded by multiline operators
tokenReader.insertSemicolons satisfies (multilineOperators: string[]) => TokenReader
isEof
tokenReader.isEof satisfies () => boolean
matches
tokenReader.matches satisfies (matchers: [unknown]) => undefined | UnwrapSingleton<MapMatchersToTokens<Matchers>>
originalTokens
Tokens including newlines (can be used for automatic semicolon injection)
tokenReader.originalTokens satisfies Token[]
readUntil
tokenReader.readUntil satisfies (matchers: [unknown]) => TokenReader
rest
Unread tokens optionally excluding newlines
tokenReader.rest satisfies Token[]
tokens
Tokens optionally excluding newlines
tokenReader.tokens satisfies Token[]
unreadToken
tokenReader.unreadToken satisfies () => void