proj home

Files   Classes   Functions   Hierarchy  

rpnlessthan Class Reference

#include <rpnfunc.h>

Inheritance diagram for rpnlessthan:
Collaboration diagram for rpnlessthan:

List of all members.

Public Member Functions

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


Constructor & Destructor Documentation

rpnlessthan::rpnlessthan (  )  [inline]

Definition at line 730 of file rpnfunc.h.

Referenced by copy().

00730 {}

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

Definition at line 1967 of file rpnfunc.cpp.

References eval().

01968 {
01969   if (evaluate)
01970     eval(ds);
01971   else
01972     ds.push_front(this);
01973 }

rpnlessthan::~rpnlessthan (  )  [inline]

Definition at line 732 of file rpnfunc.h.

00732 {}


Member Function Documentation

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

Reimplemented from rpnfunction.

Definition at line 1975 of file rpnfunc.cpp.

References rpnlessthan().

01976 {
01977   return new rpnlessthan();
01978 }

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

Reimplemented from rpnfunction.

Definition at line 1980 of file rpnfunc.cpp.

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

Referenced by rpnlessthan().

01981 {
01982   if (ds.size()>1)
01983     ds[0]->accept(ds,*this);
01984 
01985   dec();
01986 }

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

Reimplemented from rpnfunction.

Definition at line 738 of file rpnfunc.h.

00738 { return string("<"); }

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

Reimplemented from rpnfunction.

Definition at line 2009 of file rpnfunc.cpp.

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

02010 {
02011   rpnbase* x0 = ds.front();
02012   ds.pop_front();
02013   rpnbase* x1 = ds.front();
02014   ds.pop_front();
02015 
02016   if ( x1->isreal())
02017   {
02018     new rpninteger(ds, ((rpnreal*)x1)->num < n.num );
02019   }
02020   else
02021   if ( x1->isinteger())
02022   {
02023     new rpninteger(ds, ((rpninteger*)x1)->num < n.num );
02024   }
02025 
02026   x0->dec();
02027   x1->dec();
02028 }

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

Reimplemented from rpnfunction.

Definition at line 1988 of file rpnfunc.cpp.

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

01989 {
01990   rpnbase* x0 = ds.front();
01991   ds.pop_front();
01992   rpnbase* x1 = ds.front();
01993   ds.pop_front();
01994 
01995   if ( x1->isinteger())
01996   {
01997     new rpninteger(ds, ((rpninteger*)x1)->num < n.num );
01998   }
01999   else
02000   if (x1->isreal())
02001   {
02002     new rpninteger(ds, ((rpnreal*)x1)->num < n.num );
02003   }
02004 
02005   x0->dec();
02006   x1->dec();
02007 }


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