private ReservedDirective ParseReservedDirective(out bool success)
{
int errorCount = Errors.Count;
ReservedDirective reservedDirective = new ReservedDirective();
int start_position = position;
MatchTerminal('%', out success);
if (!success)
{
Error("Failed to parse '%' of ReservedDirective.");
position = start_position;
return reservedDirective;
}
reservedDirective.Name = ParseDirectiveName(out success);
if (!success)
{
Error("Failed to parse Name of ReservedDirective.");
position = start_position;
return reservedDirective;
}
while (true)
{
while (true)
{
int seq_start_position1 = position;
ParseSeparationSpace(out success);
if (!success)
{
Error("Failed to parse SeparationSpace of ReservedDirective.");
break;
}
string str = ParseDirectiveParameter(out success);
if (success) { reservedDirective.Parameters.Add(str); }
else
{
Error("Failed to parse DirectiveParameter of ReservedDirective.");
position = seq_start_position1;
}
break;
}
if (!success) { break; }
}
success = true;
ParseInlineComments(out success);
if (!success)
{
Error("Failed to parse InlineComments of ReservedDirective.");
position = start_position;
}
if (success) { ClearError(errorCount); }
return reservedDirective;
}