public Word GetEndBracketWord(Word Start, Pattern End, Span FindIn)
{
if (Start == null || Start.Pattern == null || Start.Span == null)
return null;
int CurrentRow = Start.Row.Index;
int LastRow = Count - 1;
if (FindIn.EndRow != null)
LastRow = FindIn.EndRow.Index;
int x = Start.Index;
int count = 0;
while (CurrentRow <= LastRow)
{
for (int i = x; i < this[CurrentRow].Count; i++)
{
Word w = this[CurrentRow][i];
if (w.Span == FindIn && w.Type == WordType.Word)
{
if (w.Pattern == Start.Pattern)
count++;
if (w.Pattern == End)
count--;
if (count == 0)
return w;
}
}
if (!Start.Pattern.IsMultiLineBracket)
break;
CurrentRow++;
x = 0;
}
return null;
}