Rust 的 LR(1) 解析器生成器

时间:2021-06-28 18:22:21
【文件属性】:
文件名称:Rust 的 LR(1) 解析器生成器
文件大小:406KB
文件格式:ZIP
更新时间:2021-06-28 18:22:21
rust parser-generator grammar 拉尔波普LALRPOP 是一个以可用性为主要目标的 Rust 解析器生成器框架。您应该能够编写紧凑、DRY、可读的语法。为此,LALRPOP 提供了许多漂亮的功能:万一解析器构造函数失败的错误消息。允许您提取语法的公共部分的宏。这意味着您可以超越像Id*这样的简单重复,并为逗号分隔的标识符列表定义诸如Comma类的东西。宏还可以创建子集,因此您可以轻松地执行诸如Expr<"all">来表示表达式的全部范围,而使用Expr<"if">来表示可以出现在if表达式中的表达式子集。对*和?等运算符的内置支持.压缩默认值,以便您可以避免在大部分时间编写操作代码。类型推断,因此您通常可以省略非终结符的类型。 尽管它的名字,LALRPOP 实际上默认使用 LR(1)(尽管您可以选择 LALR(1)),我真的希望最终转向可以处理所有 CFG 的通用工具(如 GLL、GLR、LL(* ), 等等)。文档LALRPOP 书涵盖了 LALRPOP 的所有内容——或者至少它打算这样做!以下是一些提示:本教程涵盖了设置 LALRPOP 解析器的基础知识。对于不耐烦的人,您可能更喜欢快速入门指南部分,其中

网友评论