首页 > 解决方案 > 以编程方式查找 Raku 包中的所有类、语法和角色

问题描述

如何以编程方式找到 Raku 包中的所有类、语法和角色?(用字符串指定。)

我检查了类似于下面链接的讨论/帖子,但我想出的代码很难使用。(并且不做这项工作。)

动机

我想为 Raku 包自动生成 UML 类图。

请参阅 Raku 包 的PlantUML 图: ML::StreamsBlendingRecommender

我考虑了以下步骤:

(这样的解析器可能并不难推导出来。也许DrForr的工作提供了良好的开端。)

但鉴于 Raku 的自省能力,我应该能够“仅”遍历包名称空间和类,而不是解析 Raku 代码。(而不是制作解析器。)

标签: ooprakuintrospection

解决方案


Raku 中没有“中央”类词典。并且使问题更难解决,现在只对他们的父类和他们使用的角色进行类。但是他们知道从他们那里继承的任何类。或者,如果您查看一个角色,哪些其他角色和类会使用该角色。

因此,Raku 中的班级和角色是不负责任的父母 :-)

我想可能有一种方法可以在 MOP 中做一些诡计,但这可能会产生显着的性能影响并导致内存泄漏(因为许多临时类将不再被垃圾收集,因为记录保存会使它保持活动状态)。


推荐阅读