#include<stdio.h>
#define FSM
#define STATE(x) s_##x :
#define NEXTSTATE(x) goto s_##x
int main()
{
int x = 5;
FSM
{
STATE(x)
{
printf( "in state x\n" );
NEXTSTATE(y);
}
STATE(y)
{
--x;
printf( "in state y\n" );
if (x == 0)
NEXTSTATE(x);
else if( x < 0 )
NEXTSTATE(end);
else
NEXTSTATE(y);
}
STATE(end);
}
getchar();
return 0;
}