code: function attributeValueTokens(value) {
  	const ranges = [];
  	const stream = value.stream;
  	stream.pos = value.start;
  
  	if (!stream.eat(isExpressionStart)) {
  		// not an expression, can parse tokens
  		let tokenStart;
  		while (stream.pos.isLessThan(value.end)) {
  			stream.eatWhile(isSpace);
  			tokenStart = stream.pos;
  			if (stream.eatWhile(isAttributeToken)) {
  				ranges.push(new Range(tokenStart, stream.pos));
  			}
  		}
  	}
  
  	return ranges;
  }
docs: Returns list of ranges of space-separated words in given attribute’s value
  @param  {Token} value  Attribute value token
  @return {Range[]}