3个不稳定版本

使用旧的Rust 2015

0.2.1 2018年12月4日
0.2.0 2018年11月27日
0.1.0 2018年10月15日

#100 in #solidity

GPL-3.0 许可证

185KB
4.5K SLoC

Lunarity

一个高性能、以正确性为导向的Solidity解析器和其他工具。

生成的AST大多符合 grammar.txt。AST是静态类型的,以确保无法构造出非法语法的AST表示。

性能

它真的非常快。

Running target/release/deps/second_price_auction-2b369ce54b97fb9f

running 2 tests
test parse_to_ast ... bench:      24,028 ns/iter (+/- 573) = 562 MB/s
test tokenize     ... bench:      15,037 ns/iter (+/- 1,405) = 898 MB/s

在读取字节/令牌时,词法分析和解析器都不会回溯。解析器使用 分页竞技场分配器 来避免堆分配成本(或垃圾回收成本,或任何其他成本)。

请随意重新运行基准测试(需要nightly Rust,使用rustup:rustup run nightly cargo bench

许可证

本软件包在GNU GENERAL PUBLIC LICENSE版本3.0的条款下分发。

有关详细信息,请参阅 LICENSE

依赖关系

~1.5MB