fastdo  0.5.12
eienexpr::ExprFunc类 参考

函数操作数 更多...

#include <eienexpr.hpp>

类 eienexpr::ExprFunc 继承关系图:
eienexpr::ExprFunc 的协作图:

Public 类型

typedef bool(* FuncFunction) (std::vector< Expression * > &params, winux::SimplePointer< ExprOperand > *outRetValue, void *data)
 
typedef std::map< winux::String, FuncFunctionStringFuncMap
 
- Public 类型 继承自 eienexpr::ExprOperand
enum  ExprOperandType {
  eotLiteral, eotIdentifier, eotReference, eotFunction,
  eotExpression
}
 
- Public 类型 继承自 eienexpr::ExprAtom
enum  ExprAtomType { eatOperator, eatOperand }
 

Public 成员函数

 ExprFunc (Expression *exprObj, winux::String const &funcName)
 
virtual ~ExprFunc ()
 
 ExprFunc (ExprFunc const &other)
 
ExprFuncoperator= (ExprFunc const &other)
 
virtual ExprAtomclone () const
 克隆一个atom 更多...
 
virtual winux::String toString () const
 字符串形式输出 更多...
 
virtual bool evaluate (winux::SimplePointer< ExprOperand > *result)
 计算,结果不一定是值,还可以是其他操作数 更多...
 
void _clear ()
 释放参数内存 更多...
 
void _addParam (Expression *param)
 添加一个参数,param必须是new的或者clone()的 更多...
 
- Public 成员函数 继承自 eienexpr::ExprOperand
 ExprOperand ()
 
virtual ~ExprOperand ()
 
winux::Mixed val ()
 把操作数计算成可用的值,如果不能算,则抛出异常 更多...
 
ExprOperandType getOperandType () const
 取得操作数类型 更多...
 
- Public 成员函数 继承自 eienexpr::ExprAtom
 ExprAtom ()
 
virtual ~ExprAtom ()
 
ExprAtomType getAtomType () const
 原子类型 更多...
 

静态 Public 成员函数

static void SetFunc (winux::String const &funcName, FuncFunction fn)
 动态添加一个func 更多...
 
static bool DelFunc (winux::String const &funcName)
 动态移除一个func 更多...
 
static bool ModifyFunc (winux::String const &funcName, winux::String const &newFuncName, FuncFunction newFn)
 动态修改一个func 更多...
 
static bool FindFunc (winux::String const &funcName, FuncFunction *fn)
 查找预定义的func 更多...
 
static int GetAllFuncs (std::vector< std::pair< winux::String, FuncFunction > > *funcs)
 取得所有funcs 更多...
 

Public 属性

Expression_exprObj
 所属表达式对象 更多...
 
winux::String _funcName
 函数名 更多...
 
std::vector< Expression * > _params
 参数,也是表达式 更多...
 

静态 Public 属性

static StringFuncMap _FuncsMap
 实际函数映射表 更多...
 

友元

class ExprParser
 

额外继承的成员函数

- Protected 属性 继承自 eienexpr::ExprOperand
ExprOperandType _operandType
 
- Protected 属性 继承自 eienexpr::ExprAtom
ExprAtomType _atomType
 

详细描述

函数操作数

在文件 eienexpr.hpp236 行定义.

成员类型定义说明

typedef bool(* eienexpr::ExprFunc::FuncFunction) (std::vector< Expression * > &params, winux::SimplePointer< ExprOperand > *outRetValue, void *data)

在文件 eienexpr.hpp240 行定义.

在文件 eienexpr.hpp242 行定义.

构造及析构函数说明

eienexpr::ExprFunc::ExprFunc ( Expression exprObj,
winux::String const &  funcName 
)
virtual eienexpr::ExprFunc::~ExprFunc ( )
virtual
eienexpr::ExprFunc::ExprFunc ( ExprFunc const &  other)

成员函数说明

void eienexpr::ExprFunc::_addParam ( Expression param)

添加一个参数,param必须是new的或者clone()的

void eienexpr::ExprFunc::_clear ( )

释放参数内存

virtual ExprAtom* eienexpr::ExprFunc::clone ( ) const
virtual

克隆一个atom

实现了 eienexpr::ExprAtom.

static bool eienexpr::ExprFunc::DelFunc ( winux::String const &  funcName)
static

动态移除一个func

virtual bool eienexpr::ExprFunc::evaluate ( winux::SimplePointer< ExprOperand > *  result)
virtual

计算,结果不一定是值,还可以是其他操作数

实现了 eienexpr::ExprOperand.

static bool eienexpr::ExprFunc::FindFunc ( winux::String const &  funcName,
FuncFunction fn 
)
static

查找预定义的func

static int eienexpr::ExprFunc::GetAllFuncs ( std::vector< std::pair< winux::String, FuncFunction > > *  funcs)
static

取得所有funcs

static bool eienexpr::ExprFunc::ModifyFunc ( winux::String const &  funcName,
winux::String const &  newFuncName,
FuncFunction  newFn 
)
static

动态修改一个func

ExprFunc& eienexpr::ExprFunc::operator= ( ExprFunc const &  other)
static void eienexpr::ExprFunc::SetFunc ( winux::String const &  funcName,
FuncFunction  fn 
)
static

动态添加一个func

virtual winux::String eienexpr::ExprFunc::toString ( ) const
virtual

字符串形式输出

实现了 eienexpr::ExprAtom.

友元及相关函数文档

friend class ExprParser
friend

在文件 eienexpr.hpp278 行定义.

类成员变量说明

Expression* eienexpr::ExprFunc::_exprObj

所属表达式对象

在文件 eienexpr.hpp254 行定义.

winux::String eienexpr::ExprFunc::_funcName

函数名

在文件 eienexpr.hpp255 行定义.

StringFuncMap eienexpr::ExprFunc::_FuncsMap
static

实际函数映射表

在文件 eienexpr.hpp258 行定义.

std::vector<Expression *> eienexpr::ExprFunc::_params

参数,也是表达式

在文件 eienexpr.hpp256 行定义.


该类的文档由以下文件生成: