public function hiliteWithNesting($output) { $base = $output->add("base"); $result = $this->hiliteSingle($base); if (!$result) { return false; } if ($this->align->comp === null) { return true; } $order = $this->align->comp->child_order; if ($order === null) { return true; } $output->alignment = $this->align; $_g = 0; while ($_g < $order->length) { $name = $order[$_g]; ++$_g; $child = $this->align->comp->children->get($name); $alignment = $child->alignment; if ($alignment->isMarkedAsIdentical()) { $this->align->comp->children->set($name, null); continue; } $td = new coopy_TableDiff($alignment, $this->flags); $child_output = $output->add($name); $result = $result && $td->hiliteSingle($child_output); unset($td, $name, $child_output, $child, $alignment); } return $result; }