/// <summary>
        /// Adds to expression.
        /// </summary>
        /// <param name="factory">
        /// The factory.
        /// </param>
        /// <param name="expression">
        /// To.
        /// </param>
        /// <param name="sign">
        /// The sign.
        /// </param>
        /// <returns>
        /// </returns>
        private static ICSharpExpression AddToExpression(CSharpElementFactory factory, ICSharpExpression expression, char sign)
        {
            var sign2 = sign == '-' ? '+' : '-';

              var text = expression.GetText();

              if (text.StartsWith("(") && text.EndsWith(")"))
              {
            text = text.Substring(1, text.Length - 2);
              }

              var match = Regex.Match(text, "\\" + sign2 + "\\s*1\\s*$");
              if (match.Success)
              {
            text = text.Substring(0, text.Length - match.Value.Length).Trim();

            if (text.StartsWith("(") && text.EndsWith(")"))
            {
              text = text.Substring(1, text.Length - 2);
            }
              }
              else
              {
            if (expression is IBinaryExpression)
            {
              text = "(" + text + ") " + sign + " 1";
            }
            else
            {
              text += sign + " 1";
            }
              }

              text = text.Trim();

              var result = factory.CreateExpression(text);

              if (result.IsConstantValue())
              {
            result = factory.CreateExpressionByValue(result.ConstantValue);
              }

              return result;
        }