#dart #parser #incremental

tree-sitter-dart-latest

tree-sitter 解析库的 Dart 语法

1 个不稳定版本

0.0.1 2023年7月21日

#35#dart

MIT 许可证

6MB
198K SLoC

C 195K SLoC JavaScript 2.5K SLoC // 0.1% comments Scheme 154 SLoC // 0.2% comments Rust 31 SLoC // 0.5% comments C++ 19 SLoC

tree-sitter-dart

这是一个为 Dart 编程语言编写的 tree-sitter 语法。我们尽可能遵守 Dart 语言规范。最初它是基于 tree-sitter Java 语法的一个副本,因此这里可能包含一些遗留项。为了简化语法树,许多项目使用了 tree-sitter 的“下划线”规则编写方法进行了内联。

入门

  • 转到项目目录
  • 运行 npm install(首次)
  • 运行 npm run build_init(首次) npm run build(后续时间)
  • 运行 npm run test

测试单个高亮文件

  • 运行 tree-sitter highlight test

测试单个测试文件

  • 运行 tree-sitter test -f 'testcasefilter'
  • 例如 tree-sitter test -f 'dart string literals'

显示样本文件解析的输出(例如,在调试高亮问题时)

  • 运行 tree-sitter parse path/to/file.dart

lib.rs:

此包为 tree-sitter 解析库提供 Dart 语言支持。

通常,您将使用 language 函数将此语言添加到 tree-sitter Parser,然后使用解析器解析一些代码

let code = "";
let mut parser = tree_sitter::Parser::new();
parser.set_language(tree_sitter_dart::language()).expect("Error loading dart grammar");
let tree = parser.parse(code, None).unwrap();

依赖项

~2.8–4MB
~72K SLoC