private int ParseRows(Row row, bool Keywords)
{
if (!Keywords)
{
int index = IndexOf(row);
int count = 0;
try
{
while (row.InQueue && count < 100)
{
if (index >= 0)
{
if (index > 0)
if (this[index - 1].InQueue)
ParseRow(this[index - 1]);
Parser.ParseRow(index, false);
}
int i = ParseQueue.IndexOf(row);
if (i >= 0)
ParseQueue.RemoveAt(i);
row.InQueue = false;
index++;
count++;
row = this[index];
if (row == null)
break;
}
}
catch {}
return count;
}
else
{
int index = IndexOf(row);
if (index == -1 || row.InKeywordQueue == false)
{
KeywordQueue.Remove(row);
return 0;
}
int count = 0;
try
{
while (row.InKeywordQueue && count < 100)
{
if (index >= 0)
{
if (index > 0)
if (this[index - 1].InQueue)
ParseRow(this[index - 1]);
Parser.ParseRow(index, true);
}
index++;
count++;
row = this[index];
if (row == null)
break;
}
}
catch {}
return count;
}
}