proj home

Files   Classes   Functions   Hierarchy  

vartree Class Reference

#include <rpnfunc.h>

Inheritance diagram for vartree:
Collaboration diagram for vartree:

List of all members.

Public Member Functions

 vartree ()
 vartree (deque< rpnbase * > &ds, bool const evaluate=true)
 ~vartree ()
rpnbasecopy () const
void draw (rpnprogram *p, unsigned int depth)
string const name () const
void eval (deque< rpnbase * > &ds)


Detailed Description

Definition at line 518 of file rpnfunc.h.


Constructor & Destructor Documentation

vartree::vartree (  )  [inline]

Definition at line 522 of file rpnfunc.h.

Referenced by copy().

00522 {}

vartree::vartree ( deque< rpnbase * > &  ds,
bool const   evaluate = true 
)

Definition at line 1307 of file rpnfunc.cpp.

References eval().

01308 {
01309   if (evaluate)
01310     eval(ds);
01311   else
01312     ds.push_front(this);
01313 }

vartree::~vartree (  )  [inline]

Definition at line 524 of file rpnfunc.h.

00524 {}


Member Function Documentation

rpnbase * vartree::copy (  )  const [virtual]

Reimplemented from rpnfunction.

Definition at line 1315 of file rpnfunc.cpp.

References vartree().

01316 {
01317   return new vartree();
01318 }

void vartree::draw ( rpnprogram p,
unsigned int  depth 
)

Definition at line 1320 of file rpnfunc.cpp.

References rpnprogram::variables.

Referenced by eval().

01321 {
01322   if(p->variables.empty())
01323     return;
01324 
01325   string space;
01326   for (unsigned int i=0; i<depth; ++i)
01327     space += "  ";
01328 
01329   for (unsigned int i=0, imax=p->variables.size(); i<imax; ++i)
01330   {
01331     if (p->variables[i]->x->isprogram())
01332     {
01333       cout << space << p->variables[i]->varname << endl;
01334       draw((rpnprogram*)(p->variables[i]->x),depth+1);
01335     }
01336   }
01337 }

void vartree::eval ( deque< rpnbase * > &  ds  )  [virtual]

Reimplemented from rpnfunction.

Definition at line 1339 of file rpnfunc.cpp.

References rpnbase::dec(), and draw().

Referenced by vartree().

01340 {
01341   cout << "." << endl;
01342   draw(rpnprogramstackstate().ps->front(),1);
01343 
01344   dec();
01345 }

string const vartree::name (  )  const [inline, virtual]

Reimplemented from rpnfunction.

Definition at line 529 of file rpnfunc.h.

00529 { return string("tree"); }


The documentation for this class was generated from the following files:

Generated on Fri Mar 4 00:50:23 2011 for Chelton Evans Source by  doxygen 1.5.8