private static bool ParseQuery (ParserState state)
{
string part = state.remaining;
if (!UriHelper.SupportsQuery (state.elements.scheme))
return part.Length > 0;
if (part.Length == 0 || part [0] != '?')
return part.Length > 0;
StringBuilder sb = new StringBuilder ();
int index;
for (index = 1; index < part.Length; index++) {
char ch = part [index];
if (ch == '#')
break;
sb.Append (ch);
}
if (index <= part.Length)
state.remaining = part.Substring (index);
state.elements.query = sb.ToString ();
return state.remaining.Length > 0;
}