项目简介
本项目是一个基于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环境
- 访问 rustup.rs 下载并运行安装脚本。
- 安装完成后,输入
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】