Classes | Public Member Functions | Public Attributes | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
CMathParser Class Reference

Expression parser and evaluator of CSwissKnife. More...

#include <MathParser.h>

Classes

struct  Operation
 

Public Member Functions

 CMathParser (void)
 
const char * Eval (double *result)
 
const char * Parse (const char *Formula, bool ConvertUpperCase)
 
 ~CMathParser ()
 

Public Attributes

CStrMapExtFunctions
 
PrmSrchFunc MoreParams
 
CStrMapParameters
 
void * ParamFuncParam
 

Private Types

typedef struct CMathParser::Operation Operation
 
enum  OperType_t {
  OP_SHL, OP_SHR, OP_POW, OP_LOGIC_NEQ,
  OP_LOGIC_GEQ, OP_LOGIC_LEQ, OP_LOGIC_AND, OP_LOGIC_OR,
  OP_COMSTART, OP_ASSIGN, OP_OBR, OP_ADD,
  OP_SUB, OP_MUL, OP_DIV, OP_MOD,
  OP_UNK, OP_XOR, OP_NOT, OP_AND,
  OP_OR, OP_EQU, OP_GREATER, OP_LESS,
  OP_LOGIC, OP_LOGIC_SEP, OP_CBR, OP_COMMA,
  OP_FORMULAEND, OP_INDEX_TO_VAR, OP_FUNC_ONEARG, OP_FUNC_MULTIARG
}
 

Private Member Functions

const char * Calc ()
 
const char * CalcToObr ()
 
const char * ParseFormula (bool ConvertUpperCase)
 
const char * PrepareFormula ()
 

Private Attributes

std::vector< char > errbuf
 
CLexer Lexer
 
int ObrDist
 
std::vector< OperationOpStack
 
std::vector< OperationOpStackEval
 
int OpTop
 
std::vector< double > ValStack
 
std::vector< double > ValStackEval
 
int ValTop
 
CStrMapVarParams
 

Static Private Attributes

static const Operation BrOp
 
static const Operation CbrOp
 
static const Operation CommaOp
 
static CStaticFuncMapDouble DoubleFunctions
 
static const Operation ItvOp
 
static CSymTable MathSymTable
 
static const Operation NegOp
 
static const signed char OpPriorities [OP_FUNC_MULTIARG+1]
 

Detailed Description

Expression parser and evaluator of CSwissKnife.

Definition at line 51 of file MathParser.h.

Member Typedef Documentation

Member Enumeration Documentation

Enumerator
OP_SHL 
OP_SHR 
OP_POW 
OP_LOGIC_NEQ 
OP_LOGIC_GEQ 
OP_LOGIC_LEQ 
OP_LOGIC_AND 
OP_LOGIC_OR 
OP_COMSTART 
OP_ASSIGN 
OP_OBR 
OP_ADD 
OP_SUB 
OP_MUL 
OP_DIV 
OP_MOD 
OP_UNK 
OP_XOR 
OP_NOT 
OP_AND 
OP_OR 
OP_EQU 
OP_GREATER 
OP_LESS 
OP_LOGIC 
OP_LOGIC_SEP 
OP_CBR 
OP_COMMA 
OP_FORMULAEND 
OP_INDEX_TO_VAR 
OP_FUNC_ONEARG 
OP_FUNC_MULTIARG 

Definition at line 53 of file MathParser.h.

Constructor & Destructor Documentation

CMathParser::CMathParser ( void  )
CMathParser::~CMathParser ( )

Member Function Documentation

const char* CMathParser::Calc ( )
private
const char* CMathParser::CalcToObr ( )
private
const char* CMathParser::Eval ( double *  result)
const char* CMathParser::Parse ( const char *  Formula,
bool  ConvertUpperCase 
)
const char* CMathParser::ParseFormula ( bool  ConvertUpperCase)
private
const char* CMathParser::PrepareFormula ( )
private

Member Data Documentation

const Operation CMathParser::BrOp
staticprivate

Definition at line 79 of file MathParser.h.

const Operation CMathParser::CbrOp
staticprivate

Definition at line 80 of file MathParser.h.

const Operation CMathParser::CommaOp
staticprivate

Definition at line 83 of file MathParser.h.

CStaticFuncMapDouble CMathParser::DoubleFunctions
staticprivate

Definition at line 93 of file MathParser.h.

std::vector<char> CMathParser::errbuf
private

Definition at line 92 of file MathParser.h.

CStrMap* CMathParser::ExtFunctions

Definition at line 101 of file MathParser.h.

const Operation CMathParser::ItvOp
staticprivate

Definition at line 82 of file MathParser.h.

CLexer CMathParser::Lexer
private

Definition at line 90 of file MathParser.h.

CSymTable CMathParser::MathSymTable
staticprivate

Definition at line 94 of file MathParser.h.

PrmSrchFunc CMathParser::MoreParams

Definition at line 102 of file MathParser.h.

const Operation CMathParser::NegOp
staticprivate

Definition at line 81 of file MathParser.h.

int CMathParser::ObrDist
private

Definition at line 89 of file MathParser.h.

const signed char CMathParser::OpPriorities[OP_FUNC_MULTIARG+1]
staticprivate

Definition at line 68 of file MathParser.h.

std::vector<Operation> CMathParser::OpStack
private

Definition at line 84 of file MathParser.h.

std::vector<Operation> CMathParser::OpStackEval
private

Definition at line 85 of file MathParser.h.

int CMathParser::OpTop
private

Definition at line 88 of file MathParser.h.

CStrMap* CMathParser::Parameters

Definition at line 100 of file MathParser.h.

void* CMathParser::ParamFuncParam

Definition at line 103 of file MathParser.h.

std::vector<double> CMathParser::ValStack
private

Definition at line 86 of file MathParser.h.

std::vector<double> CMathParser::ValStackEval
private

Definition at line 87 of file MathParser.h.

int CMathParser::ValTop
private

Definition at line 88 of file MathParser.h.

CStrMap* CMathParser::VarParams
private

Definition at line 91 of file MathParser.h.


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


rc_genicam_api
Author(s): Heiko Hirschmueller
autogenerated on Thu Jun 6 2019 19:10:55