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 解析器实现
每月467,019次下载
用于 741 个crate(42个直接使用)
145KB
3K SLoC
vte
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