private DataItem ParseBlockCollectionEntryOptionalIndent(out bool success)
{
int errorCount = Errors.Count;
DataItem dataItem = null;
RememberIndent();
while (true)
{
int seq_start_position1 = position;
ParseSeparationSpaceAsIndent(out success);
if (!success)
{
Error("Failed to parse SeparationSpaceAsIndent of BlockCollectionEntryOptionalIndent.");
break;
}
dataItem = ParseBlockCollection(out success);
if (!success)
{
Error("Failed to parse BlockCollection of BlockCollectionEntryOptionalIndent.");
position = seq_start_position1;
}
break;
}
RestoreIndent();
if (success) { ClearError(errorCount); return dataItem; }
RememberIndent();
dataItem = ParseSeparatedBlock(out success);
RestoreIndent();
if (success) { ClearError(errorCount); return dataItem; }
return dataItem;
}