# Snow Compiler - Parser 模块

> Snow 编译器的前端模块 —— 负责将 Token 流解析为抽象语法树（AST）

## 项目简介

**Parser** 是 [Snow 编译器]() 项目的子模块，承担编译器前端的解析阶段任务。  
它负责将词法分析得到的 Token 流，按照 Snow 语言的语法规则，解析为标准的抽象语法树（AST）。

框架使用了 Pratt 解析算法处理表达式，同时采用模块化设计，支持声明、函数、条件语句、循环语句等各类结构的解析。

## 核心功能

- **抽象语法树（AST）生成**：定义丰富的 AST 节点类型
- **表达式解析器**：基于 Pratt 解析，支持优先级、调用、成员访问等
- **语句解析器**：支持 Snow 语言中的声明、控制流等
- **模块解析器**：处理 `import` 导入声明
- **函数解析器**：支持函数定义与调用
- **灵活的解析上下文管理**：错误处理与流式 Token 管理
- **工具支持**：AST JSON 序列化，便于调试与前后端通信

## 模块结构

```
parser/
  ├── ast/                // AST 节点定义
  ├── base/               // 顶层解析器接口
  ├── context/            // 解析上下文与异常处理
  ├── core/               // 核心解析引擎
  ├── expression/         // 表达式解析模块
  ├── factory/            // 解析器工厂
  ├── function/           // 函数解析及 AST 打印
  ├── module/             // 模块导入解析
  ├── statement/          // 各类语句解析器
  └── utils/              // JSON 序列化、辅助方法
```

## 开发环境

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

---

