#include <stdio.h>
#include <string.h>
#include <ctype.h>
char input[100];
int i = 0;
void shift(char c) {
}
void reduce(const char* rule) {
}
void parse() {
char stack[100];
int top = -1;
while (i < len) {
i++;
continue;
}
stack[++top] = input[i];
shift(input[i]);
i++;
int change;
do {
change = 0;
if (top >= 2 && stack[top] == ')' && stack[top - 2] == '(' && stack[top - 1] == 'E') {
top -= 2;
stack[top] = 'E';
reduce("E → (E)");
change = 1;
}
else if (top >= 2 && stack[top] == 'E' && stack[top - 1] == '+' && stack[top - 2] == 'E') {
top -= 2;
stack[top] = 'E';
reduce("E → E+E");
change = 1;
}
else if (top >= 2 && stack[top] == 'E' && stack[top - 1] == '*' && stack[top - 2] == 'E') {
top -= 2;
stack[top] = 'E';
reduce("E → E*E");
change = 1;
}
else if (top
>= 0 && islower(stack
[top
])) { stack[top] = 'E';
reduce("E → id");
change = 1;
}
} while (change);
}
if (top == 0 && stack[top] == 'E') {
}
else {
}
}
int main() {
printf("Enter an Expression: "); fgets(input
, sizeof(input
), stdin
);
parse();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPGN0eXBlLmg+CgpjaGFyIGlucHV0WzEwMF07CmludCBpID0gMDsKCnZvaWQgc2hpZnQoY2hhciBjKSB7CiAgICBwcmludGYoIlNoaWZ0OiAlY1xuIiwgYyk7Cn0KCnZvaWQgcmVkdWNlKGNvbnN0IGNoYXIqIHJ1bGUpIHsKICAgIHByaW50ZigiUmVkdWNlOiAlc1xuIiwgcnVsZSk7Cn0KCnZvaWQgcGFyc2UoKSB7CiAgICBjaGFyIHN0YWNrWzEwMF07CiAgICBpbnQgdG9wID0gLTE7CiAgICBpbnQgbGVuID0gc3RybGVuKGlucHV0KTsKCiAgICB3aGlsZSAoaSA8IGxlbikgewogICAgICAgIGlmIChpc3NwYWNlKGlucHV0W2ldKSkgewogICAgICAgICAgICBpKys7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KCiAgICAgICAgc3RhY2tbKyt0b3BdID0gaW5wdXRbaV07CiAgICAgICAgc2hpZnQoaW5wdXRbaV0pOwogICAgICAgIGkrKzsKCiAgICAgICAgaW50IGNoYW5nZTsKICAgICAgICBkbyB7CiAgICAgICAgICAgIGNoYW5nZSA9IDA7CgogICAgICAgICAgICBpZiAodG9wID49IDIgJiYgc3RhY2tbdG9wXSA9PSAnKScgJiYgc3RhY2tbdG9wIC0gMl0gPT0gJygnICYmIHN0YWNrW3RvcCAtIDFdID09ICdFJykgewogICAgICAgICAgICAgICAgdG9wIC09IDI7CiAgICAgICAgICAgICAgICBzdGFja1t0b3BdID0gJ0UnOwogICAgICAgICAgICAgICAgcmVkdWNlKCJFIOKGkiAoRSkiKTsKICAgICAgICAgICAgICAgIGNoYW5nZSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAodG9wID49IDIgJiYgc3RhY2tbdG9wXSA9PSAnRScgJiYgc3RhY2tbdG9wIC0gMV0gPT0gJysnICYmIHN0YWNrW3RvcCAtIDJdID09ICdFJykgewogICAgICAgICAgICAgICAgdG9wIC09IDI7CiAgICAgICAgICAgICAgICBzdGFja1t0b3BdID0gJ0UnOwogICAgICAgICAgICAgICAgcmVkdWNlKCJFIOKGkiBFK0UiKTsKICAgICAgICAgICAgICAgIGNoYW5nZSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAodG9wID49IDIgJiYgc3RhY2tbdG9wXSA9PSAnRScgJiYgc3RhY2tbdG9wIC0gMV0gPT0gJyonICYmIHN0YWNrW3RvcCAtIDJdID09ICdFJykgewogICAgICAgICAgICAgICAgdG9wIC09IDI7CiAgICAgICAgICAgICAgICBzdGFja1t0b3BdID0gJ0UnOwogICAgICAgICAgICAgICAgcmVkdWNlKCJFIOKGkiBFKkUiKTsKICAgICAgICAgICAgICAgIGNoYW5nZSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAodG9wID49IDAgJiYgaXNsb3dlcihzdGFja1t0b3BdKSkgewogICAgICAgICAgICAgICAgc3RhY2tbdG9wXSA9ICdFJzsKICAgICAgICAgICAgICAgIHJlZHVjZSgiRSDihpIgaWQiKTsKICAgICAgICAgICAgICAgIGNoYW5nZSA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgfSB3aGlsZSAoY2hhbmdlKTsKICAgIH0KCiAgICBpZiAodG9wID09IDAgJiYgc3RhY2tbdG9wXSA9PSAnRScpIHsKICAgICAgICBwcmludGYoIlN0cmluZyBBY2NlcHRlZCBcbiIpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgcHJpbnRmKCJTdHJpbmcgUmVqZWN0ZWQgXG4iKTsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBwcmludGYoIkVudGVyIGFuIEV4cHJlc3Npb246ICIpOwogICAgZmdldHMoaW5wdXQsIHNpemVvZihpbnB1dCksIHN0ZGluKTsKICAgIGlucHV0W3N0cmNzcG4oaW5wdXQsICJcbiIpXSA9IDA7CgogICAgcGFyc2UoKTsKCiAgICByZXR1cm4gMDsKfQ==