Files Classes Functions Hierarchy
#include <rpnfunc.h>
Public Member Functions | |
| rpnlessthanequal () | |
| rpnlessthanequal (deque< rpnbase * > &ds, bool const evaluate=true) | |
| ~rpnlessthanequal () | |
| rpnbase * | copy () const |
| void | visit (deque< rpnbase * > &ds, rpnreal &n) |
| void | visit (deque< rpnbase * > &ds, rpninteger &n) |
| string const | name () const |
| void | eval (deque< rpnbase * > &ds) |
Definition at line 743 of file rpnfunc.h.
| rpnlessthanequal::rpnlessthanequal | ( | ) | [inline] |
Definition at line 2031 of file rpnfunc.cpp.
References eval().
02032 { 02033 if (evaluate) 02034 eval(ds); 02035 else 02036 ds.push_front(this); 02037 }
| rpnbase * rpnlessthanequal::copy | ( | ) | const [virtual] |
Reimplemented from rpnfunction.
Definition at line 2039 of file rpnfunc.cpp.
References rpnlessthanequal().
02040 { 02041 return new rpnlessthanequal(); 02042 }
| void rpnlessthanequal::eval | ( | deque< rpnbase * > & | ds | ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 2044 of file rpnfunc.cpp.
References rpnbase::accept(), and rpnbase::dec().
Referenced by rpnlessthanequal().
| string const rpnlessthanequal::name | ( | ) | const [inline, virtual] |
| void rpnlessthanequal::visit | ( | deque< rpnbase * > & | ds, | |
| rpninteger & | n | |||
| ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 2073 of file rpnfunc.cpp.
References rpnbase::dec(), rpnbase::isinteger(), rpnbase::isreal(), and rpninteger::num.
02074 { 02075 rpnbase* x0 = ds.front(); 02076 ds.pop_front(); 02077 rpnbase* x1 = ds.front(); 02078 ds.pop_front(); 02079 02080 if ( x1->isreal()) 02081 { 02082 new rpninteger(ds, ((rpnreal*)x1)->num <= n.num ); 02083 } 02084 else 02085 if ( x1->isinteger()) 02086 { 02087 new rpninteger(ds, ((rpninteger*)x1)->num <= n.num ); 02088 } 02089 02090 x0->dec(); 02091 x1->dec(); 02092 }
Reimplemented from rpnfunction.
Definition at line 2052 of file rpnfunc.cpp.
References rpnbase::dec(), rpnbase::isinteger(), rpnbase::isreal(), and rpnreal::num.
02053 { 02054 rpnbase* x0 = ds.front(); 02055 ds.pop_front(); 02056 rpnbase* x1 = ds.front(); 02057 ds.pop_front(); 02058 02059 if ( x1->isinteger()) 02060 { 02061 new rpninteger(ds, ((rpninteger*)x1)->num <= n.num ); 02062 } 02063 else 02064 if (x1->isreal()) 02065 { 02066 new rpninteger(ds, ((rpnreal*)x1)->num <= n.num ); 02067 } 02068 02069 x0->dec(); 02070 x1->dec(); 02071 }
1.5.8