18 lines
1.2 KiB
Markdown
18 lines
1.2 KiB
Markdown
# python裂解器设计思路——ZYM
|
||
## 模块划分
|
||
- `libs`、`generated`、`resources`目录:`libs`目录存放第三方库,其中int2048是我的上个大作业,用以提供大整数运算支持;json是提供json解析支持;clipp是提供命令行参数解析支持。ANTLR框架存放于`generated`、`resources`目录中。
|
||
- `test`目录:存放测试相关,有一个进程级测试调度核心及相关配置文件、数据点,通过ctest_config接入CTest框架使得CTest可以调用进程级测试调度核心
|
||
- `include`目录:裂解器直接相关的头文件
|
||
- `src`目录:裂解器直接相关的实现文件。`main`负责解析命令行参数,解析代码,并访问根节点,同时处理异常;`utils`负责执行类型转换、数据解析等底层工作,保证`Evalvisitor`的简洁性;`names`负责维护变量和函数的注册和调用。
|
||
|
||
## 主要重难点
|
||
### 控制流
|
||
控制流:在数值(包括None)返回值的基础上,新增一个控制类型的范围值,不添加任何不必要的封装直接存入`std::any`,用控制类型这个类型本身标明身份。
|
||
|
||
### 函数调用
|
||
|
||
### 变量的生效范围与作用域
|
||
|
||
## 关键细节
|
||
### 元组
|
||
### 左值和右值 |