项目简介
本项目是一个Pascal-S语言到C语言的编译器,可将Pascal-S程序翻译成等效的C语言程序。该编译器既支持命令行界面操作,也提供了由Electron和Vue构建的图形用户界面(GUI),方便不同使用习惯的用户。
项目的主要特性和功能
主要特性
- 支持Pascal-S到C的翻译,能将Pascal-S程序准确转化为C语言程序。
- 提供命令行界面,便于用户通过命令行进行编译操作。
- 配备图形用户界面,由Electron和Vue构建,支持可视化操作。
- 可生成Pascal-S程序的语法树,并以树形结构打印。
- 显示词法、语法、语义分析的过程信息和报错信息,方便调试。
主要功能
- 词法分析:把Pascal-S程序分解为词法单元(tokens)。
- 语法分析:依据语法规则对词法单元分析,构建语法树。
- 语义分析:对语法树进行语义检查,确保程序语义正确。
- 代码生成:根据语法树生成等效的C语言代码。
- 单元测试:提供单元测试框架,保证编译器各模块功能正常。
安装使用步骤
前提条件
- 操作系统:推荐Linux或MacOS,Windows用户需自行安装clang-format工具和CMake。
- 开发环境:推荐使用VSCode、CLion等IDE,并安装CMake-Tools扩展。
- 依赖库:Flex 2.6及以上版本,Bison 3.8及以上版本,CMake 3.0及以上版本。
安装步骤
- 复制项目:
bash cd p2c
- 安装依赖:
bash sudo apt-get install flex bison cmake
- 编译项目:
bash cmake -B build -DBUILD_TESTING=on cmake --build build -j8
- 运行程序:
bash ./build/main -h # 查看帮助 ./build/main test.p -o test.c # 翻译pascal文件 ./build/main -i - -o - # 若文件名为'-',代表使用stdin/stdout进行输入/输出
- 运行单元测试:
bash cmake -B build -DBUILD_TESTING=ON cmake --build build -j8 cd build ctest # 或者使用make test命令
图形用户界面
- 安装依赖:
bash npm install -g yarn yarn install
- 编译GUI:
bash ./buildgui.sh
- 运行GUI:
bash yarn start
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】