proj home

Files   Classes   Functions   Hierarchy  

var Class Reference

#include <rpnfunc.h>

Inheritance diagram for var:
Collaboration diagram for var:

List of all members.

Public Member Functions

 var ()
 var (deque< rpnbase * > &ds, bool const evaluate=true)
 ~var ()
rpnbasecopy () const
void visit (deque< rpnbase * > &ds, rpnstring &n)
string const name () const
void eval (deque< rpnbase * > &ds)


Detailed Description

Definition at line 406 of file rpnfunc.h.


Constructor & Destructor Documentation

var::var (  )  [inline]

Definition at line 410 of file rpnfunc.h.

Referenced by copy().

00410 {}

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

Definition at line 1049 of file rpnfunc.cpp.

References eval().

01050 {
01051   if (evaluate)
01052     eval(ds);
01053   else
01054     ds.push_front(this);
01055 }

var::~var (  )  [inline]

Definition at line 412 of file rpnfunc.h.

00412 {}


Member Function Documentation

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

Reimplemented from rpnfunction.

Definition at line 1057 of file rpnfunc.cpp.

References var().

01058 {
01059   return new var();
01060 }

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

Reimplemented from rpnfunction.

Definition at line 1062 of file rpnfunc.cpp.

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

Referenced by var().

01063 {
01064   if (ds.size()>1)
01065     ds[0]->accept(ds,*this);
01066 
01067   dec();
01068 }

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

Reimplemented from rpnfunction.

Definition at line 417 of file rpnfunc.h.

00417 { return string("var"); }

void var::visit ( deque< rpnbase * > &  ds,
rpnstring n 
) [virtual]

Reimplemented from rpnfunction.

Definition at line 1070 of file rpnfunc.cpp.

References rpnbase::dec(), and rpnstring::str.

01071 {
01072   rpnbase* x0 = ds.front();
01073   ds.pop_front();
01074   rpnbase* x1 = ds.front();
01075   ds.pop_front();
01076   
01077   rpnprogramstackstate().add(x1,s.str);
01078   x0->dec();
01079 }


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

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