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

【源码】基于Rust和LLVM的Sysy语言编译器

项目简介

本项目是一个基于Rust编程语言和LLVM框架的Sysy语言编译器。Sysy语言是特定编程语言,此编译器可将Sysy语言源代码编译成LLVM IR(中间表示),进而生成可执行文件。项目具备多种编译选项,如生成语法树、输出全局变量、打印函数原型等,提供了灵活的编译与调试功能。

项目的主要特性和功能

  • 多平台支持:支持Linux和WSL环境。
  • 多版本兼容:兼容LLVM 13.0.1及以上版本,Rust 1.61.0及以上版本。
  • 灵活的编译选项:支持生成LLVM IR、输出可执行文件、打印语法树、全局变量和函数原型等。
  • 自动化构建:使用Cargo作为包管理器和构建工具,自动下载并编译相关第三方库。
  • 错误排查:提供详细的错误信息和调试功能,便于用户快速定位和解决问题。

安装使用步骤

1. 环境配置

确保系统满足以下环境要求: - Linux或WSL环境 - LLVM版本:13.0.1及以上 - Rust版本:1.61.0及以上

2. 安装Rust环境

  1. 访问 rustup.rs 下载并运行安装脚本。
  2. 安装完成后,输入 rustup --version 检查安装是否成功。

3. 编译本项目

在项目根目录下执行以下命令进行编译: bash cargo run -- -h 此命令会自动拉取并编译第三方库和本项目的代码,编译成功后显示项目的命令行帮助信息。

4. 运行本项目

编译完成后,使用以下命令运行项目: bash ./target/debug/sysy ./tests/cases/hello_world.sy -i -e 该命令会生成LLVM IR和可执行文件,生成的可执行文件位于当前目录下,可直接运行。

5. 查看LLVM IR

生成的LLVM IR文件可以通过以下命令查看: bash cat hello_world.ll

6. 错误排查

若在生成可执行文件时遇到问题,请检查系统中是否安装了clang,并确保能够找到./compiler2022/runtime/sylib.c文件。

下载地址

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