Ant*_*nov 8 oop introspection raku
如何以编程方式找到 Raku 包中的所有类、语法和角色?(用字符串指定。)
我检查了类似于下面链接的讨论/帖子,但我想出的代码很难使用。(并且不做这项工作。)
元编程:什么、为什么和如何(perl6advent)
第 19 天 – 内省(perl6advent)
我想为 Raku 包自动生成 UML 类图。
请参阅 Raku 包的 PlantUML 图: ML::StreamsBlendingRecommender。
我考虑了以下步骤:
使用 C++、Java、Kotlin、Raku 等语言制作的软件包中类代码的设计解析器
根据解析结果生成对应的PlantUML代码
(这样的解析器可能并不难推导出。可能DrForr的工作提供了良好的开端。)
但是考虑到 Raku 的内省能力,我应该能够“仅仅”遍历包命名空间和类,而不是解析 Raku 代码。(而不是制作解析器。)
Raku 中没有“中央”类词典。让这个问题更难解决,现在只有关于他们使用的父类和角色的类。但是他们不知道从他们继承的任何类。或者,如果您查看一个角色,其他哪些角色和类使用该角色。
因此,乐中的班级和角色是不负责任的父母:-)
我想可能有一种方法可以在 MOP 中做一些诡计,但这可能会产生显着的性能影响并导致内存泄漏(因为许多临时类将不再被垃圾收集,因为记录保存会使其保持活动状态)。