#tree-sitter #sql-parser #sql #big-query #parser #incremental

tree-sitter-sql-bigquery

tree-sitter解析库的BigQuery SQL语法

30个版本

0.8.0 2024年5月26日
0.6.0 2023年10月11日
0.4.2 2023年7月29日
0.2.0 2023年2月6日
0.0.8 2022年6月26日

#102 in 文本编辑器

Download history • Rust 包仓库 31/week @ 2024-04-27 • Rust 包仓库 147/week @ 2024-05-11 • Rust 包仓库 29/week @ 2024-05-18 • Rust 包仓库 256/week @ 2024-05-25 • Rust 包仓库 34/week @ 2024-06-01 • Rust 包仓库 32/week @ 2024-06-08 • Rust 包仓库 13/week @ 2024-06-15 • Rust 包仓库 2/week @ 2024-06-29 • Rust 包仓库 34/week @ 2024-07-06 • Rust 包仓库 143/week @ 2024-07-20 • Rust 包仓库 332/week @ 2024-07-27 • Rust 包仓库

每月下载量 475

MIT 许可证

33MB
888K SLoC

C 886K SLoC • Rust 包仓库 JavaScript 2K SLoC // 0.0% comments • Rust 包仓库 Scheme 117 SLoC // 0.0% comments • Rust 包仓库 Rust 32 SLoC // 0.1% comments • Rust 包仓库

Build/Test

GoogleSQL(BigQuery中的SQL方言)的tree-sitter

GoogleSQL(以前称为StandardSQL)解析器在许多编程语言中可用,如Rust、Node等。您可以在Github Pages上尝试演示

参考

开发

运行测试

npm install --also=dev
npm test

调试

  • npm run parse <你的sql文件.sql> 输出一个语法树

lib.rs:

此crate为tree-sitter解析库提供SqlBigquery语言支持。

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

let code = r#"
"#;
let mut parser = tree_sitter::Parser::new();
parser.set_language(&tree_sitter_sql_bigquery::language()).expect("Error loading SqlBigquery grammar");
let tree = parser.parse(code, None).unwrap();
assert!(!tree.root_node().has_error());

依赖关系

~2.8–4MB
~72K SLoC