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