Пример #1
0
        public XmlElement Visit(ObjectParseNode o)
        {
            var el = makeNode(o, "object");

            addProperty(el, "body", o.Body);
            return(el);
        }
Пример #2
0
 /// <inheritdoc/>
 public virtual ParseNode Visit(ObjectParseNode o)
 {
     foreach (var p in o.Body)
     {
         p.Visit(this);
     }
     return(o);
 }
Пример #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);
        }
Пример #4
0
        /// <inheritdoc />
        public Node Visit(ObjectParseNode obj)
        {
            var ret = new ObjectConstructorNode(obj.Token, obj);

            if (module == null)
            {
                module = ret;
            }
            foreach (ParseNode p in obj.Body)
            {
                var n = p.Visit <Node>(this);
                if (!(p is CommentParseNode))
                {
                    ret.Add(n);
                }
            }
            return(ret);
        }
Пример #5
0
 /// <summary>Translate a tree rooted at a parse node for an
 /// object into the corresponding Node tree</summary>
 /// <param name="obj">Root of the tree</param>
 public Node Translate(ObjectParseNode obj)
 {
     return(obj.Visit(this));
 }