26个版本 (15个破坏性版本)
使用旧Rust 2015
0.16.0 | 2018年9月3日 |
---|---|
0.15.2 | 2018年5月3日 |
0.15.1 | 2018年4月5日 |
0.15.0 | 2018年3月22日 |
0.2.0 | 2015年7月27日 |
192 in 解析工具
每月1,261次下载
4.5MB
102K SLoC
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预处理的其它方面。
示例用途
依赖项
~4.5–6MB
~101K SLoC