Пример #1
0
        public override object VisitRawStringExpr(RawStringExprContext context)
        {
            var text = "";

            if (context.rawStringTemplate().Length == 0)
            {
                foreach (var i in range(1, context.ChildCount - 2, 1, true, true))
                {
                    var v = context.GetChild(i);
                    var r = (string)(Visit(context.GetChild(i)));
                    if (v.@is <RawStringContentContext>())
                    {
                        text += r;
                    }
                    else
                    {
                        text += "\"\"";
                    }
                }
                return((new System.Text.StringBuilder().Append("@").Append("\"").Append(text).Append("\"")).to_str());
            }
            else
            {
                text = "(new System.Text.StringBuilder()";
                foreach (var i in range(1, context.ChildCount - 2, 1, true, true))
                {
                    var v = context.GetChild(i);
                    var r = (string)(Visit(context.GetChild(i)));
                    if (v.@is <RawStringContentContext>())
                    {
                        text += (new System.Text.StringBuilder().Append(".Append(@").Append("\"").Append(r).Append("\"").Append(")")).to_str();
                    }
                    else if (v.@is <RawStringTemplateContext>())
                    {
                        text += r;
                    }
                    else
                    {
                        text += ".Append('\"')";
                    }
                }
                text += ").to_str()";
                return(text);
            }
        }
Пример #2
0
        public override object VisitRawStringExpr(RawStringExprContext context)
        {
            var text = "";

            if (context.rawStringTemplate().Length == 0)
            {
                foreach (var i in 1.Up_until(context.ChildCount - 1))
                {
                    var v = context.GetChild(i);
                    var r = ((string)Visit(context.GetChild(i)));
                    if ((v is RawStringContentContext))
                    {
                        text += r;
                    }
                    else
                    {
                        text += "\"\"";
                    }
                }
                return((new System.Text.StringBuilder().Append("@").Append("\"").Append(text).Append("\"")).To_Str());
            }
            else
            {
                text = "(new System.Text.StringBuilder()";
                foreach (var i in 1.Up_until(context.ChildCount - 1))
                {
                    var v = context.GetChild(i);
                    var r = ((string)Visit(context.GetChild(i)));
                    switch (v)
                    {
                    case RawStringContentContext it:
                    { text += (new System.Text.StringBuilder().Append(".Append(@").Append("\"").Append(r).Append("\"").Append(")")).To_Str(); } break;

                    case RawStringTemplateContext it:
                    { text += r; } break;

                    default:
                    { text += ".Append('\"')"; } break;
                    }
                }
                text += ").To_Str()";
                return(text);
            }
        }