Spaces:
Sleeping
Sleeping
/** | |
* HTML API: WP_HTML_Processor_State class | |
* | |
* @package WordPress | |
* @subpackage HTML-API | |
* @since 6.4.0 | |
*/ | |
/** | |
* Core class used by the HTML processor during HTML parsing | |
* for managing the internal parsing state. | |
* | |
* This class is designed for internal use by the HTML processor. | |
* | |
* @since 6.4.0 | |
* | |
* @access private | |
* | |
* @see WP_HTML_Processor | |
*/ | |
class WP_HTML_Processor_State { | |
/* | |
* Insertion mode constants. | |
* | |
* These constants exist and are named to make it easier to | |
* discover and recognize the supported insertion modes in | |
* the parser. | |
* | |
* Out of all the possible insertion modes, only those | |
* supported by the parser are listed here. As support | |
* is added to the parser for more modes, add them here | |
* following the same naming and value pattern. | |
* | |
* @see https://html.spec.whatwg.org/#the-insertion-mode | |
*/ | |
/** | |
* Initial insertion mode for full HTML parser. | |
* | |
* @since 6.4.0 | |
* | |
* @see https://html.spec.whatwg.org/#the-initial-insertion-mode | |
* @see WP_HTML_Processor_State::$insertion_mode | |
* | |
* @var string | |
*/ | |
const INSERTION_MODE_INITIAL = 'insertion-mode-initial'; | |
/** | |
* In body insertion mode for full HTML parser. | |
* | |
* @since 6.4.0 | |
* | |
* @see https://html.spec.whatwg.org/#parsing-main-inbody | |
* @see WP_HTML_Processor_State::$insertion_mode | |
* | |
* @var string | |
*/ | |
const INSERTION_MODE_IN_BODY = 'insertion-mode-in-body'; | |
/** | |
* Tracks open elements while scanning HTML. | |
* | |
* This property is initialized in the constructor and never null. | |
* | |
* @since 6.4.0 | |
* | |
* @see https://html.spec.whatwg.org/#stack-of-open-elements | |
* | |
* @var WP_HTML_Open_Elements | |
*/ | |
public $stack_of_open_elements = null; | |
/** | |
* Tracks open formatting elements, used to handle mis-nested formatting element tags. | |
* | |
* This property is initialized in the constructor and never null. | |
* | |
* @since 6.4.0 | |
* | |
* @see https://html.spec.whatwg.org/#list-of-active-formatting-elements | |
* | |
* @var WP_HTML_Active_Formatting_Elements | |
*/ | |
public $active_formatting_elements = null; | |
/** | |
* Refers to the currently-matched tag, if any. | |
* | |
* @since 6.4.0 | |
* | |
* @var WP_HTML_Token|null | |
*/ | |
public $current_token = null; | |
/** | |
* Tree construction insertion mode. | |
* | |
* @since 6.4.0 | |
* | |
* @see https://html.spec.whatwg.org/#insertion-mode | |
* | |
* @var string | |
*/ | |
public $insertion_mode = self::INSERTION_MODE_INITIAL; | |
/** | |
* Context node initializing fragment parser, if created as a fragment parser. | |
* | |
* @since 6.4.0 | |
* | |
* @see https://html.spec.whatwg.org/#concept-frag-parse-context | |
* | |
* @var [string, array]|null | |
*/ | |
public $context_node = null; | |
/** | |
* The frameset-ok flag indicates if a `FRAMESET` element is allowed in the current state. | |
* | |
* > The frameset-ok flag is set to "ok" when the parser is created. It is set to "not ok" after certain tokens are seen. | |
* | |
* @since 6.4.0 | |
* | |
* @see https://html.spec.whatwg.org/#frameset-ok-flag | |
* | |
* @var bool | |
*/ | |
public $frameset_ok = true; | |
/** | |
* Constructor - creates a new and empty state value. | |
* | |
* @since 6.4.0 | |
* | |
* @see WP_HTML_Processor | |
*/ | |
public function __construct() { | |
$this->stack_of_open_elements = new WP_HTML_Open_Elements(); | |
$this->active_formatting_elements = new WP_HTML_Active_Formatting_Elements(); | |
} | |
} | |