original_string: public function join(string $combiner, self $expr): self
      {
          $path = $this->__toString().$combiner;
  
          if ('*/' !== $expr->path) {
              $path .= $expr->path;
          }
  
          $this->path = $path;
          $this->element = $expr->element;
          $this->condition = $expr->condition;
  
          return $this;
      }
code: public function join(string $combiner, self $expr): self
      {
          $path = $this->__toString().$combiner;
  
          if ('*/' !== $expr->path) {
              $path .= $expr->path;
          }
  
          $this->path = $path;
          $this->element = $expr->element;
          $this->condition = $expr->condition;
  
          return $this;
      }
code_tokens: public function join ( string $ combiner , self $ expr ) : self { $ path = $ this -> __toString ( ) . $ combiner ; if ( '*/' !== $ expr -> path ) { $ path .= $ expr -> path ; } $ this -> path = $ path ; $ this -> element = $ expr -> element ; $ this -> condition = $ expr -> condition ; return $ this ; }
docstring: Joins another XPathExpr with a combiner.
  
  @return $this
docstring_tokens: Joins another XPathExpr with a combiner .