original_string: protected function parseSub($query)
      {
          if ($query instanceof self || $query instanceof EloquentBuilder) {
              return [$query->toSql(), $query->getBindings()];
          } elseif (is_string($query)) {
              return [$query, []];
          } else {
              throw new InvalidArgumentException;
          }
      }
code: protected function parseSub($query)
      {
          if ($query instanceof self || $query instanceof EloquentBuilder) {
              return [$query->toSql(), $query->getBindings()];
          } elseif (is_string($query)) {
              return [$query, []];
          } else {
              throw new InvalidArgumentException;
          }
      }
code_tokens: protected function parseSub ( $ query ) { if ( $ query instanceof self || $ query instanceof EloquentBuilder ) { return [ $ query -> toSql ( ) , $ query -> getBindings ( ) ] ; } elseif ( is_string ( $ query ) ) { return [ $ query , [ ] ] ; } else { throw new InvalidArgumentException ; } }
docstring: Parse the subquery into SQL and bindings.
  
  @param  mixed  $query
  @return array
docstring_tokens: Parse the subquery into SQL and bindings .