internal string AsString()

in src/PSRule.Rules.Azure/Data/Template/TokenStream.cs [114:155]


    internal string AsString()
    {
        var builder = new StringBuilder();
        builder.Append(IndexOpen);
        var group = 0;
        ExpressionToken last = null;
        for (var i = 0; i < _Token.Count; i++)
        {
            var current = _Token[i];
            if (last != null && !(current.Type == ExpressionTokenType.Property || IsStartOrEndToken(current)) && !(last.Type == ExpressionTokenType.GroupStart || last.Type == ExpressionTokenType.IndexStart))
                builder.Append(Comma);

            if (current.Type == ExpressionTokenType.Property)
                builder.Append(Dot);
            else if (current.Type == ExpressionTokenType.GroupStart)
            {
                builder.Append(FunctionOpen);
                group++;
            }
            else if (current.Type == ExpressionTokenType.GroupEnd)
            {
                builder.Append(FunctionClose);
                group--;
            }
            else if (current.Type == ExpressionTokenType.IndexStart)
                builder.Append(IndexOpen);
            else if (current.Type == ExpressionTokenType.IndexEnd)
                builder.Append(IndexClose);
            else if (current.Type == ExpressionTokenType.String)
                builder.Append(BackSlash);
            else if (current.Type == ExpressionTokenType.Numeric)
                builder.Append(current.Value);

            builder.Append(current.Content);
            if (current.Type == ExpressionTokenType.String)
                builder.Append(BackSlash);

            last = current;
        }
        builder.Append(IndexClose);
        return builder.ToString();
    }