public XmlElement Visit(TraitDeclarationParseNode bpn) { var el = makeNode(bpn, "trait-declaration"); addProperty(el, "signature", bpn.Signature); addProperty(el, "body", bpn.Body); return(el); }
/// <inheritdoc/> public virtual ParseNode Visit(TraitDeclarationParseNode bpn) { bpn.Signature.Visit(this); foreach (var s in bpn.Body) { s.Visit(this); } return(bpn); }
/// <inheritdoc /> public Node Visit(TraitDeclarationParseNode d) { var constructor = new MethodDeclarationParseNode(d.Token); constructor.Signature = d.Signature; var instanceObj = new ObjectParseNode(d.Token); instanceObj.Body = d.Body; constructor.Body.Add(instanceObj); var ret = (MethodNode)constructor.Visit(this); // Traits are public by default. // The next line makes them public always; it is not // possible to have a confidential trait. It is unclear // whether that should be permitted or not. ret.Confidential = false; return(ret); }