本项目github仓库
目录
GUI使用的是ImGUI,后端使用glfw3+opengl3,glfw的依赖已经作为子模块导入到仓库中。如果未安装opengl3请自行安装,或者使用其他的渲染管线。
使用CMake默认的option编译之后build/examples/interpreter_examples下有一个draw_lang_main的可执行文件,这个就是解释器主体,可能看上去字体有点小,不想调了,功能基本正常。
一个函数绘图语言的解释器,这个函数绘图语言简称Draw语言,基本语法见实验PPT。
相较于2019样例代码做出的一些改进主要是工程上的改进,功能上的改进基本就只多了一个支持了科学计数法 1e3 1e-2 之类的 菜狗落泪
工程上的改进:
- 用CMake,跨平台编译,现在不依赖Windows了,大家可以在Linux上也编译使用(MacOS上没试过,买不起Mac 哭)
- CMake除了跨平台管理大项目编译也挺方便,不然之前那种用命令行终端管理,想加个依赖都头疼。
- 用了些智能指针容器还有文件流啥的,现在写cpp感觉离不开这些了,如果追求更极致的性能还有folly库提供的容器 🤔
- 之前的前端貌似有点Bug,我拖动一下页面绘制的figure就消失了,不知道是不是我的问题,现在用ImGUI实现了之后应该就没有这个问题了,还多支持了清空画布功能。
- 增加了Gtest,现在写测试更方便一些了
- 增加了spdlog,更
好看智能的日志输出
很多地方因为时间问题实现的比较乱,比如lexer和后面的parser以及semantic的命名没有统一,后面需要改一改 现在spdlog还是处于一个当cout用的阶段,后续改进一下区分清楚debug info等各个level的输出 词法分析器那里的实现头文件还塞在src里面,后续需要整理一下挪到外面 测试不全面,急着交任务,很多东西都没测不知道有没有bug,后面可以加一点测试
