#include <ExpressionParser.h>
Inheritance diagram for stx::BasicSymbolTable:

Public Types | |
| typedef AnyScalar(*) | functionptr_type (const paramlist_type ¶mlist) |
| Signature of a function used in the symbol table. | |
Public Member Functions | |
| BasicSymbolTable () | |
| Fills in the functionmap with the standard functions. | |
| virtual | ~BasicSymbolTable () |
| Required for virtual functions. | |
| virtual AnyScalar | lookupVariable (const std::string &varname) const |
| Return the (constant) value of a variable. | |
| virtual AnyScalar | processFunction (const std::string &funcname, const paramlist_type ¶mlist) const |
| Called when a program-defined function needs to be evaluated within an expression. | |
| void | setVariable (const std::string &varname, const AnyScalar &value) |
| Add or replace a variable to the symbol table. | |
| void | setFunction (const std::string &funcname, int arguments, functionptr_type funcptr) |
| Add or replace a function to the symbol table. | |
| void | clearVariables () |
| Clear variables table. | |
| void | clearFunctions () |
| Clear function table. | |
| void | addStandardFunctions () |
| Add set of standard mathematic functions. | |
Protected Types | |
|
typedef std::map< std::string, AnyScalar > | variablemap_type |
| Container used to save a map of variable names. | |
|
typedef std::map< std::string, struct FunctionInfo > | functionmap_type |
| Container used to save a map of function names. | |
Static Protected Member Functions | |
| static AnyScalar | funcPI (const paramlist_type ¶mlist) |
| Return the value of PI as a double AnyScalar. | |
| static AnyScalar | funcSIN (const paramlist_type ¶mlist) |
| Return the value of sin(x) as a double AnyScalar. | |
| static AnyScalar | funcCOS (const paramlist_type ¶mlist) |
| Return the value of cos(x) as a double AnyScalar. | |
| static AnyScalar | funcTAN (const paramlist_type ¶mlist) |
| Return the value of tan(x) as a double AnyScalar. | |
| static AnyScalar | funcABS (const paramlist_type ¶mlist) |
| Return the value of abs(x) or fabs(f). | |
| static AnyScalar | funcEXP (const paramlist_type ¶mlist) |
| Return the value of exp(x) as a double AnyScalar. | |
| static AnyScalar | funcLOGN (const paramlist_type ¶mlist) |
| Return the value of log(x) as a double AnyScalar. | |
| static AnyScalar | funcPOW (const paramlist_type ¶mlist) |
| Return the value of pow(x,y) as a double AnyScalar. | |
| static AnyScalar | funcSQRT (const paramlist_type ¶mlist) |
| Return the value of sqrt(x) as a double AnyScalar. | |
Private Attributes | |
| variablemap_type | variablemap |
| Variable map which can be filled by the user-application. | |
| functionmap_type | functionmap |
| Function map used to lookup standard or user-added function. | |
Classes | |
| struct | FunctionInfo |
| Extra info about a function: the valid arguments. More... | |
This base class contain two tables of variables and functions. Variables may be filled into the STL map by the program. The class also contains a set of basic mathematic functions.
Definition at line 163 of file ExpressionParser.h.
| AnyScalar stx::BasicSymbolTable::lookupVariable | ( | const std::string & | varname | ) | const [virtual] |
Return the (constant) value of a variable.
In this basic implementation no variables are defined, it always throws an UnknownSymbolException.
Implements stx::SymbolTable.
Definition at line 1532 of file ExpressionParser.cc.
References variablemap.
| AnyScalar stx::BasicSymbolTable::processFunction | ( | const std::string & | funcname, | |
| const paramlist_type & | paramlist | |||
| ) | const [virtual] |
Called when a program-defined function needs to be evaluated within an expression.
Implements stx::SymbolTable.
Definition at line 1547 of file ExpressionParser.cc.
References functionmap.
1.5.2