MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
evaluator_impl.h File Reference
#include <iostream>
#include <sstream>
#include <cmath>
#include <limits>
Include dependency graph for evaluator_impl.h:

Go to the source code of this file.

Classes

class  EE_Value
 
class  EE_Var
 
class  EE_Plus
 
class  EE_Minus
 
class  EE_Modulus
 
class  EE_Multiply
 
class  EE_Divide
 
class  EE_Unary_minus
 
class  EE_AND
 
class  EE_OR
 
class  EE_NOT
 
class  EE_XOR
 
class  EE_Greater
 
class  EE_Greater_Equal
 
class  EE_Lesser
 
class  EE_Lesser_Equal
 
class  EE_Equal_Equal
 
class  EE_Not_Equal
 
class  EE_Power
 
class  EE_Assign
 
class  EE_DeclareAssign
 
class  EE_StmtList
 
class  EE_Func
 

Functions

template<class T >
ExpressionElementEECreate (ExpressionElement *e1)
 
template<class T >
ExpressionElementEECreate (ExpressionElement *e1, ExpressionElement *e2)
 
template<class T >
ExpressionElementEECreate (ExpressionElement *e1, ExpressionElement *e2, ExpressionElement *e3)
 

Function Documentation

template<class T >
ExpressionElement* EECreate ( ExpressionElement e1)

Definition at line 721 of file evaluator_impl.h.

References ExpressionElement::EE_CONSTIFY, ExpressionElement::Eval(), and ExpressionElement::IsFlag().

722 {
723  ExpressionElement *out = new T(e1);
725  if (dynamic_cast<EE_Value *>(e1)) {
726  ExpressionElement *tmp = new EE_Value(out->Eval());
727  delete out;
728  return tmp;
729  }
730  }
731  return out;
732 }
virtual TypedValue Eval(void) const =0
static bool IsFlag(EEFlags f)
Definition: evaluator.h:66

Here is the call graph for this function:

template<class T >
ExpressionElement* EECreate ( ExpressionElement e1,
ExpressionElement e2 
)

Definition at line 737 of file evaluator_impl.h.

References ExpressionElement::EE_CONSTIFY, ExpressionElement::Eval(), and ExpressionElement::IsFlag().

738 {
739  ExpressionElement *out = new T(e1, e2);
741  if (dynamic_cast<EE_Value *>(e1) && dynamic_cast<EE_Value *>(e2)) {
742  ExpressionElement *tmp = new EE_Value(out->Eval());
743  delete out;
744  return tmp;
745  }
746  }
747  return out;
748 }
virtual TypedValue Eval(void) const =0
static bool IsFlag(EEFlags f)
Definition: evaluator.h:66

Here is the call graph for this function:

template<class T >
ExpressionElement* EECreate ( ExpressionElement e1,
ExpressionElement e2,
ExpressionElement e3 
)

Definition at line 753 of file evaluator_impl.h.

References ExpressionElement::EE_CONSTIFY, ExpressionElement::Eval(), and ExpressionElement::IsFlag().

754 {
755  ExpressionElement *out = new T(e1, e2, e3);
757  if (dynamic_cast<EE_Value *>(e1) && dynamic_cast<EE_Value *>(e2) && dynamic_cast<EE_Value *>(e3)) {
758  ExpressionElement *tmp = new EE_Value(out->Eval());
759  delete out;
760  return tmp;
761  }
762  }
763  return out;
764 }
virtual TypedValue Eval(void) const =0
static bool IsFlag(EEFlags f)
Definition: evaluator.h:66

Here is the call graph for this function: