24个版本 (12个重大更新)

0.13.0 2023年11月17日
0.12.0 2023年9月26日
0.11.1 2023年5月23日
0.11.0 2022年7月20日
0.1.2 2016年9月19日

#63 in 解析器实现

Download history • Rust 包仓库 107991/week @ 2024-04-11 • Rust 包仓库 110102/week @ 2024-04-18 • Rust 包仓库 115993/week @ 2024-04-25 • Rust 包仓库 126336/week @ 2024-05-02 • Rust 包仓库 119434/week @ 2024-05-09 • Rust 包仓库 131552/week @ 2024-05-16 • Rust 包仓库 125085/week @ 2024-05-23 • Rust 包仓库 138312/week @ 2024-05-30 • Rust 包仓库 134815/week @ 2024-06-06 • Rust 包仓库 140195/week @ 2024-06-13 • Rust 包仓库 136478/week @ 2024-06-20 • Rust 包仓库 127063/week @ 2024-06-27 • Rust 包仓库 112384/week @ 2024-07-04 • Rust 包仓库 114697/week @ 2024-07-11 • Rust 包仓库 116096/week @ 2024-07-18 • Rust 包仓库 102018/week @ 2024-07-25 • Rust 包仓库

每月467,019次下载
用于 741 个crate(42个直接使用)

Apache-2.0 OR MIT

145KB
3K SLoC

vte

Build Status Crates.io Version

Rust实现虚拟终端仿真器的解析器。

解析器根据Paul Williams的ANSI解析器状态机实现。状态机不分配解析数据的含义,因此本身不足以编写终端仿真器。相反,预期会提供一个实现Perform,它对解析数据进行有用的操作。解析器Parser处理账目记录,而Perform只需简单地处理动作。

有关更多信息,请参阅文档


lib.rs:

实现虚拟终端仿真器的解析器

Parser根据Paul Williams的ANSI解析器状态机实现。状态机不分配解析数据的含义,因此本身不足以编写终端仿真器。相反,预期会提供一个实现Perform,它对解析数据进行有用的操作。解析器Parser处理账目记录,而Perform只需简单地处理动作。

示例

有关使用 Parser 的示例,请参阅示例文件夹。该示例简单地将所有 Perform 动作记录下来。要看到其实际效果,可以将 vim 输入到其中

cargo build --release --example parselog
vim | target/release/examples/parselog

只需键入 :q 即可退出。

与原始状态机描述的差异

  • 输入的 UTF-8 支持
  • OSC 字符串可以通过 0x07 结束
  • 仅支持 7 位代码。一些 8 位代码仍然支持,但它们不再在所有状态下工作。

依赖关系

~18–300KB