public function getOpCodes()
{
$i = 0;
$j = 0;
$opCodes = array();
$blocks = $this->getMatchingBlocks();
foreach ($blocks as $block) {
list($ai, $bj, $size) = $block;
$tag = '';
if ($i < $ai && $j < $bj) {
$tag = 'replace';
} elseif ($i < $ai) {
$tag = 'delete';
} elseif ($j < $bj) {
$tag = 'insert';
}
if ($tag) {
$opCodes[] = array($tag, $i, $ai, $j, $bj);
}
$i = $ai + $size;
$j = $bj + $size;
if ($size) {
$opCodes[] = array('equal', $ai, $i, $bj, $j);
}
}
return $opCodes;
}