コード例 #1
0
ファイル: RootNode.cs プロジェクト: pavkam/XtraLiteTemplates
        public override string ToString(ExpressionFormatStyle style)
        {
            var result = string.Join(" , ", _groupChildrenNodes.Select(s => s.ToString(style)));

            if (Parent != null)
            {
                if (style == ExpressionFormatStyle.Canonical)
                {
                    result = $"(){{{result}}}";
                }
                else if (style == ExpressionFormatStyle.Arithmetic)
                {
                    if (!string.IsNullOrEmpty(result))
                    {
                        result = $"( {result} )";
                    }
                    else
                    {
                        result = "( )";
                    }
                }
                else if (style == ExpressionFormatStyle.Polish)
                {
                    result = $"({result})";
                }
            }

            return(result);
        }
コード例 #2
0
        public override string ToString(ExpressionFormatStyle style)
        {
            var childAsString = RightNode != null?RightNode.ToString(style) : "??";

            var result = style == ExpressionFormatStyle.Canonical ? $"{Operator}{{{childAsString}}}" : $"{Operator}{childAsString}";

            Debug.Assert(result != null, "resulting string cannot be null.");
            return(result);
        }
コード例 #3
0
        public override string ToString(ExpressionFormatStyle style)
        {
            var arguments = Arguments != null ? Arguments.ToString(style) : string.Empty;

            if (Object != null)
            {
                return $"{Object.ToString(style)}.{Identifier}{arguments}";
            }

            return $"@{Identifier}{arguments}";
        }
コード例 #4
0
        public override string ToString(ExpressionFormatStyle style)
        {
            var leftAsString = LeftNode != null?LeftNode.ToString(style) : "??";

            var rightAsString = RightNode != null?RightNode.ToString(style) : "??";

            string result = null;

            if (style == ExpressionFormatStyle.Arithmetic)
            {
                result = $"{leftAsString} {Operator} {rightAsString}";
            }
            else if (style == ExpressionFormatStyle.Polish)
            {
                result = $"{Operator} {leftAsString} {rightAsString}";
            }
            else if (style == ExpressionFormatStyle.Canonical)
            {
                result = $"{Operator}{{{leftAsString},{rightAsString}}}";
            }

            Debug.Assert(result != null, "resulting string cannot be null.");
            return(result);
        }
コード例 #5
0
        public override string ToString(ExpressionFormatStyle style)
        {
            if (Literal is string)
            {
                var stringLiteral = (string)Literal;

                var result = new StringBuilder(stringLiteral.Length * 2);
                result.Append('\"');
                var enumerator = StringInfo.GetTextElementEnumerator(stringLiteral);
                while (enumerator.MoveNext())
                {
                    var segment = (string)enumerator.Current;

                    if (segment.Length == 1)
                    {
                        var c = segment[0];
                        switch (c)
                        {
                            case '\'':
                                result.Append("\\'");
                                break;
                            case '"':
                                result.Append("\\\"");
                                break;
                            case '\\':
                                result.Append("\\\\");
                                break;
                            case '\0':
                                result.Append("\\0");
                                break;
                            case '\a':
                                result.Append("\\a");
                                break;
                            case '\b':
                                result.Append("\\b");
                                break;
                            case '\f':
                                result.Append("\\f");
                                break;
                            case '\n':
                                result.Append("\\n");
                                break;
                            case '\r':
                                result.Append("\\r");
                                break;
                            case '\t':
                                result.Append("\\t");
                                break;
                            case '\v':
                                result.Append("\\v");
                                break;
                            default:
                                if (char.IsControl(c))
                                {
                                    result.Append($"\\u{(int)segment[0]:x4}");
                                }
                                else
                                {
                                    result.Append(c);
                                }
                                break;
                        }
                    }
                    else
                    {
                        result.Append(segment);
                    }
                }
                result.Append('\"');
                return result.ToString();
            }

            return Literal.ToString();
        }
コード例 #6
0
 /// <summary>
 /// Returns a human-readable representation this expression instance using the specified formatting.
 /// </summary>
 /// <param name="style">The formatting style to use.</param>
 /// <returns>
 /// A <see cref="string" /> that represents this instance.
 /// </returns>
 public string ToString(ExpressionFormatStyle style)
 {
     return(_currentGroupRootNode == null ? "??" : _currentGroupRootNode.ToString(style));
 }
コード例 #7
0
 public abstract string ToString(ExpressionFormatStyle style);