Tedd OKANO / Mbed 2 deprecated RPN_calc__based_on_K_and_R

Dependencies:   mbed

Committer:
okano
Date:
Fri Jun 26 10:16:24 2015 +0000
Revision:
2:0e96f4495b43
Parent:
1:eb37ff1cb458
Child:
3:4ef74510cc5b
divided to multiple modules

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okano 0:6be9f112093f 1 #include "mbed.h"
okano 2:0e96f4495b43 2 #include "calc.h"
okano 0:6be9f112093f 3
okano 0:6be9f112093f 4 #define MAXOP 100
okano 0:6be9f112093f 5
okano 0:6be9f112093f 6 int main()
okano 0:6be9f112093f 7 {
okano 0:6be9f112093f 8 int type;
okano 0:6be9f112093f 9 double op2;
okano 0:6be9f112093f 10 char s[ MAXOP ];
okano 0:6be9f112093f 11
okano 0:6be9f112093f 12 while ( (type = getop( s )) != EOF ) {
okano 0:6be9f112093f 13 switch( type ) {
okano 0:6be9f112093f 14 case NUMBER:
okano 0:6be9f112093f 15 push( atof( s ) );
okano 0:6be9f112093f 16 break;
okano 0:6be9f112093f 17 case '+':
okano 0:6be9f112093f 18 push( pop() + pop() );
okano 0:6be9f112093f 19 break;
okano 0:6be9f112093f 20 case '*':
okano 0:6be9f112093f 21 push( pop() * pop() );
okano 0:6be9f112093f 22 break;
okano 0:6be9f112093f 23 case '-':
okano 0:6be9f112093f 24 op2 = pop();
okano 0:6be9f112093f 25 push( pop() - op2 );
okano 0:6be9f112093f 26 break;
okano 0:6be9f112093f 27 case '/':
okano 0:6be9f112093f 28 op2 = pop();
okano 0:6be9f112093f 29 if ( op2 != 0.0 )
okano 0:6be9f112093f 30 push( pop() / op2 );
okano 0:6be9f112093f 31 else
okano 0:6be9f112093f 32 printf( "error: zero divisor\n" );
okano 0:6be9f112093f 33 break;
okano 0:6be9f112093f 34 case '\n':
okano 1:eb37ff1cb458 35 printf( " %.8g\n", op2 = pop() );
okano 1:eb37ff1cb458 36 push( op2 );
okano 1:eb37ff1cb458 37 break;
okano 1:eb37ff1cb458 38 case 0x0D:
okano 1:eb37ff1cb458 39 // just ignore
okano 0:6be9f112093f 40 break;
okano 0:6be9f112093f 41 default:
okano 0:6be9f112093f 42 printf( "error: unknown command %s (0x%02X)\n", s, *s );
okano 0:6be9f112093f 43 break;
okano 0:6be9f112093f 44 }
okano 0:6be9f112093f 45 }
okano 0:6be9f112093f 46 }