mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-12-27 00:51:52 +00:00
96d4a3ecf7
Due to historical reasons, the code is in subfolder "1". With SVN removal, we place the code back and remove the annoying "1" folder.
75 lines
1.8 KiB
PHP
75 lines
1.8 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Records errors for particular segments of an HTML document such as tokens,
|
|
* attributes or CSS properties. They can contain error structs (which apply
|
|
* to components of what they represent), but their main purpose is to hold
|
|
* errors applying to whatever struct is being used.
|
|
*/
|
|
class HTMLPurifier_ErrorStruct
|
|
{
|
|
|
|
/**
|
|
* Possible values for $children first-key. Note that top-level structures
|
|
* are automatically token-level.
|
|
*/
|
|
const TOKEN = 0;
|
|
const ATTR = 1;
|
|
const CSSPROP = 2;
|
|
|
|
/**
|
|
* Type of this struct.
|
|
* @type string
|
|
*/
|
|
public $type;
|
|
|
|
/**
|
|
* Value of the struct we are recording errors for. There are various
|
|
* values for this:
|
|
* - TOKEN: Instance of HTMLPurifier_Token
|
|
* - ATTR: array('attr-name', 'value')
|
|
* - CSSPROP: array('prop-name', 'value')
|
|
* @type mixed
|
|
*/
|
|
public $value;
|
|
|
|
/**
|
|
* Errors registered for this structure.
|
|
* @type array
|
|
*/
|
|
public $errors = array();
|
|
|
|
/**
|
|
* Child ErrorStructs that are from this structure. For example, a TOKEN
|
|
* ErrorStruct would contain ATTR ErrorStructs. This is a multi-dimensional
|
|
* array in structure: [TYPE]['identifier']
|
|
* @type array
|
|
*/
|
|
public $children = array();
|
|
|
|
/**
|
|
* @param string $type
|
|
* @param string $id
|
|
* @return mixed
|
|
*/
|
|
public function getChild($type, $id)
|
|
{
|
|
if (!isset($this->children[$type][$id])) {
|
|
$this->children[$type][$id] = new HTMLPurifier_ErrorStruct();
|
|
$this->children[$type][$id]->type = $type;
|
|
}
|
|
return $this->children[$type][$id];
|
|
}
|
|
|
|
/**
|
|
* @param int $severity
|
|
* @param string $message
|
|
*/
|
|
public function addError($severity, $message)
|
|
{
|
|
$this->errors[] = array($severity, $message);
|
|
}
|
|
}
|
|
|
|
// vim: et sw=4 sts=4
|