public object TryEvaluate(IContext context)
{
object obj = null;
if (this.expression is DotExpression)
obj = ((DotExpression)this.expression).TryEvaluate(context);
else
obj = this.expression.Evaluate(context);
if (obj != null && !(obj is Undefined))
return this.Evaluate(obj, context);
return null;
}