Example #1
0
 /// <inheritdoc/>
 public override ParseNode Visit(
     ExplicitReceiverRequestParseNode errpn
     )
 {
     if (!(errpn.Receiver is IdentifierParseNode))
     {
         return(base.Visit(errpn));
     }
     // If the receiver was an identifier, we only
     // want to look at arguments for possible
     // problems - the receiver is OK.
     foreach (var args in errpn.Arguments)
     {
         foreach (var a in args)
         {
             a.Visit(this);
         }
     }
     foreach (var args in errpn.GenericArguments)
     {
         foreach (var a in args)
         {
             a.Visit(this);
         }
     }
     return(errpn);
 }
Example #2
0
        /// <inheritdoc />
        public Node Visit(ExplicitReceiverRequestParseNode irrpn)
        {
            var ret = new ExplicitReceiverRequestNode(irrpn.Token, irrpn,
                                                      irrpn.Receiver.Visit(this));

            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);
        }
Example #3
0
 /// <inheritdoc/>
 public virtual ParseNode Visit(ExplicitReceiverRequestParseNode errpn)
 {
     foreach (var args in errpn.Arguments)
     {
         foreach (var a in args)
         {
             a.Visit(this);
         }
     }
     foreach (var args in errpn.GenericArguments)
     {
         foreach (var a in args)
         {
             a.Visit(this);
         }
     }
     errpn.Receiver.Visit(this);
     return(errpn);
 }
Example #4
0
        public XmlElement Visit(ExplicitReceiverRequestParseNode errpn)
        {
            var el = makeNode(errpn, "explicit-receiver-request");

            addProperty(el, "receiver", errpn.Receiver);
            var parts = document.CreateElement("parts");

            parts.SetAttribute("type", "array");
            for (int i = 0; i < errpn.NameParts.Count; i++)
            {
                var item = document.CreateElement("item");
                item.SetAttribute("type", "object");
                addProperty(item, "name", errpn.NameParts[i]);
                addProperty(item, "arguments", errpn.Arguments[i]);
                addProperty(item, "genericarguments", errpn.GenericArguments[i]);
                parts.AppendChild(item);
            }
            el.AppendChild(parts);
            return(el);
        }