private function parseNumericValue($bForColor = false)
{
$sSize = '';
if ($this->comes('-')) {
$sSize .= $this->consume('-');
}
while (is_numeric($this->peek()) || $this->comes('.')) {
if ($this->comes('.')) {
$sSize .= $this->consume('.');
} else {
$sSize .= $this->consume(1);
}
}
$sUnit = null;
foreach ($this->aSizeUnits as $iLength => &$aValues) {
$sKey = strtolower($this->peek($iLength));
if (array_key_exists($sKey, $aValues)) {
if (($sUnit = $aValues[$sKey]) !== null) {
$this->consume($iLength);
break;
}
}
}
return new Size(floatval($sSize), $sUnit, $bForColor);
}