Untitled

 avatar
unknown
plain_text
a year ago
1.1 kB
5
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