private static void CollectLastWord(char ch)
{
ArrayList chars = new ArrayList();
for (int i = length - 1; i >= 0; i--) {
char c = buffer[i];
if (ch != '\0' && c == ch)
break;
else if (Array.IndexOf(wordBreakChars, c) != -1)
break;
chars.Add(c);
}
chars.Reverse();
lastWord.Length = 0;
lastWord.Append((char[]) chars.ToArray(typeof (char)));
}