Untitled

 avatar
unknown
plain_text
9 months ago
1.0 kB
12
Indexable
#include <stdio.h>
#include <string.h>
#include <ctype.h>

char input[100]; // Increased size for safety
int i, error;

void E();
void Eprime();
void T();
void Tprime();
void F();

int main() {
    i = 0;
    error = 0;

    printf("Enter an arithmetic expression: "); // Example: a+a*a
    scanf("%s", input);

    E();

    if (strlen(input) == i && error == 0)
        printf("\nAccepted..!!!\n");
    else
        printf("\nRejected..!!!\n");

    return 0;
}

void E() {
    T();
    Eprime();
}

void Eprime() {
    if (input[i] == '+') {
        i++;
        T();
        Eprime();
    }
}

void T() {
    F();
    Tprime();
}

void Tprime() {
    if (input[i] == '*') {
        i++;
        F();
        Tprime();
    }
}

void F() {
    if (isalnum(input[i])) {
        i++;
    } else if (input[i] == '(') {
        i++;
        E();
        if (input[i] == ')') {
            i++;
        } else {
            error = 1; // Missing closing parenthesis
        }
    } else {
        error = 1; // Invalid character
    }
}
Editor is loading...
Leave a Comment