proj home

Files   Classes   Functions   Hierarchy  

rpnascii Class Reference

#include <rpnfunc.h>

Inheritance diagram for rpnascii:
Collaboration diagram for rpnascii:

List of all members.

Public Member Functions

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


Detailed Description

Definition at line 1386 of file rpnfunc.h.


Constructor & Destructor Documentation

rpnascii::rpnascii (  )  [inline]

Definition at line 1390 of file rpnfunc.h.

Referenced by copy().

01390 {}

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

Definition at line 4244 of file rpnfunc.cpp.

References eval().

04245 {
04246   if (evaluate)
04247     eval(ds);
04248   else
04249     ds.push_front(this);
04250 }

rpnascii::~rpnascii (  )  [inline]

Definition at line 1392 of file rpnfunc.h.

01392 {}


Member Function Documentation

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

Reimplemented from rpnfunction.

Definition at line 4252 of file rpnfunc.cpp.

References rpnascii().

04253 {
04254   return new rpnascii();
04255 }

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

Reimplemented from rpnfunction.

Definition at line 4257 of file rpnfunc.cpp.

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

Referenced by rpnascii().

04258 {
04259   if(!ds.empty())
04260     ds[0]->accept(ds,*this);
04261 
04262   dec();
04263 }

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

Reimplemented from rpnfunction.

Definition at line 1398 of file rpnfunc.h.

01398 { return string("ascii"); }

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

Reimplemented from rpnfunction.

Definition at line 4278 of file rpnfunc.cpp.

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

04279 {
04280   if (s.str.empty())
04281     return;
04282 
04283   rpnbase* x0 = ds.front();
04284   ds.pop_front();
04285 
04286   long int num = s.str[0];
04287   
04288   new rpninteger(ds,num);
04289 
04290   x0->dec();
04291 }

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

Reimplemented from rpnfunction.

Definition at line 4265 of file rpnfunc.cpp.

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

04266 {
04267   rpnbase* x0 = ds.front();
04268   ds.pop_front();
04269 
04270   char ch = (char)(n.num);
04271   string s; s+= ch;
04272   
04273   new rpnstring(ds,s);
04274 
04275   x0->dec();
04276 }


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

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