FSA를 평가하기 위해 Ragel과 협력 중이며 내 컴퓨터가 입력 테스트를 마칠 때마다 실행되는 사용자 작업을 포함시키고 싶습니다. 기계가 수락 상태에 있는지 여부에 관계없이이 작업을 실행해야합니다. 내가 갈거야 무엇을 보여 그 Ragel 가이드에서 찍은 변형 예를 가지고 :Ragel EOF 작업을 수행하는 방법
#include <string.h>
#include <stdio.h>
%%{
machine foo;
main := ('foo' | 'bar') 0 @{ res = 1; } $/{ finished = 1; };
}%%
%% write data;
int main(int argc, char **argv) {
int cs, res = 0, finished = 0;
if (argc > 1) {
char *p = argv[1];
char *pe = p + strlen(p) + 1;
char* eof = pe;
%% write init;
%% write exec;
}
printf("result = %i\n", res);
printf("finished = %i\n", finished);
return 0;
}
입력이 '갑'또는 '바'중 하나 일 때 입술 1로이 예를 들어 내 목표는, 끝나면 아무리 입력해도 1입니다. 나는이 일을 얻을 수 없다 - res가 1 일 때 1이되고 res가 0 일 때 0이 될 것 같다.
어떤 도움도 굉장 할 것이다.