private function _end_array() { $popped = array_pop($this->_stack); if ($popped !== self::STACK_ARRAY) { throw new ParsingError($this->_line_number, $this->_char_number, "Unexpected end of array encountered."); } $this->_listener->end_array(); $this->_state = self::STATE_AFTER_VALUE; if (empty($this->_stack)) { $this->_end_document(); } }