• Added exceptions for disabled inherited DOMDocument methods that don't make sense in an HTML5 library.
• Moved the inherited methods from the Printing trait to Document as DocumentFragment and Element don't inherit anything to print.
• Added an option to use Document::loadHTML or Document::load to parse a document.
• Made the DOM elements use dW\HTML5 namespace instead of dW\HTML5\DOM.
• Fixed where TreeBuilder wasn't being properly destructed when the parser is finished.
• Discovered a way to extend the existing DOM tools, so Parser now works with custom classes for the DOM.
• \dW\HTML5\DOM is no longer needed, and its functionality has been split between DOM\Document and DOM\Element.
• Printer's functionality is now handled by DOM\Document\saveHTML through a trait to make maintenance easier.
• Normalized Exception constants.
• Fixed various typing bugs.
• Fixed bug where Data::consumeWhile and Data::consumeUntil wouldn't move the pointer back one position if there were no matches.
• Changed DataStream to Data.
• Made each class have its own debug static property so each can print debug information separately.
• The document was being rewritten when tree building and therefore not being output when the parser completed.
• Allowed DOM to be instanced, containing an implementation and document so the tree builder can create a document when a doctype is found.
• Added debugging output for TreeBuilder, showing the insertion mode and foreign if content is foreign.
• Fixed syntax errors that weren't caught in last commit
• Made the token insertion methods static in Parser so that ActiveFormattingElementsList::reconstruct can insert methods without having to access the Parser instance itself. Might do it differently later, but this works for now.
• Since the fragment context that is passed to Stack can be null it is necessary to check whether the argument is valid before continuing.
• Parser::instance is now protected as all classes are now decoupled.
• Changed the name of the parser instance variable from Parser::$self to Parser::$instance
• Added parse errors for entities into ParseError.
• Moved Parser::fixDOM to DOM::fixIdAttributes.
• Added an exception for when the tokenizer enters an invalid state (infinite looping).
• Made ParseError use Parser::$instance->data instead of a passed around DataStream object.
• Made names of storage property in Stack and ActiveFormattingElementsList consistent to elsewhere
• Parser has its own public static variable that is an intance of itself, so ActiveFormattingElementsList can use that instead of passing an instance around.
• Added separate exception for ActiveFormattingElementsList