Nette\Neon\Decoder::cbString PHP Method

cbString() private method

private cbString ( $m )
    private function cbString($m)
    {
        $sq = $m[0];
        if (($fix56 = self::ESCAPE_SEQUENCES) && isset($fix56[$sq[1]])) {
            // workaround for PHP 5.6
            return self::ESCAPE_SEQUENCES[$sq[1]];
        } elseif ($sq[1] === 'u' && strlen($sq) >= 6) {
            $lead = hexdec(substr($sq, 2, 4));
            $tail = hexdec(substr($sq, 8, 4));
            $code = $tail ? 0x2400 + ($lead - 0xd800 << 10) + $tail : $lead;
            if ($code >= 0xd800 && $code <= 0xdfff) {
                $this->error("Invalid UTF-8 (lone surrogate) {$sq}");
            }
            return iconv('UTF-32BE', 'UTF-8//IGNORE', pack('N', $code));
        } elseif ($sq[1] === 'x' && strlen($sq) === 4) {
            return chr(hexdec(substr($sq, 2)));
        } else {
            $this->error("Invalid escaping sequence {$sq}");
        }
    }