# Snow Compiler - Semantic 模块

> Snow 编译器的前端模块 —— 负责语义分析与符号表管理

## 项目简介

**Semantic** 是 [Snow 编译器]() 项目的子模块，承担编译器前端的语义分析阶段任务。  
它负责在抽象语法树（AST）基础上，进行符号绑定、类型检查、作用域管理等操作，确保程序符合语义规则，并为后续中间代码生成（IR）阶段提供准备。

该模块采用模块化设计，针对不同类型的表达式与语句提供独立的分析器，同时内置完整的符号表和类型系统支持。

## 核心功能

- **表达式与语句语义分析**: 根据 Snow 语言规范校验各类 AST 节点
- **符号表管理**: 支持作用域嵌套、符号绑定与查找
- **类型系统**: 内建基础类型与函数类型推导
- **语义错误报告**: 标准化错误收集与输出
- **可扩展的分析器体系**: 按节点类型组织，便于维护与扩展

## 模块结构

```
semantic/
  ├── analyzers/          // 各类表达式和语句分析器
  │    ├── base/          // 基础分析器接口
  │    ├── expression/    // 表达式分析器
  │    └── statement/     // 语句分析器
  ├── core/               // 核心分析引擎与上下文管理
  ├── error/              // 语义错误定义
  ├── symbol/             // 符号表系统
  ├── type/               // 类型系统
  └── utils/              // 辅助工具
```

## 开发环境

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

---