liberty-db 0.6.4

`liberty` data structre
Documentation

liberty-db

pipeline pipeline License liberty-db Docs

Highlight Features

  • Support all liberty attributes via datastructure, not abstract syntax tree (AST) only, according to Liberty Version R-2020.09, September 2020
  • Support liberty boolean expression syntax, employ binary decesion diagram (BDD) to hash
  • Parser & formatter are implemented by static macros, providing a decent preformance and tiny ~2MB parser & formatter binary. See benchmark summary
  • Support define & define_group user-defined attributes
  • Well defined document & verified with library-complier

Usage

This library is implemented in Rust, get start here.

[dependencies]
liberty_db = "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_parasitic group
  • leakage_current group
  • dynamic_current group
  • use PDFJS
  • stream input
  • Linked Group
  • user define
  • remove GroupWapper, ComplexWapper, SimpleWapper. At leaset remove it in parser and formatter
  • fix missing newline at endding
  • recursive parse boolean expression
  • macros
  • format to liberty
  • support multi-line \
  • support comment
  • Use MutSet to store GroupMap