public static Expression ReplaceTransparentIdentifiers (Expression expression)
    {
      ArgumentUtility.CheckNotNull ("expression", expression);

      Expression expressionBeforeRemove;
      Expression expressionAfterRemove = expression;

      // Run again and again until no replacements have been made.
      do
      {
        expressionBeforeRemove = expressionAfterRemove;
        expressionAfterRemove = new TransparentIdentifierRemovingExpressionVisitor().Visit (expressionAfterRemove);
      } while (expressionAfterRemove != expressionBeforeRemove);

      return expressionAfterRemove;
    }
        public static Expression ReplaceTransparentIdentifiers(Expression expression)
        {
            ArgumentUtility.CheckNotNull("expression", expression);

            Expression expressionBeforeRemove;
            Expression expressionAfterRemove = expression;

            // Run again and again until no replacements have been made.
            do
            {
                expressionBeforeRemove = expressionAfterRemove;
                expressionAfterRemove  = new TransparentIdentifierRemovingExpressionVisitor().Visit(expressionAfterRemove);
            } while (expressionAfterRemove != expressionBeforeRemove);

            return(expressionAfterRemove);
        }