const OsloError = require('./osloError') module.exports = class TokenStream { constructor() { this.tokens = [] this.position = 0 } advance() { this.position++ } eat(tokenType) { let token = this.peek() if (token && token.type === tokenType) { this.advance() return token } this.error = new OsloError({ line: token.line, message: `Encountered an unexpected ${ token.type } while looking for a ${tokenType}.`, }) } peek(step = 0) { return this.tokens[this.position + step] } }