Files Classes Functions Hierarchy
#include <rpnfunc.h>
Public Member Functions | |
| ifthen () | |
| ifthen (deque< rpnbase * > &ds, bool const evaluate=true) | |
| ~ifthen () | |
| 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 338 of file rpnfunc.h.
| ifthen::ifthen | ( | ) | [inline] |
Definition at line 722 of file rpnfunc.cpp.
References eval().
00723 { 00724 if (evaluate) 00725 eval(ds); 00726 else 00727 ds.push_front(this); 00728 }
| rpnbase * ifthen::copy | ( | ) | const [virtual] |
Reimplemented from rpnfunction.
Definition at line 730 of file rpnfunc.cpp.
References ifthen().
00731 { 00732 return new ifthen(); 00733 }
| void ifthen::eval | ( | deque< rpnbase * > & | ds | ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 735 of file rpnfunc.cpp.
References rpnbase::accept(), and rpnbase::dec().
Referenced by ifthen().
| string const ifthen::name | ( | ) | const [inline, virtual] |
| void ifthen::visit | ( | deque< rpnbase * > & | ds, | |
| rpninteger & | n | |||
| ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 764 of file rpnfunc.cpp.
References rpnbase::dec(), rpnbase::eval(), and rpninteger::num.
00765 { 00766 00767 rpnbase* x0 = ds.front(); 00768 ds.pop_front(); 00769 // x1 is a pointer to n 00770 rpnbase* x1 = ds.front(); 00771 ds.pop_front(); 00772 00773 if (n.num != 0) 00774 { 00775 x1->dec(); 00776 x0->eval(ds); 00777 } 00778 else 00779 { 00780 x1->dec(); 00781 x0->dec(); 00782 } 00783 }
Reimplemented from rpnfunction.
Definition at line 743 of file rpnfunc.cpp.
References rpnbase::dec(), rpnbase::eval(), and rpnreal::num.
00744 { 00745 00746 rpnbase* x0 = ds.front(); 00747 ds.pop_front(); 00748 // x1 is a pointer to n 00749 rpnbase* x1 = ds.front(); 00750 ds.pop_front(); 00751 00752 if (n.num != 0) 00753 { 00754 x1->dec(); 00755 x0->eval(ds); 00756 } 00757 else 00758 { 00759 x1->dec(); 00760 x0->dec(); 00761 } 00762 }
1.5.8