/****************************************************/
/*calcmain.c                                        */
/*contains the main function                        */
/*compile together with other files that            */
/*contains the rest of the program.                 */
/*gcc calcmain.c calcgetop.c calcstack.c calcgetch.c*/
/****************************************************/

#include 
#include      /*for atof()*/
#include "calc.h"
#define MAXOP 100       /*max size of operand or operator*/

main()
{
  int type;
  double op2;
  char s[MAXOP];

  while ((type = getop(s)) != EOF){
    switch (type) {
    case NUMBER:
      push(atof(s));
      break;
    case '+':
      push(pop() + pop());
      break;
    case '*':
      push(pop() * pop());
      break;
    case '-':
      op2 = pop();
      push(pop() - op2);
      break;
    case '/':
      op2 = pop();
      if (op2 != 0.0)
        push(pop() / op2);
      else
        printf("error: zero divisor\n");
      break;
    case '\n':
      printf("\t%.8g\n", pop());
      break;
    default:
      printf("error: unknown command %s\n", s);
      break;
    }
  }
  return 0;
}