public void VisitMemberPointerSelector(MemberPointerSelector mps)
{
int prec = SetPrecedence(PrecedenceMemberPointerSelector);
Dereference d = mps.BasePointer as Dereference;
if (d != null)
{
d.Expression.Accept(this);
writer.Write("->*");
}
else
{
mps.BasePointer.Accept(this);
writer.Write(".*");
}
var old = forceParensIfSamePrecedence;
forceParensIfSamePrecedence = true;
mps.MemberPointer.Accept(this);
forceParensIfSamePrecedence = old;
ResetPresedence(prec);
}