%PDF- %PDF-
| Direktori : /www/varak.net/wiki.varak.net/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/ |
| Current File : //www/varak.net/wiki.varak.net/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/TreeHandler.php |
<?php
namespace RemexHtml\TreeBuilder;
use RemexHtml\Tokenizer\Attributes;
interface TreeHandler {
/**
* Called when parsing starts.
*
* @param string|null $fragmentNamespace The fragment namespace, or null
* to run in document mode.
* @param string|null $fragmentName The fragment tag name, or null to run
* in document mode.
*/
function startDocument( $fragmentNamespace, $fragmentName );
/**
* Called when parsing stops.
*
* @param int $pos The input string length, i.e. the past-the-end position.
*/
function endDocument( $pos );
/**
* Insert characters.
*
* @param int $preposition The placement of the new node with respect
* to $ref. May be TreeBuilder::
* - BEFORE: insert as a sibling before the reference element
* - UNDER: append as the last child of the reference element
* - ROOT: append as the last child of the document node
* @param Element|null $ref Insert before/below this element, or null if
* $preposition is ROOT.
* @param string $text The text to insert is a substring of this string,
* with the start and length of the substring given by $start and
* $length. We do it this way to avoid unnecessary copying.
* @param int $start The start of the substring
* @param int $length The length of the substring
* @param int $sourceStart The input position. This is not necessarily
* accurate, particularly when the tokenizer is run without ignoreEntities,
* or in CDATA sections.
* @param int $sourceLength The length of the input which is consumed.
* The same caveats apply as for $sourceStart.
*/
function characters( $preposition, $ref, $text, $start, $length, $sourceStart, $sourceLength );
/**
* Insert an element. The element name and attributes are given in the
* supplied Element object. Handlers for this event typically attach an
* identifier to the userData property of the Element object, to identify
* the element when it is used again in subsequent tree mutations.
*
* @param int $preposition The placement of the new node with respect
* to $ref. May be TreeBuilder::
* - BEFORE: insert as a sibling before the reference element
* - UNDER: append as the last child of the reference element
* - ROOT: append as the last child of the document node
* @param Element|null $ref Insert before/below this element, or null if
* $preposition is ROOT.
* @param Element $element An object containing information about the new
* element. The same object will be used for $parent and $refNode in
* other calls as appropriate. The handler can set $element->userData to
* attach a suitable DOM object to identify the mutation target in
* subsequent calls.
* @param bool $void True if this is a void element which cannot
* have any children appended to it. This is usually true if the element
* is closed by the same token that opened it. No endTag() event will be
* sent for such an element. This is only true if self-closing tags are
* acknowledged for this tag name, so it is a hint to the serializer that
* a self-closing tag is acceptable.
* @param int $sourceStart The input position
* @param int $sourceLength The length of the input which is consumed
*/
function insertElement( $preposition, $ref, Element $element, $void,
$sourceStart, $sourceLength );
/**
* A hint that an element was closed and was removed from the stack
* of open elements. It probably won't be mutated again.
*
* @param Element $element The element being ended
* @param int $sourceStart The input position
* @param int $sourceLength The length of the input which is consumed
*/
function endTag( Element $element, $sourceStart, $sourceLength );
/**
* A valid DOCTYPE token was found.
*
* @param string $name The doctype name, usually "html"
* @param string $public The PUBLIC identifier
* @param string $system The SYSTEM identifier
* @param int $quirks The quirks mode implied from the doctype. One of:
* - TreeBuilder::NO_QUIRKS : no quirks
* - TreeBuilder::LIMITED_QUIRKS : limited quirks
* - TreeBuilder::QUIRKS : full quirks
* @param int $sourceStart The input position
* @param int $sourceLength The length of the input which is consumed
*/
function doctype( $name, $public, $system, $quirks, $sourceStart, $sourceLength );
/**
* Insert a comment
*
* @param int $preposition The placement of the new node with respect
* to $ref. May be TreeBuilder::
* - BEFORE: insert as a sibling before the reference element
* - UNDER: append as the last child of the reference element
* - ROOT: append as the last child of the document node
* @param Element|null $ref Insert before/below this element, or null if
* $preposition is ROOT.
* @param string $text The text of the comment
* @param int $sourceStart The input position
* @param int $sourceLength The length of the input which is consumed
*/
function comment( $preposition, $ref, $text, $sourceStart, $sourceLength );
/**
* A parse error
*
* @param string $text An error message explaining in English what the
* author did wrong, and what the parser intends to do about the
* situation.
* @param int $pos The input position at which the error occurred
*/
function error( $text, $pos );
/**
* Add attributes to an existing element. This is used to update the
* attributes of the <html> or <body> elements. The event receiver
* should add only those attributes which the original element does not
* already have. It should not overwrite existing attributes.
*
* @param Element $element The element to update
* @param Attributes $attrs The new attributes to add
* @param int $sourceStart The input position
*/
function mergeAttributes( Element $element, Attributes $attrs, $sourceStart );
/**
* Remove a node from the tree, and all its children. This is only done
* when a <frameset> element is found, which triggers removal of the
* partially-constructed body element.
*
* @param Element $element The element to remove
* @param int $sourceStart The location in the source at which this
* action was triggered.
*/
function removeNode( Element $element, $sourceStart );
/**
* Take all children of a given parent $element, and insert them as
* children of $newParent, removing them from their original parent in the
* process. Insert $newParent as now the only child of $element.
*
* @param Element $element The old parent element
* @param Element $newParent The new parent element
* @param int $sourceStart The location in the source at which this
* action was triggered.
*/
function reparentChildren( Element $element, Element $newParent, $sourceStart );
}