1.2 KiB
1.2 KiB
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
,用控制类型这个类型本身标明身份。