/// <inheritdoc /> public Node Visit(ImplicitReceiverRequestParseNode irrpn) { ImplicitReceiverRequestNode ret = null; if (irrpn.Name == "if then") { ret = new IfThenRequestNode(irrpn.Token, irrpn); } else if (irrpn.Name == "for do") { ret = new ForDoRequestNode(irrpn.Token, irrpn); } else { ret = new ImplicitReceiverRequestNode(irrpn.Token, irrpn); } for (int i = 0; i < irrpn.Arguments.Count; i++) { var rpn = new RequestPartNode( ((IdentifierParseNode)irrpn.NameParts[i]).Name, map(irrpn.GenericArguments[i]), map(irrpn.Arguments[i])); ret.AddPart(rpn); } return(ret); }
/// <inheritdoc/> public override ParseNode Visit( ImplicitReceiverRequestParseNode irrpn ) { if (irrpn.NameParts.Count != 1) { return(base.Visit(irrpn)); } // A single-part name could be a banned identifier. var n = (IdentifierParseNode)irrpn.NameParts[0]; Visit(n); // The arguments require checking either way. foreach (var args in irrpn.Arguments) { foreach (var a in args) { a.Visit(this); } } foreach (var args in irrpn.GenericArguments) { foreach (var a in args) { a.Visit(this); } } return(irrpn); }
/// <inheritdoc/> public virtual ParseNode Visit(ImplicitReceiverRequestParseNode irrpn) { foreach (var args in irrpn.Arguments) { foreach (var a in args) { a.Visit(this); } } foreach (var args in irrpn.GenericArguments) { foreach (var a in args) { a.Visit(this); } } return(irrpn); }
public XmlElement Visit(ImplicitReceiverRequestParseNode irrpn) { var el = makeNode(irrpn, "implicit-receiver-request"); addProperty(el, "name", irrpn.Name); var parts = document.CreateElement("parts"); parts.SetAttribute("type", "array"); for (int i = 0; i < irrpn.NameParts.Count; i++) { var item = document.CreateElement("item"); item.SetAttribute("type", "object"); addProperty(item, "name", irrpn.NameParts[i]); addProperty(item, "arguments", irrpn.Arguments[i]); addProperty(item, "genericarguments", irrpn.GenericArguments[i]); parts.AppendChild(item); } el.AppendChild(parts); return(el); }