43 个版本
1.0.0-rc.5 | 2024年7月6日 |
---|---|
0.19.0 | 2023年11月10日 |
0.18.1 | 2023年3月19日 |
0.16.2 | 2022年9月22日 |
0.3.1 | 2019年6月2日 |
#194 in 解析器实现
4,810 每月下载量
在 16 个crate(13个直接使用)中使用
420KB
10K SLoC
使用 Rust 编写的无损 Lua 5.1 / 5.2 / 5.3 / 5.4 / Luau 解析器。
无损?
Full Moon 保留注释、空白、样式选择等。使用 Full Moon,您可以将 Lua 代码转换为 AST 和语法树,并准确地将它转换回原始代码。
使用 Full Moon,您可以直接修改 AST 并将其重新导出到 Lua,同时保留您写作时的样式。
为什么?
Full Moon 可用于以下项目:
- 静态分析(如 Luacheck 或 rust-clippy)
- 静态类型(如 TypeScript)
- 自动大量代码重构(如 jscodeshift)
- 自动代码格式化(如 rustfmt)
- Lua 的 LSP 服务器
灵感来源
Full Moon 受 LPGhatguy 的 mab 和 benjamn 的 recast 带来的可能性启发很大。
依赖项
~1.5–2.2MB
~42K SLoC