public string GetPreviousMemberReferenceExpression (int tokenIndex)
{
string result = GetPreviousToken (ref tokenIndex, false);
result = GetPreviousToken (ref tokenIndex, false);
if (result != ".") {
result = null;
} else {
List<string > names = new List<string> ();
while (result == ".") {
result = GetPreviousToken (ref tokenIndex, false);
if (result == "this") {
names.Add ("handle");
} else if (result != null) {
string trimmedName = result.Trim ();
if (trimmedName.Length == 0)
break;
names.Insert (0, trimmedName);
}
result = GetPreviousToken (ref tokenIndex, false);
}
result = String.Join ("", names.ToArray ());
foreach (char ch in result) {
if (!char.IsLetterOrDigit (ch) && ch != '_') {
result = "";
break;
}
}
}
return result;
}