Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Created by Ait Rami on 1/26/2019.
- //
- float calcArith(char *_exp);
- char *expressionToParse;
- char peek()
- {
- return *expressionToParse;
- }
- char get()
- {
- return *expressionToParse++;
- }
- float expression();
- float number()
- {
- float result = get() - '0';
- while (peek() >= '0' && peek() <= '9')
- {
- result = 10*result + get() - '0';
- }
- return result;
- }
- float factor()
- {
- if (peek() >= '0' && peek() <= '9')
- return number();
- else if (peek() == '(')
- {
- get(); // '('
- float result = expression();
- get(); // ')'
- return result;
- }
- else if (peek() == '-')
- {
- get();
- return -factor();
- }
- return 0; // error
- }
- float term()
- {
- float result = factor();
- while (peek() == '*' || peek() == '/')
- if (get() == '*')
- result *= factor();
- else
- result /= factor();
- return result;
- }
- float expression()
- {
- float result = term();
- while (peek() == '+' || peek() == '-')
- if (get() == '+')
- result += term();
- else
- result -= term();
- return result;
- }
- float calcArith(char* _exp) {
- expressionToParse=calloc(80, sizeof(char));
- strcpy(expressionToParse,_exp);
- //printf("%s",expressionToParse);
- return expression();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement