public XmlElement Visit(ObjectParseNode o) { var el = makeNode(o, "object"); addProperty(el, "body", o.Body); return(el); }
/// <inheritdoc/> public virtual ParseNode Visit(ObjectParseNode o) { foreach (var p in o.Body) { p.Visit(this); } return(o); }
/// <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); }
/// <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); }
/// <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)); }