private VerbatimTag ParseVerbatimTag(out bool success)
{
int errorCount = Errors.Count;
VerbatimTag verbatimTag = new VerbatimTag();
int start_position = position;
MatchTerminal('!', out success);
if (!success)
{
Error("Failed to parse '!' of VerbatimTag.");
position = start_position;
return verbatimTag;
}
MatchTerminal('<', out success);
if (!success)
{
Error("Failed to parse '<' of VerbatimTag.");
position = start_position;
return verbatimTag;
}
int counter = 0;
while (true)
{
char ch = ParseUriChar(out success);
if (success) { verbatimTag.Chars.Add(ch); }
else { break; }
counter++;
}
if (counter > 0) { success = true; }
if (!success)
{
Error("Failed to parse Chars of VerbatimTag.");
position = start_position;
return verbatimTag;
}
MatchTerminal('>', out success);
if (!success)
{
Error("Failed to parse '>' of VerbatimTag.");
position = start_position;
}
if (success) { ClearError(errorCount); }
return verbatimTag;
}