code: func (l *lexer) token(type_ TokenType, word []rune, e Error) (*Token, Error) {
  	// if we have an error, then we return a BAD token
  	if e != nil {
  		type_ = BAD
  	}
  
  	// extract the lexer position
  	//      - the column is taken from the current column position
  	//        minus the length of the consumed "word"
  	_word := len(word)
  	_column := l._column - _word
  	_offset := l._offset - _word
  	position := Position{"", l._line, _column, _offset}
  
  	// if this is a newline token, we adjust the line & column counts
  	if type_ == EOL {
  		l.newline()
  	}
  
  	// return the Token
  	return NewToken(type_, word, position), e
  }
docs: // token returns a Token instance of the given type_ represented by word runes.