private static string AsName(IExpression expression)
{
// TODO DotExpression responsability
if (expression is DotExpression)
{
DotExpression dot = (DotExpression)expression;
return AsName(dot.Expression) + "." + dot.Name;
}
if (expression is VariableExpression)
{
return ((VariableExpression)expression).Name;
}
return null;
}