# GrammarParser **Repository Path**: ordinaryAnton/grammar-parser ## Basic Information - **Project Name**: GrammarParser - **Description**: 编译原理文法分析小组作业 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-14 - **Last Updated**: 2023-11-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 文法分析实验 ### 小组成员 >梁正 罗天祎 石家杰 叶昀 ### 小组分工 - 梁正:负责输出器实现,以及编写实验报告 - 罗天祎:负责文法解析器算法的实现 - 石家杰:负责文件遍历器实现以及编写json测试文件 - 叶昀:负责架构设计,环境搭建以及json解析器实现 ### 程序架构 ```mermaid graph LR FilesTraverser(文件遍历器) --json文件路径--> JsonParser(Json解析器) --json对象-->GrammarParser(文法解析器) JsonParser--文件路径和结果-->GrammarParser --文件路径--> ResultOutputer(结果输出器) JsonParser--Json对象和文件路径-->ResultOutputer ``` - 文件遍历器:基于c++17 `std::filesystem`, 可以遍历并读取项目路径下data目录中的文法描述文件(json 文件) - json解析器: 基于流行的cpp开源json解析库`jsoncpp` , 对其进行了一定的封装 - 文法分析器: 接收json 解析器的结果,从3、2、1、0型文法的顺序判断文法最终输出结果 - 结果输出器: 输出结果 ### 平台依赖 - cmake 版本大于3.10 - mingw 11.2.0 以上 - c++17 - powershell - windows 10/11 ### 安装教程 ##### 批处理文件安装 - 双击运行 `construct.bat` 文件 - 可执行文件会生成在 `bin` 目录下 ##### powershell 命令安装 - 首先请确保当前路径为项目的根路径 ```powershell mkdir build cd build cmake .. -G 'MinGW Makefiles' mingw32-make ``` ### 注意事项 1. 如果 `.bat` 无法运行,请使用powershell 命令进行构建。 2. 请进入可执行文件夹 `/bin` 后再双击运行`app.exe` 程序,否则程序可能会因为找不到文法文件而抛出异常。 3. 请勿移动可执行文件的路径。