#include #include #include using namespace std; %%{ machine hello; action onStartState { printf("Entering the start state...\n");} action onAllTransition { printf("Transitioning between states...\n");} action onEnteringFinal { printf("Entering a final state\n");} write data noerror; main := ( 'hello' | 'bye' ) > onStartState $ onAllTransition @ onEnteringFinal; }%% int test( char *str ) { char *p = str; int cs, valid = 0; %% write init; %% write exec noend; return valid; }; #define BUFSIZE 1024 int main() { char buf[BUFSIZE]; fgets( buf, sizeof(buf), stdin ); test( buf ); return 0; }