www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - review delphi designation &suggestion for D

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  
this b4 1.0 is out. So i repost it here, hope walter could take notice on  
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)
     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
       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