Exemplo n.º 1
0
 private function E()
 {
     $this->P();
     while (($node = $this->next()) && $node instanceof Operator) {
         // Special case: post T_INC and T_DEC
         if ($node->type == T_INC || $node->type == T_DEC) {
             $this->consume();
             $operand = array_pop($this->operands);
             $this->operands[] = OperatorFactory::createPostfixOperatorNode($operand, $node, $this->filename);
         } elseif ($node->type === '?' || $node->hasBinaryMode) {
             $this->pushOperator($node, Operator::MODE_BINARY);
             $this->consume();
             $this->P();
         } else {
             throw new ParserException($this->filename, $node->getLineNumber(), $node->getColumnNumber(), "invalid expression");
         }
     }
     while (self::arrayLast($this->operators) !== $this->sentinel) {
         $this->popOperator();
     }
 }