Files Classes Functions Hierarchy
#include <rpnfunc.h>
Public Member Functions | |
| progdecompose () | |
| progdecompose (deque< rpnbase * > &ds, bool const evaluate=true) | |
| ~progdecompose () | |
| rpnbase * | copy () const |
| void | visit (deque< rpnbase * > &ds, rpnprogram &p) |
| string const | name () const |
| void | eval (deque< rpnbase * > &ds) |
Definition at line 862 of file rpnfunc.h.
| progdecompose::progdecompose | ( | ) | [inline] |
Definition at line 2569 of file rpnfunc.cpp.
References eval().
02570 { 02571 if (evaluate) 02572 eval(ds); 02573 else 02574 ds.push_front(this); 02575 }
| rpnbase * progdecompose::copy | ( | ) | const [virtual] |
Reimplemented from rpnfunction.
Definition at line 2577 of file rpnfunc.cpp.
References progdecompose().
02578 { 02579 return new progdecompose(); 02580 }
| void progdecompose::eval | ( | deque< rpnbase * > & | ds | ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 2582 of file rpnfunc.cpp.
References rpnbase::accept(), and rpnbase::dec().
Referenced by progdecompose().
| string const progdecompose::name | ( | ) | const [inline, virtual] |
| void progdecompose::visit | ( | deque< rpnbase * > & | ds, | |
| rpnprogram & | p | |||
| ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 2590 of file rpnfunc.cpp.
References rpnbase::dec(), and rpnprogram::v.
02591 { 02592 rpnbase* x0 = ds.front(); 02593 ds.pop_front(); 02594 02595 unsigned int n = p.v.size(); 02596 02597 if (n>0) 02598 { 02599 for (unsigned int i=0; i<n; ++i) 02600 { 02601 ds.push_front( p.v.front() ); 02602 p.v.pop_front(); 02603 } 02604 } 02605 02606 new rpninteger(ds,n); 02607 02608 x0->dec(); 02609 }
1.5.8