proj home

Files   Classes   Functions   Hierarchy  

rpngreaterthanequal Class Reference

#include <rpnfunc.h>

Inheritance diagram for rpngreaterthanequal:
Collaboration diagram for rpngreaterthanequal:

List of all members.

Public Member Functions

 rpngreaterthanequal ()
 rpngreaterthanequal (deque< rpnbase * > &ds, bool const evaluate=true)
 ~rpngreaterthanequal ()
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 760 of file rpnfunc.h.


Constructor & Destructor Documentation

rpngreaterthanequal::rpngreaterthanequal (  )  [inline]

Definition at line 764 of file rpnfunc.h.

Referenced by copy().

00764 {}

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

Definition at line 2095 of file rpnfunc.cpp.

References eval().

02096 {
02097   if (evaluate)
02098     eval(ds);
02099   else
02100     ds.push_front(this);
02101 }

rpngreaterthanequal::~rpngreaterthanequal (  )  [inline]

Definition at line 766 of file rpnfunc.h.

00766 {}


Member Function Documentation

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

Reimplemented from rpnfunction.

Definition at line 2103 of file rpnfunc.cpp.

References rpngreaterthanequal().

02104 {
02105   return new rpngreaterthanequal();
02106 }

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

Reimplemented from rpnfunction.

Definition at line 2108 of file rpnfunc.cpp.

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

Referenced by rpngreaterthanequal().

02109 {
02110   if (ds.size()>1)
02111     ds[0]->accept(ds,*this);
02112 
02113   dec();
02114 }

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

Reimplemented from rpnfunction.

Definition at line 772 of file rpnfunc.h.

00772 { return string(">="); }

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

Reimplemented from rpnfunction.

Definition at line 2137 of file rpnfunc.cpp.

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

02138 {
02139   rpnbase* x0 = ds.front();
02140   ds.pop_front();
02141   rpnbase* x1 = ds.front();
02142   ds.pop_front();
02143 
02144   if ( x1->isreal())
02145   {
02146     new rpninteger(ds, ((rpnreal*)x1)->num >= n.num );
02147   }
02148   else
02149   if ( x1->isinteger())
02150   {
02151     new rpninteger(ds, ((rpninteger*)x1)->num >= n.num );
02152   }
02153 
02154   x0->dec();
02155   x1->dec();
02156 }

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

Reimplemented from rpnfunction.

Definition at line 2116 of file rpnfunc.cpp.

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

02117 {
02118   rpnbase* x0 = ds.front();
02119   ds.pop_front();
02120   rpnbase* x1 = ds.front();
02121   ds.pop_front();
02122 
02123   if ( x1->isinteger())
02124   {
02125     new rpninteger(ds, ((rpninteger*)x1)->num >= n.num );
02126   }
02127   else
02128   if (x1->isreal())
02129   {
02130     new rpninteger(ds, ((rpnreal*)x1)->num >= n.num );
02131   }
02132 
02133   x0->dec();
02134   x1->dec();
02135 }


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

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