digitalmars.D - review delphi designation &suggestion for D
- davidl (70/70) Dec 27 2006 i've been playing with D&Delphi for a while. I've posted an article in
i've been playing with D&Delphi for a while. I've posted an article in D.learn about bringing DDoc property and class member's name property. I think we should concern this b4 1.0 is out. So i repost it here, hope walter could take notice on this. i think Runtime type information (RTTI in delphi) is somewhat similar to DDoc properties and also class members' name property. with class members' name property we could have a full reflection & serialization mechanism think about void serializer(T)(T t) { foreach(a;t.tupleof) { writefln(`serializing `~a.membername~` `~a); } } with ddoc property we can find descriptions and definitions easier. if we have ddoc designed to generate a tree like datastructure. consider the following file: module testddoc; /** class **/ class myclass { int member; ///member1; long member2; ///member2; } /** hello func**/ void hello() { /** nested func**/ void nestedfunc() { } } void main() { /// ddoc hello(); auto myclassinstance= new myclass; } with ddoc property , i hope i can have nestedfunc.ddoc -> ' nested func ' nestedfunc.ddoc.parent -> ' hello func ' myclassinstance.ddoc -> 'class' myclassinstance.member.ddoc -> ' member1 ' myclassinstance.member.ddoc.parent -> 'class' myclassinstance.member.ddoc.parent.parent -> 'Module testddoc' and we can have DDOC getTopModule(T)(T t) { static if ( t.parent != 0 ) return getTopModule(t.parent); return t; } //a func print ddoc info DDOC print=getTopModule(myclassinstance.member.ddoc); while (ddocprint.child!=myclassinstance.member.ddoc) { writef(ddocprint.child~' '); ddocprint= ddocprint.child; } i hope it would print: Module testddoc class member1 this would be helpful for generating meaningful debug info. This's a just a rough thinking. suggestions are welcome -- 使用 Opera 革命性的电子邮件客户程序: http://www.opera.com/mail/
Dec 27 2006