#include #include #define REJECT 0 #define ACCEPT 1 #define STOP 2 #define MAXSIZE 100 typedef struct { int p; /* input state */ int a; /* input symbol */ int q; /* output state */ } rule; typedef struct { int n; /* number of states */ int m; /* number of transition rules */ int f[MAXSIZE]; /* final states */ rule T[MAXSIZE]; /* transition table */ } FSM; FSM readFSM ( ) { FSM M; int p, a, q, i; printf("Enter the number of states: "); scanf("%d", &(M.n)); printf("The states will be numbered 0 to %d\n", M.n-1); for (p=0; p= M.n)) break; M.f[p] = 1; } printf("Enter the rules one by one\n"); i = M.m = 0; for (p=0; p= M.n)) break; for (i=0; i