File "ParseException.php"

Full path: /home/argothem/www/organecyberpresse/plugins/auto/querypath/v3.0.0/lib/querypath/vendor/gravitypdf/querypath/src/ParseException.php
File size: 1.23 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/**
 * @file
 * Query path parsing exception.
 */

namespace QueryPath;

/**
 * Exception indicating that a parser has failed to parse a file.
 *
 * This will report parser warnings as well as parser errors. It should only be
 * thrown, though, under error conditions.
 *
 * @ingroup querypath_core
 */
class ParseException extends Exception
{

	public const ERR_MSG_FORMAT = 'Parse error in %s on line %d column %d: %s (%d)';
	public const WARN_MSG_FORMAT = 'Parser warning in %s on line %d column %d: %s (%d)';

	// trigger_error
	public function __construct($msg = '', $code = 0, $file = null, $line = null)
	{

		$msgs = [];
		foreach (libxml_get_errors() as $err) {
			$format = $err->level === LIBXML_ERR_WARNING ? self::WARN_MSG_FORMAT : self::ERR_MSG_FORMAT;
			$msgs[] = sprintf($format, $err->file, $err->line, $err->column, $err->message, $err->code);
		}
		$msg .= implode("\n", $msgs);

		if (isset($file)) {
			$msg .= ' (' . $file;
			if (isset($line)) {
				$msg .= ': ' . $line;
			}
			$msg .= ')';
		}

		parent::__construct($msg, $code);
	}

	public static function initializeFromError($errno, $errstr, $errfile, $errline, $context = null)
	{
		$class = __CLASS__;
		throw new $class($errno, (int) $errstr, $errfile, $errline);
	}
}