我添加了NumberMap,它和StringMap相似,是一个以整数为键的Map。
如果你要了解NumberMap的用法或实现,请阅读NumberMap.hpp。
当然,目前的NumberMap仍然是临时的,我会在后续做出改动。
此外,我也稍加改动了其他依赖库,让它在后续更容易改动
代码位于src/data_type。
如果你想要直接引用所有数据类型定义,请直接引用DataType.hpp。
注意,所有的数据类型定义都存放在stamon::datatype这个命名空间里,所以如果你要使用数据类型定义,可以写以下代码
#include"DataType.hpp" //引用DataType.hpp
using namespace stamon::datatype; //引用数据类型定义的命名空间
数据类型定义的设计比Ast节点的设计要简单得多(详见20230812.md):
有一个基类DataType,所有的具体数据类型都需要继承DataType。
接下来我们来简单介绍一下目录结构。
data_type
|-DataType.hpp //在这里存放基类的定义
|-NullType.hpp //空值数据类型定义
|-NumberType.hpp //数字数据类型定义,具体定义了整数、单精度浮点数、双精度浮点数
|-StringType.hpp //字符串数据类型定义
|-SequenceType.cpp //数列数据类型定义
|-MethodType.cpp //方法数据类型定义
|-ClassType.cpp //类数据类型定义
|-ObjectType.cpp //类对象数据类型定义
如果你想要阅读数据类型定义的源码,建议按照以下顺序阅读
本次提交的内容其实不算复杂,但是因为数据类型定义的设计会影响到后面的很多架构,所以我需要谨慎思考。
本次提交还着重更改了依赖库,事实上,依赖库的设计也是让我比较头疼的。
本次提交的数据类型定义可能注释并不全面,我将会在后续继续提交注释。
这种简单的代码还需要写注释
值得注意的是,从项目第一次提交到现在,我没有对代码进行过一次调试,接下来我会对我写过的代码进行简单的调试。