1 个不稳定版本
| 0.1.0 | 2019年7月12日 |
|---|
#4 in #eir
249 stars & 14 watchers
170KB
4K SLoC
Eir 项目
Erlang 编译器和 IR,使用 Rust 实现
详情
当前功能
- 统一的基于 Thorin 的 IR 表示名为 Eir
- Erlang 前端
- 核心前端
- 模式匹配编译遍历
- 基本的优化和清理遍历
- 用于测试的简单解释器
项目分为几个 crate
libeir_ir- 包含核心 Eir IR 数据结构、验证、打印libeir_syntax_erl- Erlang 前端,降低到 Eir。libeir_syntax_core- 核心Erlang前端,降低到 Eir。libeir_passes- 在 Eir 上操作的编译器遍历。libeir_lowerutils- 将 Eir 降低到 SSA 形式的实用工具。libeir_interpreter- Eir 的简单解释器。用于运行 OTP 测试套件。libeir_intern- 符号内省。由大多数其他 crate 使用。libeir_diagnostics- 源范围处理和诊断打印。libeir_util- 其他 crate 使用的一些实用工具的集合。pattern-compiler- 一个通用的模式匹配树编译器。tools- 用于操作 IR 的 CLI 工具。
依赖
~1.5MB
~20K SLoC