1 个不稳定版本
0.13.0 | 2024年6月3日 |
---|
#1159 在 解析器实现
每月 243 次下载
130KB
3K SLoC
vte
Rust 中实现虚拟终端模拟器的解析器。
解析器根据 Paul Williams 的 ANSI 解析器状态机 实现。状态机不分配解析数据的意义,因此本身不足以编写终端模拟器。相反,预期将提供一个实现 Perform
特性的实现,该实现可以对解析数据进行有用的操作。解析器负责记录,而 Perform
负责简单地处理动作。
有关更多信息,请参阅 文档。
lib.rs
:
实现虚拟终端模拟器的解析器
Parser
根据保罗·威廉姆斯的 ANSI 解析器状态机实现。状态机不分配解析数据的意义,因此本身不足以编写终端模拟器。相反,预期将提供一个实现 Perform
的实现,该实现可以对解析数据进行有用的操作。解析器负责记录,而 Perform
负责简单地处理动作。
示例
有关使用 Parser
的示例,请参阅示例文件夹。该示例简单地记录了所有 Perform
执行的动作。要看到它在实际中的效果,可以将 vim
的输出管道导入其中
cargo build --release --example parselog
vim | target/release/examples/parselog
只需键入 :q
退出。
与原始状态机描述的差异
- 输入的 UTF-8 支持
- OSC 字符串可以通过 0x07 终止
- 仅支持7位代码。一些8位代码仍然支持,但它们不再在所有状态下工作。
依赖项
~34–330KB