#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 31/week @ 2024-04-27 147/week @ 2024-05-11 29/week @ 2024-05-18 256/week @ 2024-05-25 34/week @ 2024-06-01 32/week @ 2024-06-08 13/week @ 2024-06-15 2/week @ 2024-06-29 34/week @ 2024-07-06 143/week @ 2024-07-20 332/week @ 2024-07-27

每月下载量 475

MIT 许可证

33MB
888K SLoC

C 886K SLoC JavaScript 2K SLoC // 0.0% comments Scheme 117 SLoC // 0.0% comments Rust 32 SLoC // 0.1% comments

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