Skip to main content

TokenReader

export interface TokenReader {
  assert<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): TokenReader
  end(): void
  endMatch(throwFail?: string | boolean): TokenReader
  errors: ErrorCollector
  findLast<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): undefined | [TokenReader, ...MapMatchersToTokens<Matchers>[]]
  findLastMatch<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): undefined | [TokenReader, ...MapMatchersToTokens<Matchers>[]]
  findNext<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): undefined | [TokenReader, ...MapMatchersToTokens<Matchers>[]]
  findNextMatch<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): undefined | [TokenReader, ...MapMatchersToTokens<Matchers>[]]
  insertSemicolons(multilineOperators: string[]): TokenReader
  isEof(): boolean
  matches<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): undefined | UnwrapSingleton<MapMatchersToTokens<Matchers>>
  originalTokens: Token[]
  pos: number
  readUntil<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): TokenReader
  rest: Token[]
  tokens: Token[]
  unreadToken(): void
}
Instantiate a TokenReader with makeTokenReader.

Properties

assert

assert<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): TokenReader

end

end(): void

endMatch

endMatch(throwFail?: string | boolean): TokenReader

errors

errors: ErrorCollector

findLast

findLast<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): undefined | [TokenReader, ...MapMatchersToTokens<Matchers>[]]

findLastMatch

findLastMatch<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): undefined | [TokenReader, ...MapMatchersToTokens<Matchers>[]]

findNext

findNext<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): undefined | [TokenReader, ...MapMatchersToTokens<Matchers>[]]

findNextMatch

findNextMatch<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): undefined | [TokenReader, ...MapMatchersToTokens<Matchers>[]]

insertSemicolons

insertSemicolons(multilineOperators: string[]): TokenReader
Creates a new TokenReader with semicolons inserted right before newlines if:

  • not first/last in the token list
  • not surrounded by multiline operators

isEof

isEof(): boolean

matches

matches<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): undefined | UnwrapSingleton<MapMatchersToTokens<Matchers>>

originalTokens

originalTokens: Token[]
Tokens including newlines (can be used for automatic semicolon injection)

pos

pos: number
Current position of TokenReader in tokens.

readUntil

readUntil<Matchers extends TokenMatcher<Token>[]>(matchers: [...Matchers[]]): TokenReader

rest

rest: Token[]
Unread tokens optionally excluding newlines

tokens

tokens: Token[]
Tokens optionally excluding newlines

unreadToken

unreadToken(): void