2 个不稳定版本

使用旧的 Rust 2015

0.2.0 2018年11月27日
0.1.0 2018年10月15日

#42 in #construct


用于 lunarity-parser

GPL-3.0 许可证

24KB
680

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 通用公共许可证版本 3.0 的条款分发。

有关详细信息,请参阅 LICENSE

依赖关系

~210KB