Files
BH-Python-Interpreter-2023/docs/Design.md
2023-11-08 19:07:29 +08:00

1.2 KiB
Raw Blame History

python裂解器设计思路——ZYM

模块划分

  • libsgeneratedresources目录:libs目录存放第三方库其中int2048是我的上个大作业用以提供大整数运算支持json是提供json解析支持clipp是提供命令行参数解析支持。ANTLR框架存放于generatedresources目录中。
  • test目录存放测试相关有一个进程级测试调度核心及相关配置文件、数据点通过ctest_config接入CTest框架使得CTest可以调用进程级测试调度核心
  • include目录:裂解器直接相关的头文件
  • src目录:裂解器直接相关的实现文件。main负责解析命令行参数,解析代码,并访问根节点,同时处理异常;utils负责执行类型转换、数据解析等底层工作,保证Evalvisitor的简洁性;names负责维护变量和函数的注册和调用。

主要重难点

控制流

控制流在数值包括None返回值的基础上新增一个控制类型的范围值不添加任何不必要的封装直接存入std::any,用控制类型这个类型本身标明身份。

函数调用

变量的生效范围与作用域

关键细节

元组

左值和右值