Tim Starling has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/333824 )

Change subject: Remove XhtmlFormatter and Parser
......................................................................

Remove XhtmlFormatter and Parser

They were not fully baked, and are not necessary for present purposes.

Change-Id: I4bb2c989ca131436a52f35df061b85c66091ec6c
---
M bin/test.php
D src/Serializer/XhtmlFormatter.php
D src/TreeBuilder/Parser.php
3 files changed, 5 insertions(+), 134 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/libs/RemexHtml 
refs/changes/24/333824/1

diff --git a/bin/test.php b/bin/test.php
index e8a95ce..3708a35 100755
--- a/bin/test.php
+++ b/bin/test.php
@@ -66,17 +66,6 @@
        reserializeState( $text, Tokenizer\Tokenizer::STATE_RCDATA, 'xmp' );
 }
 
-function traceDispatch( $text ) {
-       TreeBuilder\Parser::parseDocument( $text, [ 'traceDispatch' => true ] );
-}
-
-function traceDOM( $text ) {
-       TreeBuilder\Parser::parseDocument( $text, [
-               'traceTreeMutation' => true,
-               'traceDispatch' => true,
-       ] );
-}
-
 function trace( $text ) {
        $traceCallback = function ( $msg ) {
                print "$msg\n";
@@ -110,25 +99,6 @@
                // 'fragmentNamespace' => \RemexHtml\HTMLData::NS_HTML,
                // 'fragmentName' => 'html'
        ] );
-}
-
-function tidyBodyViaDOM( $text ) {
-       $docText = "<!DOCTYPE 
html>\n<html><head></head><body>$text</body></html>";
-       $doc = TreeBuilder\Parser::parseDocument( $docText, [] );
-       $body = $doc->getElementsByTagName( 'body' )->item( 0 );
-       foreach ( $body->childNodes as $node ) {
-               print $doc->saveHTML( $node );
-       }
-       print "\n";
-}
-
-function tidyViaDOM( $text ) {
-       $doc = TreeBuilder\Parser::parseDocument( $text, [
-               'treeBuilder' => [
-                       'scopeCache' => true,
-               ]
-       ] );
-       print $doc->saveHTML() . "\n";
 }
 
 function tidy( $text ) {
@@ -178,12 +148,11 @@
 
 function benchmarkDOM( $text ) {
        $time = -microtime( true );
-       $dom = TreeBuilder\Parser::parseDocument( $text, [
-               'treeBuilder' => [
-                       'ignoreErrors' => true,
-               ],
-               'tokenizer' => $GLOBALS['tokenizerOptions']
-       ] );
+       $domBuilder = new TreeBuilder\DOMBuilder;
+       $treeBuilder = new TreeBuilder\TreeBuilder( $domBuilder, [ 
'ignoreErrors' => true ] );
+       $dispatcher = new TreeBuilder\Dispatcher( $treeBuilder );
+       $tokenizer = new Tokenizer\Tokenizer( $dispatcher, $text, 
$GLOBALS['tokenizerOptions'] );
+       $tokenizer->execute();
        $time += microtime( true );
        print "$time\n";
 }
diff --git a/src/Serializer/XhtmlFormatter.php 
b/src/Serializer/XhtmlFormatter.php
deleted file mode 100644
index 8fc4f42..0000000
--- a/src/Serializer/XhtmlFormatter.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-namespace RemexHtml\Serializer;
-use RemexHtml\Tokenizer\Attributes;
-
-class XhtmlFormatter implements Formatter {
-       public function startDocument( $fragmentNamespace, $fragmentName ) {
-               return "<!DOCTYPE html>\n";
-       }
-
-       public function characters( SerializerNode $parent, $text, $start, 
$length ) {
-               $text = substr( $text, $start, $length );
-               return strtr( $text, [
-                       '<' => '&lt;',
-                       '>' => '&gt;',
-                       '&' => '&amp;' ] );
-       }
-
-       public function element( SerializerNode $parent, SerializerNode $node, 
$contents ) {
-               $name = $node->name;
-               $ret = "<$name";
-               foreach ( $node->attrs->getValues() as $attrName => $value ) {
-                       $ret .= " $attrName=\"" .
-                               strtr( $value, [
-                                       '"' => '&quot;',
-                                       '&' => '&amp;',
-                               ] ) . "\"";
-               }
-               if ( $contents === null ) {
-                       $ret .= " />";
-               } elseif ( isset( $contents[0] ) && $contents[0] === "\n"
-                       && in_array( $name, [ 'pre', 'textarea', 'listing' ] )
-               ) {
-                       $ret .= ">\n$contents</$name>";
-               } else {
-                       $ret .= ">$contents</$name>";
-               }
-               return $ret;
-       }
-
-       public function comment( SerializerNode $parent, $text ) {
-               return "<!--$text-->";
-       }
-
-       public function doctype( $name, $public, $system ) {
-               return '';
-       }
-}
diff --git a/src/TreeBuilder/Parser.php b/src/TreeBuilder/Parser.php
deleted file mode 100644
index 871d203..0000000
--- a/src/TreeBuilder/Parser.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace RemexHtml\TreeBuilder;
-use RemexHtml\Tokenizer\Tokenizer;
-
-class Parser {
-       protected $domBuilder;
-       protected $treeBuilder;
-       protected $dispatcher;
-       protected $tokenizer;
-
-       private function __construct( $text, $options ) {
-               $options += [
-                       'treeBuilder' => [],
-                       'tokenizer' => [],
-                       'domBuilder' => [],
-                       'traceDispatch' => false,
-                       'traceTreeMutation' => false,
-               ];
-
-               $this->domBuilder = new DOMBuilder( $options['domBuilder'] );
-               if ( $options['traceTreeMutation'] ) {
-                       $treeHandler = new TreeMutationTracer( 
$this->domBuilder,
-                               function ( $msg ) {
-                                       print "$msg\n";
-                               }
-                       );
-               } else {
-                       $treeHandler = $this->domBuilder;
-               }
-               $this->treeBuilder = new TreeBuilder( $treeHandler, 
$options['treeBuilder'] );
-               $this->dispatcher = new Dispatcher( $this->treeBuilder );
-               if ( $options['traceDispatch'] ) {
-                       $tokenHandler = new DispatchTracer( $text, 
$this->dispatcher,
-                               function ( $msg ) {
-                                       print "$msg\n";
-                               }
-                       );
-               } else {
-                       $tokenHandler = $this->dispatcher;
-               }
-               $this->tokenizer = new Tokenizer( $tokenHandler, $text, 
$options['tokenizer'] );
-       }
-
-       public static function parseDocument( $text, $options ) {
-               $parser = new self( $text, $options );
-               $parser->tokenizer->execute();
-               return $parser->domBuilder->getDocument();
-       }
-}

-- 
To view, visit https://gerrit.wikimedia.org/r/333824
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4bb2c989ca131436a52f35df061b85c66091ec6c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/libs/RemexHtml
Gerrit-Branch: master
Gerrit-Owner: Tim Starling <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to