private function exprOperator($static = FALSE) {
    $token_type = $this->currentType;
    if ($operator = OperatorFactory::createOperator($token_type, $static)) {
      $this->mustMatch($token_type, $operator, 'operator');
      if ($token_type === '?') {
        if ($this->currentType === ':') {
          $colon = new PartialNode();
          $this->mustMatch(':', $colon);
          return OperatorFactory::createElvisOperator($operator, $colon);
        }
        else {
          $operator->then = $static ? $this->staticScalar() : $this->expr();
          $colon = new PartialNode();
          $this->mustMatch(':', $colon);
          $operator->colon = $colon;
          return $operator;
        }
      }
      elseif ($token_type === '=' && $this->currentType === '&') {
        $by_ref_node = new PartialNode();
        $this->mustMatch('&', $by_ref_node);
        return OperatorFactory::createAssignReferenceOperator($operator, $by_ref_node);
      }
      return $operator;
    }
    return NULL;
  }
private function exprOperator($static = FALSE) {
    $token_type = $this->currentType;
    if ($operator = OperatorFactory::createOperator($token_type, $static)) {
      $this->mustMatch($token_type, $operator, 'operator');
      if ($token_type === '?') {
        if ($this->currentType === ':') {
          $colon = new PartialNode();
          $this->mustMatch(':', $colon);
          return OperatorFactory::createElvisOperator($operator, $colon);
        }
        else {
          $operator->then = $static ? $this->staticScalar() : $this->expr();
          $colon = new PartialNode();
          $this->mustMatch(':', $colon);
          $operator->colon = $colon;
          return $operator;
        }
      }
      elseif ($token_type === '=' && $this->currentType === '&') {
        $by_ref_node = new PartialNode();
        $this->mustMatch('&', $by_ref_node);
        return OperatorFactory::createAssignReferenceOperator($operator, $by_ref_node);
      }
      return $operator;
    }
    return NULL;
  }
private function exprOperator ( $ static = FALSE ) { $ token_type = $ this -> currentType ; if ( $ operator = OperatorFactory :: createOperator ( $ token_type , $ static ) ) { $ this -> mustMatch ( $ token_type , $ operator , 'operator' ) ; if ( $ token_type === '?' ) { if ( $ this -> currentType === ':' ) { $ colon = new PartialNode ( ) ; $ this -> mustMatch ( ':' , $ colon ) ; return OperatorFactory :: createElvisOperator ( $ operator , $ colon ) ; } else { $ operator -> then = $ static ? $ this -> staticScalar ( ) : $ this -> expr ( ) ; $ colon = new PartialNode ( ) ; $ this -> mustMatch ( ':' , $ colon ) ; $ operator -> colon = $ colon ; return $ operator ; } } elseif ( $ token_type === '=' && $ this -> currentType === '&' ) { $ by_ref_node = new PartialNode ( ) ; $ this -> mustMatch ( '&' , $ by_ref_node ) ; return OperatorFactory :: createAssignReferenceOperator ( $ operator , $ by_ref_node ) ; } return $ operator ; } return NULL ; }
Parse an expression operator.
@param bool $static Static operator
@return Operator
Parse an expression operator .