Introspector/GccCpp
外观
使用 g++ 编译 gcc 的目的是为了能够从编译器直接获取有关树的信息。目前,对树数据结构的访问没有像预期那样紧密地封装起来。通过使用 c++ 编译器,我们可以监控对树节点的所有读写访问。这样我们就可以隔离它们的使用方式。
然后我们应该能够重建一个更好、更有文档记录的树接口。
我尝试过使用 java 编译 gcc 源代码,但它不支持运算符重载,并且需要你重新设计所有类型的东西。
在这里,我为所有成员引入了智能指针。以及一个用于直接值的整数包装器。
在这一点上,位域不再被优化。
下一步将是将原始树定义作为内部存储包含进来,并使用包装器作为公共接口。
我还将中心树联合体替换为基类。
使用类而不是联合体的想法是
当我们重构完部分代码后,就不需要使用联合体了。使用虚拟基类和继承将消除对它们的需要。
我们需要对模型进行多次迭代,才能使 gcc 使用 c++ 编译的后端运行。它肯定会遇到一些批评,所以我们会在准备好之前保留这些页面。
这里提供了合并的头文件 Introspector/GccCpp/mytypes.h]
这里是经过修改的树头文件 Introspector/GccCpp/tree.h
这里是经过修改的 rtl 头文件 Introspector/GccCpp/rtl.h
这是我目前的补丁 : Introspector/GccCpp/patch.diff