X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/mediawiki.git/blobdiff_plain/19e297c21b10b1b8a3acad5e73fc71dcb35db44a..6932310fd58ebef145fa01eb76edf7150284d8ea:/vendor/wikimedia/remex-html/RemexHtml/Tokenizer/TokenGenerator.php diff --git a/vendor/wikimedia/remex-html/RemexHtml/Tokenizer/TokenGenerator.php b/vendor/wikimedia/remex-html/RemexHtml/Tokenizer/TokenGenerator.php new file mode 100644 index 00000000..e9bf973a --- /dev/null +++ b/vendor/wikimedia/remex-html/RemexHtml/Tokenizer/TokenGenerator.php @@ -0,0 +1,45 @@ +handler = new TokenGeneratorHandler( $this ); + $this->tokenizer = new Tokenizer( $this->handler, $text, $options ); + } + + /** + * Get a Generator which iterates over all tokens in the supplied HTML + * + * @param string $text The HTML + * @param array $options The Tokenizer options, see Tokenizer::__construct() + * @return Generator + */ + public static function generate( $text, $options ) { + $tg = new self( $text, $options ); + $tg->tokenizer->beginStepping(); + while ( $tg->tokenizer->step() ) { + foreach ( $tg->handler->tokens as $token ) { + yield $token; + } + $tg->handler->tokens = []; + } + foreach ( $tg->handler->tokens as $token ) { + yield $token; + } + } +}