2024/06/24 工作日志

本次主要整理了代码的风格,并且发布了2.4.5。

修复了部分问题

将析构的函数也定义为虚函数,防止了可能的内存泄露。

格式化代码

本建议来自于一个issue

感谢其提议,我对代码的风格进行了如下调整:

  1. 将嵌套的namespace整合成一个namespace

例如:

C++ namespace stamon { namespace ast { ... } }

在整合之后成为:

C++ namespace stamon::ast { ... }

这么做可以节约代码的缩进空间。

  1. 在 namespace 的末尾加上注释

例如:

C++ namespace stamon { } // namespace stamon

  1. 不在头文件中且在上层namespace中using下层namespace

即不再使用using namespace stamon:xxx;,而是在访问成员时使用xxx::xxxxx

  1. 将一些能放入namespace的常量值放入了namespace里

  2. 不要用 #ifndef #define 来防止头文件被重复包含,而是使用#pragma once

与此同时,我对未来的代码编写做出了一些改变:

  1. 将宏用 do {} while(0) 包裹,同时在调用宏的时候在末尾加上分号

  2. 将一些能封装为函数的宏封装为函数

  3. 加入了我喜欢的.clang-format,以后的代码可能都使用其进行格式化

接下来要做的事

  1. 编写AST的解释器
  2. 编写词法分析的保存功能
  3. 编写AST的O1优化器
  4. 完善标准库
  5. 支持编译为平面字节码