#syn #source-map #parser #crates #byte-offset

cpp_synmap

cpp_syn 提供源映射和完整crate解析支持

2 个不稳定版本

使用旧的Rust 2015

0.3.0 2017年9月24日
0.2.0 2017年3月6日

2124进程宏

Download history 141/week @ 2024-03-13 108/week @ 2024-03-20 128/week @ 2024-03-27 190/week @ 2024-04-03 114/week @ 2024-04-10 131/week @ 2024-04-17 131/week @ 2024-04-24 116/week @ 2024-05-01 115/week @ 2024-05-08 121/week @ 2024-05-15 156/week @ 2024-05-22 114/week @ 2024-05-29 153/week @ 2024-06-05 229/week @ 2024-06-12 425/week @ 2024-06-19 403/week @ 2024-06-26

每月下载 1,229
用于 9 个crate(2个直接使用)

MIT/Apache

14KB
254

Synmap

注意:该crate当前依赖于 cpp_syn 而不是 syn,因为它需要 Span 功能,而这些功能尚未在 syn 中实现,以支持其大多数功能。

此crate提供了一个 SourceMap 类型,可用于解析整个crate并生成完整的AST。它还更新了解析的AST中的span,使其相对于 SourceMap 而不是输入文件的字节。

有了这些信息,SourceMap 提供了将span映射到源文件名(filename)、源文本(source_text)和行/列号(locinfo)的方法。


lib.rs:

synmap 提供了将多文件crate解析为 syn AST节点并解析这些节点附加的span到原始源文本和行/列信息的工具。

crate的主要入口点是 SourceMap 类型,它存储从字节偏移量到文件信息的映射,以及缓存的文件信息。

依赖项

~1MB
~21K SLoC