/** * @internal * @param StringStream $stream * @return int */ private function getParseErrorLineNumber(StringStream $stream) : int { $parse_error_char_position = $stream->position(); $plain_data = $this->getFullString($stream); $exploded_by_lines = explode("\n", $plain_data); foreach ($exploded_by_lines as $key => $line) { $line_length = strlen($line) + 1; $parse_error_char_position -= $line_length; if ($parse_error_char_position < 0) { return $key + 1; } } return 1; }