littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于C++17的PascalS到C语言编译器

项目简介

本项目是一个Pascal-S语言到C语言的编译器,可将Pascal-S程序翻译成等效的C语言程序。该编译器既支持命令行界面操作,也提供了由Electron和Vue构建的图形用户界面(GUI),方便不同使用习惯的用户。

项目的主要特性和功能

主要特性

  1. 支持Pascal-S到C的翻译,能将Pascal-S程序准确转化为C语言程序。
  2. 提供命令行界面,便于用户通过命令行进行编译操作。
  3. 配备图形用户界面,由Electron和Vue构建,支持可视化操作。
  4. 可生成Pascal-S程序的语法树,并以树形结构打印。
  5. 显示词法、语法、语义分析的过程信息和报错信息,方便调试。

主要功能

  1. 词法分析:把Pascal-S程序分解为词法单元(tokens)。
  2. 语法分析:依据语法规则对词法单元分析,构建语法树。
  3. 语义分析:对语法树进行语义检查,确保程序语义正确。
  4. 代码生成:根据语法树生成等效的C语言代码。
  5. 单元测试:提供单元测试框架,保证编译器各模块功能正常。

安装使用步骤

前提条件

  • 操作系统:推荐Linux或MacOS,Windows用户需自行安装clang-format工具和CMake。
  • 开发环境:推荐使用VSCode、CLion等IDE,并安装CMake-Tools扩展。
  • 依赖库:Flex 2.6及以上版本,Bison 3.8及以上版本,CMake 3.0及以上版本。

安装步骤

  1. 复制项目: bash cd p2c
  2. 安装依赖: bash sudo apt-get install flex bison cmake
  3. 编译项目: bash cmake -B build -DBUILD_TESTING=on cmake --build build -j8
  4. 运行程序: bash ./build/main -h # 查看帮助 ./build/main test.p -o test.c # 翻译pascal文件 ./build/main -i - -o - # 若文件名为'-',代表使用stdin/stdout进行输入/输出
  5. 运行单元测试: bash cmake -B build -DBUILD_TESTING=ON cmake --build build -j8 cd build ctest # 或者使用make test命令

图形用户界面

  1. 安装依赖: bash npm install -g yarn yarn install
  2. 编译GUI: bash ./buildgui.sh
  3. 运行GUI: bash yarn start

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】