ah, useful, somewhat, as
Program.defined(object_program(Stdio));
(9) Result: "/local/users/mbaehr/tomoyo/src/pike/Pike-7.7/lib/master.pike:1648"
is the definition if the joinnode class.
it's not a deal breaker though as i went down the route of parsing the docs each time a program is compiled, which has the advantage of working with compile_string() too.
right now i am stuck somewhere else. the detection of modules is currently a rather crude guess based on the token stream and i'd like to have something more reliable.
there appears to be a difference between what _typeof() finds, but other than using sprintf() and scanning the string i don't know how to make use of that:
_typeof(Tools);
Result: object(is master()->joinnode)
_typeof(Tools.Hilfe);
Result: object(is object_program(Tools.Hilfe))
_typeof(.somemodule);
Result: object(is object_program(/local/users/mbaehr/tomoyo/src/pike/tmp/somemodule))
_typeof(.someclass(1));
Result: object(is /local/users/mbaehr/tomoyo/src/pike/tmp/someclass)
greetings, martin.