original_string: protected function linear_whitespace()
  	{
  		do
  		{
  			if (substr($this->data, $this->position, 2) === "\x0D\x0A")
  			{
  				$this->position += 2;
  			}
  			elseif ($this->data[$this->position] === "\x0A")
  			{
  				$this->position++;
  			}
  			$this->position += strspn($this->data, "\x09\x20", $this->position);
  		} while ($this->has_data() && $this->is_linear_whitespace());
  		$this->value .= "\x20";
  	}
code: protected function linear_whitespace()
  	{
  		do
  		{
  			if (substr($this->data, $this->position, 2) === "\x0D\x0A")
  			{
  				$this->position += 2;
  			}
  			elseif ($this->data[$this->position] === "\x0A")
  			{
  				$this->position++;
  			}
  			$this->position += strspn($this->data, "\x09\x20", $this->position);
  		} while ($this->has_data() && $this->is_linear_whitespace());
  		$this->value .= "\x20";
  	}
code_tokens: protected function linear_whitespace ( ) { do { if ( substr ( $ this -> data , $ this -> position , 2 ) === "\x0D\x0A" ) { $ this -> position += 2 ; } elseif ( $ this -> data [ $ this -> position ] === "\x0A" ) { $ this -> position ++ ; } $ this -> position += strspn ( $ this -> data , "\x09\x20" , $ this -> position ) ; } while ( $ this -> has_data ( ) && $ this -> is_linear_whitespace ( ) ) ; $ this -> value .= "\x20" ; }
docstring: Parse LWS, replacing consecutive LWS characters with a single space
docstring_tokens: Parse LWS replacing consecutive LWS characters with a single space