GitHub - 0x2a-42/lelwel: 用于 Rust 的弹性 LL(1) 解析器生成器

主要观点: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 有活跃错误状态等。
  • 语法规范中各种构造的具体用法,如有序选择、直接左递归等限制和注意事项。
  • 语义动作、断言等在解析中的执行和作用。
  • 不同节点操作符如重命名、省略、标记和创建的用法及注意点。
  • 许可证的具体条款和适用范围。
阅读 17
0 条评论