3 个不稳定版本
0.1.1 | 2023 年 3 月 11 日 |
---|---|
0.1.0 | 2023 年 3 月 11 日 |
0.0.1 | 2023 年 3 月 11 日 |
#348 在 文本编辑器
24 每月下载量
在 2 crates 中使用
14MB
466K SLoC
用于 Norg 的 Treesitter 解析器
这个仓库尝试在最初的 tree-sitter-norg 解析器的基础上进行改进,以减小解析器的体积并提高解析速度。
与旧解析器的升级包括
- 基于语法 —— 旧解析器几乎完全依赖于 C++ 的
scanner.cc
,这阻碍了错误处理和解析效率。 - 轻量级 —— 解析器的重量比第一代解析器低 4 倍,这主要归功于更智能的设计和对语法的更重依赖。
由于其更小的尺寸,解析器几乎可以嵌入任何地方。
lib.rs
:
这个 crate 为 tree-sitter 解析库提供 norg 语言支持。
通常,您将使用 language 函数将此语言添加到 tree-sitter 的 Parser,然后使用解析器解析一些代码
let code = "";
let mut parser = tree_sitter::Parser::new();
parser.set_language(tree_sitter_norg::language()).expect("Error loading norg grammar");
let tree = parser.parse(code, None).unwrap();
依赖
~2.8–4MB
~72K SLoC