[][src]Crate liberty_parse

This crate reads Liberty format files, commonly used by EDA tools to describe library cells (including standard cells, hard IP, etc.).

Example

use liberty_parse::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.cells.len());
    let area = lib
        .cells
        .get("AND2")
        .and_then(|c| c.simple_attributes.get("area"))
        .map_or(-1.0, |v| v.float());
    println!("Cell AND2 has area: {}", area);
}

Re-exports

pub use ast::ParseResult;
pub use ast::Value;

Modules

ast

Defines the types and parser for the Abstract Syntax Tree (AST) representation of a Liberty file.

liberty

Defines a slightly enhanced data structure than the base AST

Structs

Error

Functions

parse_lib

Parse a string slice into a liberty::Liberty struct