13        $definition = 
$config->getHTMLDefinition();
 
   15        $stack = array($parent->toNode());
 
   16        foreach ($tokens as $token) {
 
   18            $token->carryover = 
null; 
 
   21                $r = array_pop($stack);
 
   22                assert(
$r->name === $token->name);
 
   23                assert(empty($token->attr));
 
   24                $r->endCol = $token->col;
 
   25                $r->endLine = $token->line;
 
   26                $r->endArmor = $token->armor;
 
   29            $node = $token->toNode();
 
   30            $stack[count($stack)-1]->children[] = $node;
 
   35        assert(count($stack) == 1);
 
   42        $closingTokens = array();
 
   45            while (!$nodes[$level]->isEmpty()) {
 
   46                $node = $nodes[$level]->shift(); 
 
   47                list(
$start, $end) = $node->toTokenPair();
 
   52                    $closingTokens[$level][] = $end;
 
   57                    foreach ($node->children as $childNode) {
 
   58                        $nodes[$level]->push($childNode);
 
   63            if ($level && isset($closingTokens[$level])) {
 
   64                while ($token = array_pop($closingTokens[$level])) {
 
An exception for terminatinating execution or to throw for unit testing.
Converts a stream of HTMLPurifier_Token into an HTMLPurifier_Node, and back again.
static flatten($node, $config, $context)
static arborize($tokens, $config, $context)
Concrete element node class.
A simple array-backed queue, based off of the classic Okasaki persistent amortized queue.
Concrete end token class.
Concrete start token class.