liberty-parser 0.3.0

Liberty file format parser (maintained fork of liberty-parse)
Documentation
# liberty-parser

> A maintained fork of [liberty-parse]https://github.com/shages/liberty-parse by Erik Ronshagen.

Liberty file format parser for Rust

## Example usage

Parse libraries from a Liberty file

```rust
use liberty_parser::parse_lib;

let lib_str = r#"
library(sample) {
    cell(AND2) {
        area: 1;
    }
}
"#;

for lib in parse_lib(lib_str).unwrap() {
    println!("Library '{}' has {} cells", lib.name, lib.iter_cells().count());
    let area = lib
        .get_cell("AND2")
        .and_then(|c| c.simple_attribute("area"))
        .map_or(-1.0, |v| v.float());
    println!("Cell AND2 has area: {}", area);
}
```

## Limitations

- Doesn't automatically parse files from `include` statements
- Doesn't parse bus syntax in pin names. For example:

  ```
      pin (X[0:3]){
      }
  ```

## Credits / Acknowledgements

Originally created by [Erik Ronshagen](https://github.com/shages/liberty-parse).
Now a maintained fork by Marcos Sartori. MIT-licensed; see [NOTICE.md](NOTICE.md)
for full attribution details.