0

我正在使用 Ragel 来评估 FSA,并且我需要在每次评估输入中的字符之后运行一段代码。Ragel 有允许用户操作嵌入到转换和状态的操作符;然而,经过一些测试,这些用户操作似乎只在机器第一次进入给定状态时运行。因此,如果机器在多个字符中保持一种状态,则不会运行任何用户操作。是否有一种方法可以在每次 ragel 处理输入字符时运行用户操作?

4

1 回答 1

0

看起来“所有转换操作”(手册的 3.1.3 部分)是您所需要的。

main := (your machine) $YourAction;

例如

main := (any* ('foo'|'bar') any*) ${printf ("char: %c\n", *p);};
于 2013-10-21T15:35:27.383 回答