#system-verilog #verilog #filelist

sv-filelist-parser

一个用于解析 SystemVerilog 文件列表并返回文件列表、包含目录和宏定义的库

1 个不稳定版本

0.1.3 2022年5月12日

#2258解析器实现

Download history 119/week @ 2024-03-13 160/week @ 2024-03-20 119/week @ 2024-03-27 107/week @ 2024-04-03 122/week @ 2024-04-10 76/week @ 2024-04-17 105/week @ 2024-04-24 157/week @ 2024-05-01 95/week @ 2024-05-08 98/week @ 2024-05-15 105/week @ 2024-05-22 193/week @ 2024-05-29 134/week @ 2024-06-05 140/week @ 2024-06-12 62/week @ 2024-06-19 51/week @ 2024-06-26

402 次每月下载
2 个crate中使用 (通过 svlint)

MIT 许可证

12KB
226

SystemVerilog 文件列表解析器

Rust 中一个用于解析 SystemVerilog 文件列表并返回文件列表、包含目录和宏定义的库。

可选的括号或花括号包裹的环境变量(例如 $$()${})将被自动替换。

示例

use sv_filelist_parser;
let filelist = sv_filelist_parser::parse_file("testcase/files.f")
    .expect("Cannot read filelist");
for file in filelist.files {
    println!("{:?}", file);
}
for incdir in filelist.incdirs {
    println!("{:?}", incdir);
}
for (d, t) in filelist.defines {
    match t {
        None => println!("{:?}", d),
        Some(te) => println!("{:?}={:?}", d, te),
    };
}

lib.rs:

SystemVerilog 文件列表解析器

Rust 中一个用于解析 SystemVerilog 文件列表并返回文件列表、包含目录和宏定义的库。

可选的括号或花括号包裹的环境变量(例如 $$()${})将被自动替换。

示例

use sv_filelist_parser;
let filelist = sv_filelist_parser::parse_file("testcase/files.f")
    .expect("Cannot read filelist");
for file in filelist.files {
    println!("{:?}", file);
}
for incdir in filelist.incdirs {
    println!("{:?}", incdir);
}
for (d, t) in filelist.defines {
    match t {
        None => println!("{:?}", d),
        Some(te) => println!("{:?}={:?}", d, te),
    };
}

依赖

~2–3MB
~53K SLoC