Ejemplo n.º 1
0
        public XmlElement Visit(TraitDeclarationParseNode bpn)
        {
            var el = makeNode(bpn, "trait-declaration");

            addProperty(el, "signature", bpn.Signature);
            addProperty(el, "body", bpn.Body);
            return(el);
        }
Ejemplo n.º 2
0
 /// <inheritdoc/>
 public virtual ParseNode Visit(TraitDeclarationParseNode bpn)
 {
     bpn.Signature.Visit(this);
     foreach (var s in bpn.Body)
     {
         s.Visit(this);
     }
     return(bpn);
 }
Ejemplo n.º 3
0
        /// <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);
        }