Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
January 23, 2020 list of all defined items in a D file | ||||
---|---|---|---|---|
| ||||
I'd like to get a list of all items (public, package, private) that are defined in a D file. Is there a simple way, to get them? |
January 23, 2020 Re: list of all defined items in a D file | ||||
---|---|---|---|---|
| ||||
Posted in reply to berni44 | On Thursday, 23 January 2020 at 17:10:29 UTC, berni44 wrote:
> I'd like to get a list of all items (public, package, private) that are defined in a D file. Is there a simple way, to get them?
__traits(allMembers, mixin(__MODULE__))?
Replace with a full module name if not the current one. You'll only get their string names with that though, not aliases to the symbols themselves (as you would have with .tupleof). I imagine you could get those with __traits(getMember, moduleName, stringName).
|
January 24, 2020 Re: list of all defined items in a D file | ||||
---|---|---|---|---|
| ||||
Posted in reply to berni44 | On Thursday, 23 January 2020 at 17:10:29 UTC, berni44 wrote:
> I'd like to get a list of all items (public, package, private) that are defined in a D file. Is there a simple way, to get them?
You can pass the -X flag to dmd, which makes it generate a .json file describing the compiled file.
|
January 24, 2020 Re: list of all defined items in a D file | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dennis | On Friday, 24 January 2020 at 12:22:49 UTC, Dennis wrote:
> You can pass the -X flag to dmd, which makes it generate a .json file describing the compiled file.
Great, that's what I was looking for - although it's also good to know the __traits approach!
Thanks!
|
January 25, 2020 Re: list of all defined items in a D file | ||||
---|---|---|---|---|
| ||||
Posted in reply to berni44 | On Friday, 24 January 2020 at 14:28:03 UTC, berni44 wrote:
> On Friday, 24 January 2020 at 12:22:49 UTC, Dennis wrote:
>> You can pass the -X flag to dmd, which makes it generate a .json file describing the compiled file.
>
> Great, that's what I was looking for - although it's also good to know the __traits approach!
>
> Thanks!
a 3rd approach is to use libdparse and make your own AST serializer by writing a visitor. (or even with DMD front end as a library). Although if it's a matter of time the dmd -X flag is great in the sense that the output format is standard and straightforward.
|
Copyright © 1999-2021 by the D Language Foundation