#include <stdio.h>
#include <stdlib.h>
FILE * input;
int errorFlag = 0;
int isDigit(int c)
{
/*do{
c = getc(input);
printf("%c", c);
}
while (c == ' ' || c == '\t' || c == '\n');
ungetc(c, input);*/
if (c >= '0' && c <= '9')
return 1;
else
return 0;
}
int op()
{
int a;
do
while (a == ' ' || a == '\t' || a == '\n');
if (a == '+')
return 1;
else if (a == '-')
return 0;
}
int oper(int a, int b, char c)
{
if (c == '+')
return a + b;
if (c == '-')
return a - b;
}
int main(){
FILE *input, *output;
int num1 = 0;
int num2 = 0;
char op = '\0';
int value;
int varValue[26];
char varName;
int result;
char c,d;
int cnt = 0;
int cnt2 = 0;
input
= fopen("input.txt", "r"); output
= fopen("output.txt", "w");
//No input file error
if (input == NULL){
printf("Missing input file.\n"); return;
}
else {
do {
//printf("%c\n",c);
if (c == ' ' || c == '\t' || c == '\n')
continue;
if (isDigit(c)) {
cnt2 += 1;
if (cnt == 0) {
d = c-48;
cnt = 1;
}
else {
// call operator function
d = oper(d, c-48, op);
}
}
else {
if (c == ';') {
cnt = 0;
cnt2 = 0;
}
else {
op = c;
}
}
}
while (c != EOF);
}
if (fscanf(input
, "%d", &num2
) == EOF
) printf("Empty input file. \n");
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCkZJTEUgKiBpbnB1dDsKaW50IGVycm9yRmxhZyA9IDA7CgppbnQgaXNEaWdpdChpbnQgYykgCnsKCS8qZG97CgkJYyA9IGdldGMoaW5wdXQpOwoJCXByaW50ZigiJWMiLCBjKTsgCgl9Cgl3aGlsZSAoYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xuJyk7Cgl1bmdldGMoYywgaW5wdXQpOyovIAoJaWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKQoJCXJldHVybiAxOwoJZWxzZQoJCXJldHVybiAwOwp9CgppbnQgb3AoKQp7CiAgaW50IGE7CgogICAgICAgIGRvCglhID0gZ2V0YyhpbnB1dCk7Cgl3aGlsZSAoYSA9PSAnICcgfHwgYSA9PSAnXHQnIHx8IGEgPT0gJ1xuJyk7Cgl1bmdldGMoYSwgaW5wdXQpOwoJaWYgKGEgPT0gJysnKQoJCXJldHVybiAxOwoJZWxzZSBpZiAoYSA9PSAnLScpCgkJcmV0dXJuIDA7IAp9CgppbnQgb3BlcihpbnQgYSwgaW50IGIsIGNoYXIgYykgCnsKCWlmIChjID09ICcrJykgCgkJcmV0dXJuIGEgKyBiOyAKCWlmIChjID09ICctJykgCgkJcmV0dXJuIGEgLSBiOyAKfQoKaW50IG1haW4oKXsKCUZJTEUgKmlucHV0LCAqb3V0cHV0OwoKCWludCBudW0xID0gMDsKCWludCBudW0yID0gMDsKCWNoYXIgb3AgPSAnXDAnOwoKCWludCB2YWx1ZTsKCQoJaW50IHZhclZhbHVlWzI2XTsKCWNoYXIgdmFyTmFtZTsKCWludCByZXN1bHQ7CgoJY2hhciBjLGQ7IAoJaW50IGNudCA9IDA7IAoJaW50IGNudDIgPSAwOyAKCglpbnB1dCA9IGZvcGVuKCJpbnB1dC50eHQiLCAiciIpOwoJb3V0cHV0ID0gZm9wZW4oIm91dHB1dC50eHQiLCAidyIpOyAKCiAgICAvL05vIGlucHV0IGZpbGUgZXJyb3IKCWlmIChpbnB1dCA9PSBOVUxMKXsKCQlwcmludGYoIk1pc3NpbmcgaW5wdXQgZmlsZS5cbiIpOwoJCXJldHVybjsKCX0KCQoJCgkKCQoJZWxzZSB7IAoJCWRvIHsgCgkJCQljID0gZ2V0YyhpbnB1dCk7IAoKCQkJLy9wcmludGYoIiVjXG4iLGMpOwoJCQlpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xuJykKICAgICAgICAgICAgY29udGludWU7CgoJCQlpZiAoaXNEaWdpdChjKSkgewoJCQkJY250MiArPSAxOwoJCQkJaWYgKGNudCA9PSAwKSB7CgkJCQkJZCA9IGMtNDg7ICAKCQkJCQljbnQgPSAxOwoJCQkJfQoJCQkJZWxzZSB7IAoJCQkJCQoJCQkJCS8vIGNhbGwgb3BlcmF0b3IgZnVuY3Rpb24gCgkJCQkJZCA9IG9wZXIoZCwgYy00OCwgb3ApOyAgCgkJCQl9ICAKCQkJfSAKCQkJZWxzZSB7CgkJCQlpZiAoYyA9PSAnOycpIHsgCgkJCQkJcHJpbnRmKCIlZFxuIiwgZCk7IAoJCQkJCWNudCA9IDA7IAoJCQkJCWNudDIgPSAwOyAKCQkJCX0KCQkJCWVsc2UgewoJCQkJCW9wID0gYzsgCgkJCQl9ICAKCQkJfSAKCQl9IAoJCXdoaWxlIChjICE9IEVPRik7IAoJfSAKCQoJCglpZiAoZnNjYW5mKGlucHV0LCAiJWQiLCAmbnVtMikgPT0gRU9GKQoJCXByaW50ZigiRW1wdHkgaW5wdXQgZmlsZS4gXG4iKTsKCQkKCQoJZmNsb3NlKGlucHV0KTsKCWZjbG9zZShvdXRwdXQpOwoJCglzeXN0ZW0oInBhdXNlIik7CglyZXR1cm4gMDsKfQo=