#ocaml #parser #file-format #opam

opam-file-rs

使用 Rust 编写的 opam 文件语法的解析器和打印器

4 个版本

0.1.5 2021 年 6 月 3 日
0.1.4 2021 年 6 月 3 日
0.1.2 2021 年 2 月 15 日
0.1.1 2021 年 2 月 15 日

#1503解析器实现

Download history • Rust 包仓库 411/week @ 2024-03-24 • Rust 包仓库 518/week @ 2024-03-31 • Rust 包仓库 457/week @ 2024-04-07 • Rust 包仓库 151/week @ 2024-04-14 • Rust 包仓库 284/week @ 2024-04-21 • Rust 包仓库 155/week @ 2024-04-28 • Rust 包仓库 421/week @ 2024-05-05 • Rust 包仓库 401/week @ 2024-05-12 • Rust 包仓库 235/week @ 2024-05-19 • Rust 包仓库 653/week @ 2024-05-26 • Rust 包仓库 682/week @ 2024-06-02 • Rust 包仓库 218/week @ 2024-06-09 • Rust 包仓库 319/week @ 2024-06-16 • Rust 包仓库 523/week @ 2024-06-23 • Rust 包仓库 227/week @ 2024-06-30 • Rust 包仓库 387/week @ 2024-07-07 • Rust 包仓库

1,471 每月下载次数
用于 upstream-ontologist

MIT 许可证

28KB
766

opam-file-rs: 使用 Rust 编写的 opam 文件语法的解析器和打印器

crates.io docs.rs Build Status source badge license badge

解析 OPAM

解析 OPAM 文件。

use opam_file_rs;
fn main () {
  let opam = r#"
    opam-version: "2.0"
    version: "0.1.0"
    name: "opam-file-rs"
    dev-repo: "git+https://github.com/puripuri2100/opam-file-rs"
    license: "MIT"
    maintainer: "Naoki Kaneko <puripuri2100@gmail.com>"
    depends: [
      "lalrpop-util" {>= "0.19.4"}
      "thiserror" {>= "1.0.23"}
    ]
  "#;
  assert!(opam_file_rs::parse(opam).is_ok());
}

转换为 OPAM 文件格式。

可以使用 value::format_opam_file 将数据结构转换为 OPAM 文件格式。

use opam_file_rs;
fn main() {
  let opam_str = r#"
    opam-version: "2.0"
    version: "0.1.0"
    name: "opam-file-rs"
    dev-repo: "git+https://github.com/puripuri2100/opam-file-rs"
    license: "MIT"
    maintainer: "Naoki Kaneko <puripuri2100@gmail.com>"
    depends: [
      "lalrpop-util" {>= "0.19.4"}
      "thiserror" {>= "1.0.23"}
    ]
  "#;
  let opam = opam_file_rs::parse(opam_str).unwrap();
  println!("{}", opam_file_rs::value::format_opam_file(opam));
}

(c) 2021 Naoki Kaneko (又名 "puripuri2100")

依赖关系

~0.3–2.5MB
~40K SLoC