original_string: protected function createSub($query)
      {
          // If the given query is a Closure, we will execute it while passing in a new
          // query instance to the Closure. This will give the developer a chance to
          // format and work with the query before we cast it to a raw SQL string.
          if ($query instanceof Closure) {
              $callback = $query;
  
              $callback($query = $this->forSubQuery());
          }
  
          return $this->parseSub($query);
      }
code: protected function createSub($query)
      {
          // If the given query is a Closure, we will execute it while passing in a new
          // query instance to the Closure. This will give the developer a chance to
          // format and work with the query before we cast it to a raw SQL string.
          if ($query instanceof Closure) {
              $callback = $query;
  
              $callback($query = $this->forSubQuery());
          }
  
          return $this->parseSub($query);
      }
code_tokens: protected function createSub ( $ query ) { // If the given query is a Closure, we will execute it while passing in a new // query instance to the Closure. This will give the developer a chance to // format and work with the query before we cast it to a raw SQL string. if ( $ query instanceof Closure ) { $ callback = $ query ; $ callback ( $ query = $ this -> forSubQuery ( ) ) ; } return $ this -> parseSub ( $ query ) ; }
docstring: Creates a subquery and parse it.
  
  @param  \Closure|\Illuminate\Database\Query\Builder|string $query
  @return array
docstring_tokens: Creates a subquery and parse it .