Jurassic.Compiler.LiteralExpression.ToString C# (CSharp) Method

ToString() public method

Converts the expression to a string.
public ToString ( ) : string
return string
        public override string ToString()
        {
            // Array literal.
            if (this.Value is List<Expression>)
            {
                var result = new System.Text.StringBuilder("[");
                foreach (var item in (List<Expression>)this.Value)
                {
                    if (result.Length > 1)
                        result.Append(", ");
                    result.Append(item);
                }
                result.Append("]");
                return result.ToString();
            }

            // Object literal.
            if (this.Value is List<KeyValuePair<Expression, Expression>>)
            {
                var result = new System.Text.StringBuilder("{");
                foreach (var keyValuePair in (List<KeyValuePair<Expression, Expression>>)this.Value)
                {
                    if (result.Length > 1)
                        result.Append(", ");
                    if (keyValuePair.Value is Expression)
                    {
                        if (keyValuePair.Key is Expression)
                            result.Append('[');
                        result.Append(keyValuePair.Key);
                        if (keyValuePair.Key is Expression)
                            result.Append(']');
                        result.Append(": ");
                        result.Append(keyValuePair.Value);
                    }
                    else if (keyValuePair.Value is FunctionExpression)
                    {
                        var function = (FunctionExpression)keyValuePair.Value;
                        if (function.DeclarationType == FunctionDeclarationType.Getter)
                            result.Append("get ");
                        else if (function.DeclarationType == FunctionDeclarationType.Setter)
                            result.Append("set ");
                        result.Append(function.ToString().Substring(9));
                    }
                }
                result.Append("}");
                return result.ToString();
            }

            // RegExp literal.
            if (this.Value is RegularExpressionLiteral)
                return this.Value.ToString();

            // String literal.
            if (this.Value is string)
                return Library.StringInstance.Quote((string)this.Value);

            // Everything else.
            return TypeConverter.ToString(this.Value);
        }