liberty-db
Highlight Features
- Support all
libertyattributes via datastructure, not abstract syntax tree (AST) only, according to Liberty Version R-2020.09, September 2020 - Support
libertyboolean expression syntax, employ binary decesion diagram (BDD) to hash - Parser & formatter are implemented by static macros, providing a decent preformance and tiny ~2MB
parser & formatterbinary. See benchmark summary - Support
define&define_groupuser-defined attributes - Well defined document & verified with library-complier
Usage
This library is implemented in Rust, get start here.
[]
= "0.6"
See more in document
Examples
The examples are in ./examples, you can run them with commands:
# example0
cargo run --package example0_parse_fmt
# example1
cargo run --package example1_parse_fmt_file -- tests/tech/cases/ocv.lib
# example2
cargo run --package example2_prune_lib -- tests/tech/cases/ocv.lib
Test
cargo test
cargo test --package liberty-tests --test tests
Testbench
cargo bench --bench benchmark
See latest benchmark summary.
TODO List
intrinsic_parasiticgroupleakage_currentgroupdynamic_currentgroup- use PDFJS
- stream input
- Linked Group
userdefineremoveGroupWapper,ComplexWapper,SimpleWapper. At leaset remove it in parser and formatterfix missing newline at enddingrecursive parse boolean expressionmacrosformat tolibertysupport multi-line\support commentUseMutSetto store GroupMap