跳转到内容

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

tree-dump.c/字符类开关

tree-dump.c/测试 rtl

华夏公益教科书