#miden #source #component #scanner #token #parser #peek

miden-parsing

适用于 Miden 项目的可重用解析组件

1 个不稳定版本

0.1.0 2023 年 7 月 12 日

#847编程语言类别中

Download history 21/week @ 2024-04-20 21/week @ 2024-04-27 17/week @ 2024-05-04 16/week @ 2024-05-11 20/week @ 2024-05-18 12/week @ 2024-05-25 16/week @ 2024-06-01 8/week @ 2024-06-08 17/week @ 2024-06-15 19/week @ 2024-06-22 2/week @ 2024-06-29 16/week @ 2024-07-13 21/week @ 2024-07-20 44/week @ 2024-07-27 99/week @ 2024-08-03

180 每月下载量
5 个crate中(通过 air-parser)使用

MIT 许可证

21KB
382

miden-parsing

此crate在 miden-diagnostics 的基础上提供额外的基础设施,用于编译器前端的解析。

特性

以下为本crate提供的功能

  • 一个名为 Source 的抽象,它为解析器的扫描组件提供核心操作,还包括一个名为 FileMapSource 的“标准”实现,它基于 miden-diagnostics 提供的 SourceFile 类型。
  • Scanner,一个面向底层组件,用于从词法分析器进行消费。从高层次来看,扫描器在输入源上操作,允许词法分析器精确控制源中的哪些字符属于当前标记,以及获取与当前标记相关联的切片的能力,以及控制底层源流(即获取当前字符、弹出当前字符、查看下一个字符等)的能力。
  • Parse<T>,一个特质,它描述了解析 T 所需的内容,并公开了执行此操作的API。
  • Parser<C> 表示一个具有配置类型 C 的解析器,该解析器可以解析任何兼容的 Parse 实现。此解析器旨在与 miden-diagnostics 提供的组件一起使用,特别是 CodeMapDiagnosticsHandler。它抽象掉了与常见解析任务相关的样板代码,例如 parse_fileparse_string

此crate已知与 LALRPOP 工作良好,并且只需编译器前端提供针对正在解析的语言的特定词法分析器和标记类型。请参阅 examples 文件夹,以了解如何使用此crate(以及 miden-diagnostics)与 LALRPOP 一起用于简单语言的完整端到端演示。

依赖项

~3–10MB
~100K SLoC