Beispiel #1
0
        public XmlElement Visit(InterpolatedStringParseNode ispn)
        {
            var el = makeNode(ispn, "interpolated-string");

            addProperty(el, "parts", ispn.Parts);
            return(el);
        }
Beispiel #2
0
 /// <inheritdoc/>
 public virtual ParseNode Visit(InterpolatedStringParseNode ispn)
 {
     foreach (var p in ispn.Parts)
     {
         p.Visit(this);
     }
     return(ispn);
 }
Beispiel #3
0
        /// <inheritdoc />
        public Node Visit(InterpolatedStringParseNode n)
        {
            Node ret = null;

            foreach (ParseNode part in n.Parts)
            {
                if (ret == null)
                {
                    ret = part.Visit(this);
                }
                else
                {
                    var errn = new ExplicitReceiverRequestNode(n.Token, n,
                                                               ret);
                    var args = new List <Node>();
                    if (!(part is StringLiteralParseNode))
                    {
                        var rpnAS = new RequestPartNode("asString",
                                                        new List <Node>(), new List <Node>());
                        var errnAS = new ExplicitReceiverRequestNode(n.Token,
                                                                     n, part.Visit(this));
                        errnAS.AddPart(rpnAS);
                        args.Add(errnAS);
                    }
                    else
                    {
                        args.Add(part.Visit(this));
                    }
                    var rpn = new RequestPartNode("++",
                                                  new List <Node>(), args);
                    errn.AddPart(rpn);
                    ret = errn;
                }
            }
            return(ret);
        }