2023/08/25 工作日志

1. 提交了一些漏洞修复

  1. 修改了AnonClass节点(这些漏洞比较难解释,你可以通过对比源码来了解我更改了哪些地方)
  2. 修复了部分依赖库(ArrayList.hpp和Stack.hpp)
  3. 修复了AST代码,在原本的AST代码当中,将子节点的存储方式从值存储变成指针存储(详见src/ast下的源码)
  4. 修复了文档的一些病句(详细请对比20230812.md)

2. 更新了依赖库

我添加了NumberMap,它和StringMap相似,是一个以整数为键的Map。
如果你要了解NumberMap的用法或实现,请阅读NumberMap.hpp。
当然,目前的NumberMap仍然是临时的,我会在后续做出改动。

此外,我也稍加改动了其他依赖库,让它在后续更容易改动

3. 数据类型定义的代码已经全部完工

代码位于src/data_type。
如果你想要直接引用所有数据类型定义,请直接引用DataType.hpp。
注意,所有的数据类型定义都存放在stamon::datatype这个命名空间里,所以如果你要使用数据类型定义,可以写以下代码

```C++

include"DataType.hpp" //引用DataType.hpp

using namespace stamon::datatype; //引用数据类型定义的命名空间 ```

4. 数据类型定义的设计

数据类型定义的设计比Ast节点的设计要简单得多(详见20230812.md):
有一个基类DataType,所有的具体数据类型都需要继承DataType。

接下来我们来简单介绍一下目录结构。

C++ data_type |-DataType.hpp //在这里存放基类的定义 |-NullType.hpp //空值数据类型定义 |-NumberType.hpp //数字数据类型定义,具体定义了整数、单精度浮点数、双精度浮点数 |-StringType.hpp //字符串数据类型定义 |-SequenceType.cpp //数列数据类型定义 |-MethodType.cpp //方法数据类型定义 |-ClassType.cpp //类数据类型定义 |-ObjectType.cpp //类对象数据类型定义


如果你想要阅读数据类型定义的源码,建议按照以下顺序阅读

  1. DataType.hpp
  2. NullType.hpp
  3. NumberType.hpp
  4. StringType.hpp
  5. SequenceType.cpp
  6. MethodType.cpp
  7. ClassType.cpp
  8. ObjectType.cpp

5. 接下来要做的事

  1. 完成STVM的内部数据结构
  2. 对代码进行测试