public function parse($ini)
    {
        if (!is_string($ini)) {
            throw new ParserException('Cannot parse non-string INI data');
        }

        $ini = @parse_ini_string($ini, true, INI_SCANNER_RAW);

        if (false === $ini) {
            $e = error_get_last();
            throw new ParserException('Error during parsing INI: '.$e['message']);
        }

        return $this->normalize($ini);
    }