Time for std.reflection
Philippe Sigaud
philippe.sigaud at gmail.com
Sun Jul 22 23:35:06 PDT 2012
On Sun, Jul 22, 2012 at 6:15 PM, Andrej Mitrovic
<andrej.mitrovich at gmail.com> wrote:
> On 7/22/12, Philippe Sigaud <philippe.sigaud at gmail.com> wrote:
>> 2) Why classes, as opposed to structs?
>
> I think either way you'd need reference semantics.
Yeah, I agree, reference semantics look better.
And since there is a lot of duplication (struct info is a subtype of
class info, itself looking very uch like a module info, I guess a
mini-hierarchy is possible).
So I'm convinced classes look like a good fit.
> You could use structs as well, and actually I use structs in my
> codegenerator (with a similar layout to what Andrei posted). Each
> struct (e.g. Class/Function) stores Symbols, which are structs with an
> ID and a Type. I can look up each symbol in a SymTable which actually
> holds the structures with data. So a Symbol is like a fake pointer,
> and the SymTable would be the memory. I originally planned to use
> classes but some serialization frameworks didn't work with those so I
> settled using structs and a bit of template mixin magic instead.
Could you describe your design in this thread, and possibly link to some code?
> All of this std.reflection talk is quite exciting actually.
It is!
> If you had
> AST information about your entire D library you could do some really
> cool things. You could make a better documentation generator than
> ddoc, or export the AST into a file for a code-completion plugin, or
> create a wrapper C library which enables other languages to use your D
> library.
You could do macros. 'nuff said.
More information about the Digitalmars-d
mailing list