code: function parse_attributes() {
  		$this->status['attributes'] = array();
  
  		while ($this->next_no_whitespace() === self::TOK_IDENTIFIER) {
  			$attr = $this->getTokenString();
  			if (($attr === '?') || ($attr === '%')) {
  				//Probably closing tags
  				break;
  			}
  
  			if ($this->next_no_whitespace() === self::TOK_EQUALS) {
  				if ($this->next_no_whitespace() === self::TOK_STRING) {
  					$val = $this->getTokenString(1, -1);
  				} else {
  					$this->token_start = $this->pos;
  					if (!isset($stop)) {
  						$stop = $this->whitespace;
  						$stop['<'] = true;
  						$stop['>'] = true;
  					}
  
  					while ((++$this->pos < $this->size) && (!isset($stop[$this->doc[$this->pos]]))) {
  						// Do nothing.
  					}
  					--$this->pos;
  
  					$val = $this->getTokenString();
  
  					if (trim($val) === '') {
  						$this->addError('Invalid attribute value');
  						return false;
  					}
  				}
  			} else {
  				$val = $attr;
  				$this->pos = (($this->token_start) ? $this->token_start : $this->pos) - 1;
  			}
  
  			$this->status['attributes'][$attr] = $val;
  		}
  
  		return true;
  	}
docs: Parse attributes (names + value)
  @internal Stores attributes in {@link $status}[attributes] (array(ATTR => VAL))
  @return bool