public void VisitFieldAccess(FieldAccess acc)
{
int prec = SetPrecedence(PrecedenceFieldAccess);
Dereference d = acc.Structure as Dereference;
if (d != null)
{
d.Expression.Accept(this);
writer.Write("->{0}", acc.Field.Name);
}
else
{
var scope = acc.Structure as ScopeResolution;
if (scope != null)
{
scope.Accept(this);
writer.Write("::{0}", acc.Field.Name);
}
else
{
acc.Structure.Accept(this);
writer.Write(".{0}", acc.Field.Name);
}
}
ResetPresedence(prec);
}