0
我正在使用Ragel來評估FSA,並且在輸入中每次評估字符後我都需要運行一段代碼。 Ragel擁有允許用戶操作嵌入到轉換和狀態中的操作符;但是,經過一些測試後,似乎這些用戶操作僅在機器第一次進入給定狀態時運行。因此,如果機器在多個字符中保持一種狀態,則不會執行用戶操作。每次ragel處理輸入字符時,是否都有一個用戶操作的方法?在處理Ragel中的每個字符後嵌入用戶操作
我正在使用Ragel來評估FSA,並且在輸入中每次評估字符後我都需要運行一段代碼。 Ragel擁有允許用戶操作嵌入到轉換和狀態中的操作符;但是,經過一些測試後,似乎這些用戶操作僅在機器第一次進入給定狀態時運行。因此,如果機器在多個字符中保持一種狀態,則不會執行用戶操作。每次ragel處理輸入字符時,是否都有一個用戶操作的方法?在處理Ragel中的每個字符後嵌入用戶操作
它看起來像「所有過渡行動」(手冊3.1.3部分)是你所需要的。
main := (your machine) $YourAction;
例如
main := (any* ('foo'|'bar') any*) ${printf ("char: %c\n", *p);};