主要观点:Lelwel 是用于 Rust 的递归下降解析器生成器,基于 LL(1)语法并有扩展,能生成同质、无损的具体语法树,其错误恢复和树构建受 Alex Kladov 启发,可用于 CLI 工具 llw
、语言服务器 lelwel-ls
等,默认使用 Logos 进行词法分析、Codespan 进行诊断,有多种语言的语法示例且可在游乐场尝试,提供快速开始指南,包括编写语法文件、添加依赖等,还详细介绍了语法规范,如注释、令牌列表、跳过、右结合等,以及语义动作、断言等,最后说明其许可证为 Apache 2.0 或 MIT 许可。
关键信息:
- 基于 LL(1)语法,有多种扩展。
- 生成无损具体语法树,用于语言工具。
- 错误恢复受特定教程启发,有多种恢复方式。
- 有多种语言的语法示例和游乐场。
- 快速开始包含多个步骤。
- 语法规范详细,包括各种构造。
- 许可证为 Apache 2.0 或 MIT。
重要细节: - 错误恢复时,lexer 可发射
Error
令牌,parser 有活跃错误状态等。 - 语法规范中各种构造的具体用法,如有序选择、直接左递归等限制和注意事项。
- 语义动作、断言等在解析中的执行和作用。
- 不同节点操作符如重命名、省略、标记和创建的用法及注意点。
- 许可证的具体条款和适用范围。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。