protected override void DoPull()
{
bool pull = false;
if (sourceCodeTagsMode) {
Regex rx = new Regex("^(.+?)\\s+\\S+\\s+\\d+\\s+(\\S+)");
do {
string s = ctagsOutput.ReadLine();
if (s == "###terminator###") {
Finished ();
break;
} else {
MatchCollection matches = rx.Matches(s);
foreach (Match match in matches) {
GroupCollection groups = match.Groups;
string value = groups[1].Value + "\n";
pull = AppendChars(value.ToCharArray(), 0, value.Length);
}
}
} while (pull);
} else {
do {
int read = TextReader.Read (buf, 0, BUFSIZE);
if (read == 0) {
Finished ();
break;
} else {
pull = AppendChars (buf, 0, read);
}
} while (pull);
}
}