Untitled
unknown
plain_text
a year ago
1.1 kB
10
Indexable
#include <stdio.h>
#include <stdlib.h>
enum State {S0, S1, S2, S3, S4, S5, S6};
enum State transition(enum State current_state, char input) {
switch (current_state) {
case S0:
if (input == 'A' || input == 'B') return S1;
break;
case S1:
if (input == 'A') return S2;
if (input == 'B') return S3;
break;
case S2:
if (input == 'B') return S4;
break;
case S3:
if (input == 'B') return S5;
break;
// Continue transitions based on your DFA construction
default:
return S0;
}
return S0; // Default to initial state for invalid input
}
int main() {
enum State current_state = S0;
char input;
while ((input = getchar()) != EOF) {
current_state = transition(current_state, input);
if (current_state == /* accepting state */) {
printf("Match found!\n");
current_state = S0; // Reset state if necessary
}
}
return 0;
}
Editor is loading...
Leave a Comment