Esempio n. 1
0
bool Uri::Private::parseRelativeRef()
{
    if (!parseRelativePart()) {
        return false;
    }
    if (expectChar('?')) {
        parseQuery();
    }
    if (expectChar('#')) {
        parseFragment();
    }
    return true;
}
Esempio n. 2
0
void URI::parsePathEtc(std::string::const_iterator& it, const std::string::const_iterator& end)
{
	if (it == end) return;
	if (*it != '?' && *it != '#')
		parsePath(it, end);
	if (it != end && *it == '?')
	{
		++it;
		parseQuery(it, end);
	}
	if (it != end && *it == '#')
	{
		++it;
		parseFragment(it, end);
	}	
}
Esempio n. 3
0
bool Uri::Private::parseURI()
{
    if (!parseScheme()) {
        return false;
    }
    if (!expectChar(':')) {
        return false;
    }
    if (!parseHierPart()) {
        return false;
    }
    if (expectChar('?')) {
        parseQuery();
    }
    if (expectChar('#')) {
        parseFragment();
    }
    return true;
}
Esempio n. 4
0
int URI::parse(int p0)
{

    int p = p0;

    int p2 = parseScheme(p);
    if (p2 < 0)
        {
        error("Scheme");
        return -1;
        }
    p = p2;


    p2 = parseHierarchicalPart(p);
    if (p2 < 0)
        {
        error("Hierarchical part");
        return -1;
        }
    p = p2;

    p2 = parseQuery(p);
    if (p2 < 0)
        {
        error("Query");
        return -1;
        }
    p = p2;


    p2 = parseFragment(p);
    if (p2 < 0)
        {
        error("Fragment");
        return -1;
        }
    p = p2;

    return p;

}