48 个版本
0.20.2 | 2024 年 2 月 29 日 |
---|---|
0.20.1 |
|
0.20.0 | 2023 年 5 月 5 日 |
0.19.9 | 2023 年 3 月 25 日 |
0.2.0 | 2015 年 7 月 27 日 |
77 在 开发工具 中
691,377 次每月下载
在 841 个 Crates 中使用 (221 直接使用)
39KB
702 行
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实现的。LALRPOP。
- Gluon是一种静态类型函数式编程语言。Gluon。
- RustPython是用Rust重写的Python 3.5+。RustPython。
- Solang是用Rust重写的Ethereum Solidity。Solang。
贡献
如果您打算更改LALRPOP的语法,您真的应该阅读CONTRIBUTING.md
。
依赖关系
~0–425KB