Files Classes Functions Hierarchy
#include <rpnfunc.h>
Public Member Functions | |
| dropn () | |
| dropn (deque< rpnbase * > &ds, bool const evaluate=true) | |
| ~dropn () | |
| rpnbase * | copy () const |
| void | visit (deque< rpnbase * > &ds, rpninteger &n) |
| string const | name () const |
| void | eval (deque< rpnbase * > &ds) |
Definition at line 322 of file rpnfunc.h.
Definition at line 684 of file rpnfunc.cpp.
References eval().
00685 { 00686 if (evaluate) 00687 eval(ds); 00688 else 00689 ds.push_front(this); 00690 }
| rpnbase * dropn::copy | ( | ) | const [virtual] |
Reimplemented from rpnfunction.
Definition at line 692 of file rpnfunc.cpp.
References dropn().
00693 { 00694 return new dropn(); 00695 }
| void dropn::eval | ( | deque< rpnbase * > & | ds | ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 697 of file rpnfunc.cpp.
References rpnbase::accept(), and rpnbase::dec().
Referenced by dropn().
| string const dropn::name | ( | ) | const [inline, virtual] |
| void dropn::visit | ( | deque< rpnbase * > & | ds, | |
| rpninteger & | n | |||
| ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 705 of file rpnfunc.cpp.
References rpnbase::dec(), and rpninteger::num.
00706 { 00707 if (n.num<0) 00708 return; 00709 00710 unsigned int val = n.num; 00711 if (ds.size()>val) 00712 { 00713 rpnbase* x0 = ds.front(); 00714 ds.pop_front(); 00715 00716 ds.erase(ds.begin(),ds.begin()+val); 00717 x0->dec(); 00718 } 00719 }
1.5.8