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 107991/week @ 2024-04-11 110102/week @ 2024-04-18 115993/week @ 2024-04-25 126336/week @ 2024-05-02 119434/week @ 2024-05-09 131552/week @ 2024-05-16 125085/week @ 2024-05-23 138312/week @ 2024-05-30 134815/week @ 2024-06-06 140195/week @ 2024-06-13 136478/week @ 2024-06-20 127063/week @ 2024-06-27 112384/week @ 2024-07-04 114697/week @ 2024-07-11 116096/week @ 2024-07-18 102018/week @ 2024-07-25

每月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