Files Classes Functions Hierarchy
#include <rpnfunc.h>
Public Member Functions | |
| varpushd () | |
| varpushd (deque< rpnbase * > &ds, bool const evaluate=true) | |
| ~varpushd () | |
| rpnbase * | copy () const |
| void | visit (deque< rpnbase * > &ds, rpnstring &s) |
| void | visit (deque< rpnbase * > &ds, rpnprogram &p) |
| string const | name () const |
| void | eval (deque< rpnbase * > &ds) |
Definition at line 456 of file rpnfunc.h.
| varpushd::varpushd | ( | ) | [inline] |
Definition at line 1174 of file rpnfunc.cpp.
References eval().
01175 { 01176 if (evaluate) 01177 eval(ds); 01178 else 01179 ds.push_front(this); 01180 }
| rpnbase * varpushd::copy | ( | ) | const [virtual] |
Reimplemented from rpnfunction.
Definition at line 1182 of file rpnfunc.cpp.
References varpushd().
01183 { 01184 return new varpushd(); 01185 }
| void varpushd::eval | ( | deque< rpnbase * > & | ds | ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 1187 of file rpnfunc.cpp.
References rpnbase::accept(), and rpnbase::dec().
Referenced by varpushd().
| string const varpushd::name | ( | ) | const [inline, virtual] |
| void varpushd::visit | ( | deque< rpnbase * > & | ds, | |
| rpnprogram & | p | |||
| ) | [virtual] |
Reimplemented from rpnfunction.
Definition at line 1224 of file rpnfunc.cpp.
01225 { 01226 rpnprogramstackstate().push(&p); 01227 }
Reimplemented from rpnfunction.
Definition at line 1195 of file rpnfunc.cpp.
References rpnbase::dec(), and rpnstring::str.
01196 { 01197 rpnbase* x0 = ds.front(); 01198 ds.pop_front(); 01199 01200 bool found(false); 01201 rpnprogram* p; 01202 vector<string> v; 01203 pathstuff().convert(v,s.str); 01204 01205 //for (unsigned int i=0; i<v.size(); ++i) 01206 //{ 01207 // cout << "*" << v[i] << "*" << endl; 01208 //} 01209 01210 pathstuff().findpath(found,p,v); 01211 01212 //cout << "varpushd::visit(ds," << s.str << ")" << endl; 01213 //cout << " found=" << found << endl; 01214 01215 if (found) 01216 { 01217 rpnprogramstackstate().push(p); 01218 x0->dec(); 01219 } 01220 else 01221 ds.push_front(x0); // Restore the stack. 01222 }
1.5.8