23 个版本 (13 个重大更新)
使用旧的 Rust 2015
0.15.1 | 2018 年 4 月 5 日 |
---|---|
0.15.0 | 2018 年 3 月 22 日 |
0.14.0 | 2018 年 1 月 24 日 |
0.13.1 | 2017 年 6 月 16 日 |
0.2.0 | 2015 年 7 月 27 日 |
#104 在 解析器工具
每月 785 次下载
4KB
104 行
LALRPOP
LALRPOP 是一个以易用性为主要目标的 Rust 解析器生成框架。你应该能够编写紧凑、DRY、可读的语法。为此,LALRPOP 提供了许多实用的功能
- 如果解析器构造函数失败,会有友好的错误信息。
- 宏可以让你提取语法中的公共部分。这意味着你可以超越简单的重复,如
Id*
,并定义如Comma<Id>
的逗号分隔标识符列表。 - 宏还可以创建子集,这样你可以轻松地进行类似
Expr<"all">
的操作来表示所有表达式的范围,但Expr<"if">
来表示可以在if
表达式中出现的表达式子集。 - 内置对像
*
和?
等操作符的支持。 - 紧凑的默认设置,这样你大部分时间都可以避免编写动作代码。
- 类型推断,这样你通常可以省略非终端的类型。
尽管它的名字是 LALRPOP,但实际上默认使用 LR(1)(尽管你可以选择 LALR(1)),我真的希望最终能够转移到可以处理所有 CFG 的通用方法(如 GLL、GLR、LL(*) 等)。
文档
LALRPOP 书籍涵盖了所有关于 LALRPOP 的内容——或者至少它打算这么做!以下是一些提示
- 教程涵盖了设置 LALRPOP 解析器的基础知识。
- 对于有耐心的人,你可能更喜欢 快速入门指南部分,该部分描述了如何将 LALRPOP 添加到你的
Cargo.toml
。 - 再次使用 LALRPOP 的用户可能从 速查表中受益。
- 高级设置章节展示了如何配置LALRPOP预处理的其他方面。
- 如果您有任何问题,请加入我们的Gitter大厅。
示例用途
- LALRPOP 本身是用 LALRPOP 实现的。
- Gluon 是一种静态类型函数式编程语言。
- RustPython 是用 Rust 重写的 Python 3.5+。
- Solang 是用 Rust 重写的 Ethereum Solidity。
贡献
如果您打算更改 LALRPOP 的语法,请务必阅读 CONTRIBUTING.md
。