#solidity #parser #incremental

tree-sitter-solidity

tree-sitter 解析库的 Solidity 语法

9 个版本 (稳定)

1.2.7 2024 年 6 月 12 日
1.2.6 2024 年 5 月 26 日
1.2.4 2024 年 4 月 30 日
0.0.3 2021 年 8 月 13 日
0.0.2 2021 年 6 月 16 日

#2016 in 魔法豆

MIT 许可协议

2.5MB
66K SLoC

C 64K SLoC JavaScript 1K SLoC // 0.0% comments Scheme 419 SLoC // 0.1% comments Rust 33 SLoC // 0.4% comments

🌴 tree-sitter-solidity

Node.js CI npm version

💡 此语法仍在开发中,生成的 AST 结构尚不稳定

此仓库包含 tree-sitter 的语法。

本项目目标是提供一个针对 Solidity 的低依赖性、高效的解析器,该解析器针对大多数使用的 Solidity 版本,并旨在支持元编程。

浏览此仓库

此仓库的主要文件是 grammar.js,它描述了 tree-sitter 语法。

# Primary file:
grammar.js
# Tests:
/test/**/*

# Auto generated:
/src/**/*
index.js
binding.gyp

参考资料

-> 以太坊 Solidity 语法

-> Tree-sitter JavaScript 语法: https://github.com/tree-sitter/tree-sitter-javascript/blob/master/grammar.js

-> Solidity antlr 语法: https://github.com/ConsenSys/solidity-parser-antlr

本项目的主要灵感及一些结构来自 tree-sitter-javascript,感谢此仓库的贡献者!

依赖

~2.7–4MB
~71K SLoC