Files Classes Functions Hierarchy
#include <rpnfunc.h>
Public Member Functions | |
| vareval () | |
| vareval (deque< rpnbase * > &ds, bool const evaluate=true) | |
| ~vareval () | |
| rpnbase * | copy () const |
| void | visit (deque< rpnbase * > &ds, rpnstring &n) |
| void | visit (deque< rpnbase * > &ds, rpninteger &n) |
| void | visit (deque< rpnbase * > &ds, rpnprogram &p) |
| string const | name () const |
| void | eval (deque< rpnbase * > &ds) |
Definition at line 438 of file rpnfunc.h.
| vareval::vareval | ( | ) | [inline] |
Definition at line 1114 of file rpnfunc.cpp.
References eval().
01115 { 01116 if (evaluate) 01117 eval(ds); 01118 else 01119 ds.push_front(this); 01120 }
| rpnbase * vareval::copy | ( | ) | const [virtual] |
Reimplemented from rpnfunction.
Definition at line 1122 of file rpnfunc.cpp.
References vareval().
01123 { 01124 return new vareval(); 01125 }
| void vareval::eval | ( | deque< rpnbase * > & | ds | ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 1127 of file rpnfunc.cpp.
References rpnbase::accept(), and rpnbase::dec().
Referenced by vareval().
| string const vareval::name | ( | ) | const [inline, virtual] |
| void vareval::visit | ( | deque< rpnbase * > & | ds, | |
| rpnprogram & | p | |||
| ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 1165 of file rpnfunc.cpp.
References rpnbase::eval().
| void vareval::visit | ( | deque< rpnbase * > & | ds, | |
| rpninteger & | n | |||
| ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 1145 of file rpnfunc.cpp.
References rpnbase::dec(), rpnbase::eval(), and rpninteger::num.
01146 { 01147 rpnbase* x0 = ds.front(); 01148 ds.pop_front(); 01149 01150 if (n.num>=0) 01151 { 01152 unsigned int const n2 = (unsigned int)(n.num); 01153 if (n2<ds.size()) 01154 { 01155 rpnbase * x = ds[n.num]->copy(); 01156 x->eval(ds); 01157 } 01158 } 01159 01160 x0->dec(); 01161 }
Reimplemented from rpnfunction.
Definition at line 1135 of file rpnfunc.cpp.
References rpnbase::dec(), and rpnstring::str.
01136 { 01137 rpnbase* x0 = ds.front(); 01138 ds.pop_front(); 01139 01140 rpnprogramstackstate().evaluate(ds,s.str); 01141 01142 x0->dec(); 01143 }
1.5.8