528次发布

0.0.536 2024年8月24日
0.0.513 2024年7月31日
0.0.398 2024年3月31日
0.0.308 2023年12月31日
0.0.4 2021年11月15日

#26 in 解析工具

Download history • Rust 包仓库 1298/week @ 2024-05-04 • Rust 包仓库 1301/week @ 2024-05-11 • Rust 包仓库 1418/week @ 2024-05-18 • Rust 包仓库 1263/week @ 2024-05-25 • Rust 包仓库 1201/week @ 2024-06-01 • Rust 包仓库 1327/week @ 2024-06-08 • Rust 包仓库 1485/week @ 2024-06-15 • Rust 包仓库 1327/week @ 2024-06-22 • Rust 包仓库 934/week @ 2024-06-29 • Rust 包仓库 1111/week @ 2024-07-06 • Rust 包仓库 952/week @ 2024-07-13 • Rust 包仓库 1047/week @ 2024-07-20 • Rust 包仓库 1059/week @ 2024-07-27 • Rust 包仓库 998/week @ 2024-08-03 • Rust 包仓库 1074/week @ 2024-08-10 • Rust 包仓库 1061/week @ 2024-08-17 • Rust 包仓库

每月4,359次下载
6 个包中使用了 (直接使用 4 个)

MIT/Apache

160KB
3.5K SLoC

oni-comb-parser-rs

用于LL(k)解析组合器的Rust包。

在Cargo.toml中安装

将以下内容添加到您的 Cargo.toml

[dependencies]
oni-comb-parser-rs = "<<version>>"

用法

use oni_comb_parser_rs::prelude::*;

fn main() {
  let input: &[u8; 14] = b"'hello world';";

  let parser: Parser<u8, &str> = surround(
    elm(b'\''),
    (seq(b"hello") + elm_space() + seq(b"world")).collect(),
    elm(b'\'') + elm(b';'),
  )
  .map_res(std::str::from_utf8);
  let result: &str = parser.parse(input).unwrap();

  println!("{}", result); // hello world
}

受以下解析器实现的影响

示例

可选解析器

依赖项

~2.1–3MB
~54K SLoC