here is a
Code:
*/
* reverse polish calculator
*/
#include <stdio.h>
#include "calc.h" /* header file */
#include <math.h>
#include <stdlib.h>
#define MAXOP 100
main()
{
int type;
int op2;
char s[MAXOP];
while ((type = getop(s)) != EOF)
{
switch(type)
{
case NUMBER:
push(atof(s));
break;
/* case '^':
push(pop()^pop());
break; */
case '~':
op2 = pop();
push(pop() ~ op2);
break;
case '+':
push(pop() + pop());
break;
case '*':
push(pop() * pop());
break;
case '-':
op2 = pop();
push(pop() - op2);
break;
case '%':
op2 = pop();
if(op2)
push(fmod(pop(), op2));
else
printf("\nError: Division by zero!");
break;
case '/':
op2 = pop();
if (op2 != 0.0)
push(pop() / op2);
else
{
printf("error : zero divisor\n");
exit(1);
}
break;
case '\n':
printf("The answer is %.8g.\n", pop());
break;
default:
printf("error: unknown command %s\n", s);
exit(1);
}
}
}
looking at this part of the code I'm doing something wrong
Code:
case '^':
push(pop()^pop());
break;
case '~':
op2 = pop();
push(pop() ~ op2);
break;
i am getting
"parser error before '~' token
main.o error 1
"parser error before '^' token
main.o error 1
i am trying to add these binary operations to the RPN calculator, what's wrong here?