public XmlElement Visit(InterpolatedStringParseNode ispn) { var el = makeNode(ispn, "interpolated-string"); addProperty(el, "parts", ispn.Parts); return(el); }
/// <inheritdoc/> public virtual ParseNode Visit(InterpolatedStringParseNode ispn) { foreach (var p in ispn.Parts) { p.Visit(this); } return(ispn); }
/// <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); }