Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends

MathExpression Class Reference

Parsed Math expression. More...

List of all members.

Public Types

enum  VarType { Variable, Constant, Recursive }

Public Member Functions

virtual float getValue () const =0
virtual int nrVariables () const
virtual const char * fullVariableExpression (int) const
virtual void setVariableValue (int, float)
int nrUniqueVarNames () const
const char * uniqueVarName (int idx) const
int indexOfUnVarName (const char *nm)
int firstOccurVarName (const char *) const
VarType getType (int varidx) const
int getConstIdx (int varidx) const
bool isRecursive () const
virtual MathExpressionclone () const =0
virtual ~MathExpression ()

Protected Member Functions

 MathExpression (int nrinputs)
int nrInputs () const
bool setInput (int, MathExpression *)
void copyInput (MathExpression *target) const
void addIfOK (const char *)

Protected Attributes

ObjectSet< TypeSet< int > > variableobj_
ObjectSet< TypeSet< int > > variablenr_
ObjectSet< MathExpressioninputs_
BufferStringSet varnms_
bool isrecursive_

Friends

class MathExpressionParser

Detailed Description

Parsed Math expression.

A MathExpression can be queried about its variables with getNrVariables(), and each variable's name can be queried with getVariableStr( int ).

When a calculations should be done, all variables must be set with setVariable( int, float ). Then, the calculation can be done with getValue().


Member Enumeration Documentation

Enumerator:
Variable 
Constant 
Recursive 

Constructor & Destructor Documentation

virtual MathExpression::~MathExpression (  )  [virtual]
MathExpression::MathExpression ( int  nrinputs  )  [protected]

Member Function Documentation

void MathExpression::addIfOK ( const char *   )  [protected]
virtual MathExpression* MathExpression::clone (  )  const [pure virtual]
void MathExpression::copyInput ( MathExpression target  )  const [protected]
int MathExpression::firstOccurVarName ( const char *   )  const
virtual const char* MathExpression::fullVariableExpression ( int   )  const [virtual]
int MathExpression::getConstIdx ( int  varidx  )  const
VarType MathExpression::getType ( int  varidx  )  const
virtual float MathExpression::getValue (  )  const [pure virtual]
int MathExpression::indexOfUnVarName ( const char *  nm  )  [inline]
bool MathExpression::isRecursive (  )  const [inline]
int MathExpression::nrInputs (  )  const [inline, protected]
int MathExpression::nrUniqueVarNames (  )  const [inline]
virtual int MathExpression::nrVariables (  )  const [virtual]
bool MathExpression::setInput ( int  ,
MathExpression  
) [protected]
virtual void MathExpression::setVariableValue ( int  ,
float   
) [virtual]
const char* MathExpression::uniqueVarName ( int  idx  )  const [inline]

Friends And Related Function Documentation

friend class MathExpressionParser [friend]

Member Data Documentation

bool MathExpression::isrecursive_ [protected]