proj home

Files   Classes   Functions   Hierarchy  

rpnlessthanequal Class Reference

#include <rpnfunc.h>

Inheritance diagram for rpnlessthanequal:
Collaboration diagram for rpnlessthanequal:

List of all members.

Public Member Functions

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


Detailed Description

Definition at line 743 of file rpnfunc.h.


Constructor & Destructor Documentation

rpnlessthanequal::rpnlessthanequal (  )  [inline]

Definition at line 747 of file rpnfunc.h.

Referenced by copy().

00747 {}

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

Definition at line 2031 of file rpnfunc.cpp.

References eval().

02032 {
02033   if (evaluate)
02034     eval(ds);
02035   else
02036     ds.push_front(this);
02037 }

rpnlessthanequal::~rpnlessthanequal (  )  [inline]

Definition at line 749 of file rpnfunc.h.

00749 {}


Member Function Documentation

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

Reimplemented from rpnfunction.

Definition at line 2039 of file rpnfunc.cpp.

References rpnlessthanequal().

02040 {
02041   return new rpnlessthanequal();
02042 }

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

Reimplemented from rpnfunction.

Definition at line 2044 of file rpnfunc.cpp.

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

Referenced by rpnlessthanequal().

02045 {
02046   if (ds.size()>1)
02047     ds[0]->accept(ds,*this);
02048 
02049   dec();
02050 }

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

Reimplemented from rpnfunction.

Definition at line 755 of file rpnfunc.h.

00755 { return string("<="); }

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

Reimplemented from rpnfunction.

Definition at line 2073 of file rpnfunc.cpp.

References rpnbase::dec(), rpnbase::isinteger(), rpnbase::isreal(), and rpninteger::num.

02074 {
02075   rpnbase* x0 = ds.front();
02076   ds.pop_front();
02077   rpnbase* x1 = ds.front();
02078   ds.pop_front();
02079 
02080   if ( x1->isreal())
02081   {
02082     new rpninteger(ds, ((rpnreal*)x1)->num <= n.num );
02083   }
02084   else
02085   if ( x1->isinteger())
02086   {
02087     new rpninteger(ds, ((rpninteger*)x1)->num <= n.num );
02088   }
02089 
02090   x0->dec();
02091   x1->dec();
02092 }

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

Reimplemented from rpnfunction.

Definition at line 2052 of file rpnfunc.cpp.

References rpnbase::dec(), rpnbase::isinteger(), rpnbase::isreal(), and rpnreal::num.

02053 {
02054   rpnbase* x0 = ds.front();
02055   ds.pop_front();
02056   rpnbase* x1 = ds.front();
02057   ds.pop_front();
02058 
02059   if ( x1->isinteger())
02060   {
02061     new rpninteger(ds, ((rpninteger*)x1)->num <= n.num );
02062   }
02063   else
02064   if (x1->isreal())
02065   {
02066     new rpninteger(ds, ((rpnreal*)x1)->num <= n.num );
02067   }
02068 
02069   x0->dec();
02070   x1->dec();
02071 }


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

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