/** * @param Operator $oCurrentOperator */ protected function _processOperatorToken(Operator $oCurrentOperator) { for ($i = 0; $i < $this->_operator_stack->getOperatorCount(); $i++) { $iTopPrecedence = $this->_operator_stack->getTopOperatorPrecedence(); if ($oCurrentOperator->isLeftAssociative() && $oCurrentOperator->getPrecendence() <= $iTopPrecedence) { $this->_moveTopOperatorToOutput(); } elseif ($oCurrentOperator->isRightAssociative() && $oCurrentOperator->getPrecendence() < $iTopPrecedence) { $this->_moveTopOperatorToOutput(); } } $this->_operator_stack->enqueue($oCurrentOperator); }