Product Information
What is Ragel?
Ragel 是一个有限状态机编译器和一个针对 C、C++ 和 ASM 的解析器生成器。它可以识别字节序列并在进程中的任意点执行代码。
潜在用途
编写健壮的协议实现。
解析数据格式。
编程语言的词法分析。
验证用户输入。
特征
使用以下方法构建有限状态机:
常规语言运算符
状态图运算符
扫描仪操作员
上述的一些混合
将动作嵌入机器中的任意位置。
使用受保护的运算符控制非确定性。
使用 Hopcroft 算法最小化状态机。
使用 Graphviz 可视化输出。
使用字节、双字节或字大小的字母表。
生成没有依赖项的 C、C++ 或 ASM(GNU、x86_64、System V ABI)代码。
从表或控制流驱动状态机中进行选择。
How to use Ragel?
Ragel是一个有限状态机编译器和解析器生成器,能将正则表达式编译成可执行的有限状态机。它允许在识别字节序列的过程中,在任意点执行代码,主要面向C、C++和ASM语言。
Ragel Core Functions of
状态机
Ragel Usage Scenarios of
- 编写健壮的协议实现
- 解析数据格式
- 进行编程语言的词法分析
- 验证用户输入
Ragel Common Questions about
Ragel做什么的?
我如何使用Ragel?
Ragel有哪些核心功能?
Ragel有哪些应用场景?





















