# Snow Compiler - IR 模块

> Snow 编译器的中间表示模块 —— 负责构建、组织和输出中间表示指令（IR）

## 项目简介

**IR（Intermediate Representation）** 是 [Snow 编译器]() 项目的核心模块，承担中间表示的构建、组织与管理任务。
它用于在前端语法分析与后端目标代码生成之间，提供结构清晰、便于优化和转换的抽象表示形式。

IR 模块以类 SSA（Static Single Assignment）形式设计，通过统一的指令体系、虚拟寄存器模型和构建器架构，实现了良好的表达力与可扩展性，为后续优化和代码生成阶段打下基础。

## 核心功能

* **统一的中间表示模型**: 表达控制流与数据流，支持函数、指令、值等核心结构
* **IR 构建器体系**: 模块化构建函数、表达式与语句 IR，简化前端对接
* **灵活的指令层级结构**: 支持二元操作、跳转、返回等多种基本指令
* **寄存器与常量模型**: 统一管理虚拟寄存器、常量、标签等值类型
* **IR 打印与调试支持**: 辅助输出 IR 文本格式，支持可视化与调试

## 模块结构

```
ir/
  ├── builder/             // 构建器模块: 负责构造表达式、函数与语句的 IR
  ├── core/                // 核心定义: IR 基础结构，如函数、指令、程序、访问器等
  ├── instruction/         // 指令实现: 具体的 IR 指令类型（如加法、跳转、返回等）
  ├── utils/               // 工具模块: 提供 IR 操作相关的辅助函数（如表达式工具、操作码工具等）
  └── value/               // 值模型: 常量、标签、虚拟寄存器等
```

## 开发环境

* JDK 24 或更高版本
* Maven 构建管理
* 推荐 IDE: IntelliJ IDEA

---
