我一直在寻找一个好的状态机编译器来测试一些自定义网络协议。我已经查看了一些工具,例如 Yakindu、Ragel(编译器)、SCXML(语言),但我不确定它们是否可以用于网络协议。
SCXML(language) 看起来不错,但我找不到任何专门用于 C 的编译器(scxmlcc 用于 C++)。有谁知道基于 SCXML 的 C 编译器?Yakindu 工具看起来很有希望,但我不确定是否可以测试 BGP/OSPF 等网络协议。任何人都可以请给出任何指示吗?Ragel 看起来也不错,但我再次不确定是否可以使用此编译器生成复杂的网络协议客户端。
我特别提到网络协议的原因是,我还希望能够在“事件”发生后执行自定义例程,例如 packet_create/packet_send(具有自定义数据包大小)等,作为“操作”的一部分。
我是否需要始终从状态图中生成代码,或者有没有办法直接与状态交互?我对 FSM 很陌生,任何帮助/建议/建议/链接都将不胜感激。