original_string: public function operator($left, $operator, $right, $message = '')
      {
          if (!isset(static::$operators[$operator])) {
              throw new \InvalidArgumentException("Invalid operator $operator");
          }
          $this->assertion->setActual($left);
  
          return $this->assertion->{static::$operators[$operator]}($right, $message);
      }
code: public function operator($left, $operator, $right, $message = '')
      {
          if (!isset(static::$operators[$operator])) {
              throw new \InvalidArgumentException("Invalid operator $operator");
          }
          $this->assertion->setActual($left);
  
          return $this->assertion->{static::$operators[$operator]}($right, $message);
      }
code_tokens: public function operator ( $ left , $ operator , $ right , $ message = '' ) { if ( ! isset ( static :: $ operators [ $ operator ] ) ) { throw new \ InvalidArgumentException ( "Invalid operator $operator" ) ; } $ this -> assertion -> setActual ( $ left ) ; return $ this -> assertion -> { static :: $ operators [ $ operator ] } ( $ right , $ message ) ; }
docstring: Compare two values using the given operator.
  
  @param mixed  $left
  @param string $operator
  @param mixed  $right
  @param string $message
docstring_tokens: Compare two values using the given operator .