private function parseVariable(&$parts) {
		// if the next item starts with a $ or ...$ it must be the variable name
		if (isset($parts[0])
				&& (strlen($parts[0]) > 0)
				&& ($parts[0][0] == '$' || substr($parts[0], 0, 4) === '...$')) {
			$this->variable = array_shift($parts);
			array_shift($parts);

			if (substr($this->variable, 0, 3) === '...') {
				$this->isVariadic = true;
				$this->variable = substr($this->variable, 3);
			}
		}
	}