1 个不稳定版本
0.1.0 | 2023 年 7 月 12 日 |
---|
#847 在 编程语言类别中
180 每月下载量
在 5 个crate中(通过 air-parser)使用
21KB
382 行
miden-parsing
此crate在 miden-diagnostics 的基础上提供额外的基础设施,用于编译器前端的解析。
特性
以下为本crate提供的功能
- 一个名为
Source
的抽象,它为解析器的扫描组件提供核心操作,还包括一个名为FileMapSource
的“标准”实现,它基于miden-diagnostics
提供的SourceFile
类型。 Scanner
,一个面向底层组件,用于从词法分析器进行消费。从高层次来看,扫描器在输入源上操作,允许词法分析器精确控制源中的哪些字符属于当前标记,以及获取与当前标记相关联的切片的能力,以及控制底层源流(即获取当前字符、弹出当前字符、查看下一个字符等)的能力。Parse<T>
,一个特质,它描述了解析T
所需的内容,并公开了执行此操作的API。Parser<C>
表示一个具有配置类型C
的解析器,该解析器可以解析任何兼容的Parse
实现。此解析器旨在与miden-diagnostics
提供的组件一起使用,特别是CodeMap
和DiagnosticsHandler
。它抽象掉了与常见解析任务相关的样板代码,例如parse_file
和parse_string
。
此crate已知与 LALRPOP 工作良好,并且只需编译器前端提供针对正在解析的语言的特定词法分析器和标记类型。请参阅 examples
文件夹,以了解如何使用此crate(以及 miden-diagnostics
)与 LALRPOP 一起用于简单语言的完整端到端演示。
依赖项
~3–10MB
~100K SLoC