muParser API -
1.35
|
Namespace for mathematical applications. More...
Namespaces | |
Test | |
Namespace for test cases. | |
Classes | |
struct | CbWithUserData |
struct | generic_callable_type |
struct | MathImpl |
A template class for providing wrappers for essential math functions. More... | |
class | Parser |
Mathematical expressions parser. More... | |
class | ParserBase |
Mathematical expressions parser (base parser engine). More... | |
class | ParserByteCode |
Bytecode implementation of the Math Parser. More... | |
class | ParserCallback |
Encapsulation of prototypes for a numerical parser function. More... | |
class | ParserError |
Error class of the parser. More... | |
class | ParserErrorMsg |
A class that handles the error messages. More... | |
class | ParserInt |
Mathematical expressions parser. More... | |
class | ParserToken |
Encapsulation of the data for a single formula token. More... | |
class | ParserTokenReader |
Token reader for the ParserBase class. More... | |
struct | SToken |
struct | TplCallType |
struct | TplCallType< 0 > |
struct | TplCallType< 1 > |
struct | TplCallType< 10 > |
struct | TplCallType< 2 > |
struct | TplCallType< 3 > |
struct | TplCallType< 4 > |
struct | TplCallType< 5 > |
struct | TplCallType< 6 > |
struct | TplCallType< 7 > |
struct | TplCallType< 8 > |
struct | TplCallType< 9 > |
struct | TypeInfo |
A class singling out integer types at compile time using template meta programming. More... | |
struct | TypeInfo< char > |
struct | TypeInfo< int > |
struct | TypeInfo< long > |
struct | TypeInfo< short > |
struct | TypeInfo< unsigned char > |
struct | TypeInfo< unsigned int > |
struct | TypeInfo< unsigned long > |
struct | TypeInfo< unsigned short > |
Typedefs | |
typedef std::map< string_type, ParserCallback > | funmap_type |
Container for Callback objects. | |
typedef MUP_BASETYPE | value_type |
The numeric datatype used by the parser. More... | |
typedef MUP_STRING_TYPE | string_type |
The stringtype used by the parser. More... | |
typedef string_type::value_type | char_type |
The character type used by the parser. More... | |
typedef std::basic_stringstream< char_type, std::char_traits< char_type >, std::allocator< char_type > > | stringstream_type |
Typedef for easily using stringstream that respect the parser stringtype. | |
typedef std::map< string_type, value_type * > | varmap_type |
Type used for storing variables. | |
typedef std::map< string_type, value_type > | valmap_type |
Type used for storing constants. | |
typedef std::map< string_type, std::size_t > | strmap_type |
Type for assigning a string name to an index in the internal string table. | |
typedef void(* | erased_fun_type) () |
Function type used to erase type. Voluntarily needs explicit cast with all other fun_type. | |
typedef value_type(* | fun_type0) () |
Callback type used for functions without arguments. | |
typedef value_type(* | fun_type1) (value_type) |
Callback type used for functions with a single arguments. | |
typedef value_type(* | fun_type2) (value_type, value_type) |
Callback type used for functions with two arguments. | |
typedef value_type(* | fun_type3) (value_type, value_type, value_type) |
Callback type used for functions with three arguments. | |
typedef value_type(* | fun_type4) (value_type, value_type, value_type, value_type) |
Callback type used for functions with four arguments. | |
typedef value_type(* | fun_type5) (value_type, value_type, value_type, value_type, value_type) |
Callback type used for functions with five arguments. | |
typedef value_type(* | fun_type6) (value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type used for functions with six arguments. | |
typedef value_type(* | fun_type7) (value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type used for functions with seven arguments. | |
typedef value_type(* | fun_type8) (value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type used for functions with eight arguments. | |
typedef value_type(* | fun_type9) (value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type used for functions with nine arguments. | |
typedef value_type(* | fun_type10) (value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type used for functions with ten arguments. | |
typedef value_type(* | fun_userdata_type0) (void *) |
Callback type with user data (not null) used for functions without arguments. | |
typedef value_type(* | fun_userdata_type1) (void *, value_type) |
Callback type with user data (not null) used for functions with a single arguments. | |
typedef value_type(* | fun_userdata_type2) (void *, value_type, value_type) |
Callback type with user data (not null) used for functions with two arguments. | |
typedef value_type(* | fun_userdata_type3) (void *, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with three arguments. | |
typedef value_type(* | fun_userdata_type4) (void *, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with four arguments. | |
typedef value_type(* | fun_userdata_type5) (void *, value_type, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with five arguments. | |
typedef value_type(* | fun_userdata_type6) (void *, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with six arguments. | |
typedef value_type(* | fun_userdata_type7) (void *, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with seven arguments. | |
typedef value_type(* | fun_userdata_type8) (void *, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with eight arguments. | |
typedef value_type(* | fun_userdata_type9) (void *, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with nine arguments. | |
typedef value_type(* | fun_userdata_type10) (void *, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with ten arguments. | |
typedef value_type(* | bulkfun_type0) (int, int) |
Callback type used for functions without arguments. | |
typedef value_type(* | bulkfun_type1) (int, int, value_type) |
Callback type used for functions with a single arguments. | |
typedef value_type(* | bulkfun_type2) (int, int, value_type, value_type) |
Callback type used for functions with two arguments. | |
typedef value_type(* | bulkfun_type3) (int, int, value_type, value_type, value_type) |
Callback type used for functions with three arguments. | |
typedef value_type(* | bulkfun_type4) (int, int, value_type, value_type, value_type, value_type) |
Callback type used for functions with four arguments. | |
typedef value_type(* | bulkfun_type5) (int, int, value_type, value_type, value_type, value_type, value_type) |
Callback type used for functions with five arguments. | |
typedef value_type(* | bulkfun_type6) (int, int, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type used for functions with six arguments. | |
typedef value_type(* | bulkfun_type7) (int, int, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type used for functions with seven arguments. | |
typedef value_type(* | bulkfun_type8) (int, int, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type used for functions with eight arguments. | |
typedef value_type(* | bulkfun_type9) (int, int, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type used for functions with nine arguments. | |
typedef value_type(* | bulkfun_type10) (int, int, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type used for functions with ten arguments. | |
typedef value_type(* | bulkfun_userdata_type0) (void *, int, int) |
Callback type with user data (not null) used for functions without arguments. | |
typedef value_type(* | bulkfun_userdata_type1) (void *, int, int, value_type) |
Callback type with user data (not null) used for functions with a single arguments. | |
typedef value_type(* | bulkfun_userdata_type2) (void *, int, int, value_type, value_type) |
Callback type with user data (not null) used for functions with two arguments. | |
typedef value_type(* | bulkfun_userdata_type3) (void *, int, int, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with three arguments. | |
typedef value_type(* | bulkfun_userdata_type4) (void *, int, int, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with four arguments. | |
typedef value_type(* | bulkfun_userdata_type5) (void *, int, int, value_type, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with five arguments. | |
typedef value_type(* | bulkfun_userdata_type6) (void *, int, int, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with six arguments. | |
typedef value_type(* | bulkfun_userdata_type7) (void *, int, int, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with seven arguments. | |
typedef value_type(* | bulkfun_userdata_type8) (void *, int, int, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with eight arguments. | |
typedef value_type(* | bulkfun_userdata_type9) (void *, int, int, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with nine arguments. | |
typedef value_type(* | bulkfun_userdata_type10) (void *, int, int, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions with ten arguments. | |
typedef value_type(* | multfun_type) (const value_type *, int) |
Callback type used for functions with a variable argument list. | |
typedef value_type(* | multfun_userdata_type) (void *, const value_type *, int) |
Callback type with user data (not null) used for functions and a variable argument list. | |
typedef value_type(* | strfun_type1) (const char_type *) |
Callback type used for functions taking a string as an argument. | |
typedef value_type(* | strfun_type2) (const char_type *, value_type) |
Callback type used for functions taking a string and a value as arguments. | |
typedef value_type(* | strfun_type3) (const char_type *, value_type, value_type) |
Callback type used for functions taking a string and two values as arguments. | |
typedef value_type(* | strfun_type4) (const char_type *, value_type, value_type, value_type) |
Callback type used for functions taking a string and three values as arguments. | |
typedef value_type(* | strfun_type5) (const char_type *, value_type, value_type, value_type, value_type) |
Callback type used for functions taking a string and four values as arguments. | |
typedef value_type(* | strfun_type6) (const char_type *, value_type, value_type, value_type, value_type, value_type) |
Callback type used for functions taking a string and five values as arguments. | |
typedef value_type(* | strfun_userdata_type1) (void *, const char_type *) |
Callback type with user data (not null) used for functions taking a string as an argument. | |
typedef value_type(* | strfun_userdata_type2) (void *, const char_type *, value_type) |
Callback type with user data (not null) used for functions taking a string and a value as arguments. | |
typedef value_type(* | strfun_userdata_type3) (void *, const char_type *, value_type, value_type) |
Callback type with user data (not null) used for functions taking a string and two values as arguments. | |
typedef value_type(* | strfun_userdata_type4) (void *, const char_type *, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions taking a string and a value as arguments. | |
typedef value_type(* | strfun_userdata_type5) (void *, const char_type *, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions taking a string and two values as arguments. | |
typedef value_type(* | strfun_userdata_type6) (void *, const char_type *, value_type, value_type, value_type, value_type, value_type) |
Callback type with user data (not null) used for functions taking a string and five values as arguments. | |
typedef int(* | identfun_type) (const char_type *sExpr, int *nPos, value_type *fVal) |
Callback used for functions that identify values in a string. | |
typedef value_type *(* | facfun_type) (const char_type *, void *) |
Callback used for variable creation factory functions. | |
Enumerations | |
enum | ECmdCode { cmLE = 0, cmGE = 1, cmNEQ = 2, cmEQ = 3, cmLT = 4, cmGT = 5, cmADD = 6, cmSUB = 7, cmMUL = 8, cmDIV = 9, cmPOW = 10, cmLAND = 11, cmLOR = 12, cmASSIGN = 13, cmBO = 14, cmBC = 15, cmIF = 16, cmELSE = 17, cmENDIF = 18, cmARG_SEP = 19, cmVAR = 20, cmVAL = 21, cmVARPOW2 = 22, cmVARPOW3 = 23, cmVARPOW4 = 24, cmVARMUL = 25, cmFUNC = 26, cmFUNC_STR, cmFUNC_BULK, cmSTRING, cmOPRT_BIN, cmOPRT_POSTFIX, cmOPRT_INFIX, cmEND, cmUNKNOWN } |
Bytecode values. More... | |
enum | ETypeCode { tpSTR = 0, tpDBL = 1, tpVOID = 2 } |
Types internally used by the parser. More... | |
enum | EParserVersionInfo { pviBRIEF, pviFULL } |
enum | EOprtAssociativity { oaLEFT = 0, oaRIGHT = 1, oaNONE = 2 } |
Parser operator precedence values. | |
enum | EOprtPrecedence { prLOR = 1, prLAND = 2, prLOGIC = 3, prCMP = 4, prADD_SUB = 5, prMUL_DIV = 6, prPOW = 7, prINFIX = 6, prPOSTFIX = 6 } |
Parser operator precedence values. More... | |
enum | EErrorCodes { ecUNEXPECTED_OPERATOR = 0, ecUNASSIGNABLE_TOKEN = 1, ecUNEXPECTED_EOF = 2, ecUNEXPECTED_ARG_SEP = 3, ecUNEXPECTED_ARG = 4, ecUNEXPECTED_VAL = 5, ecUNEXPECTED_VAR = 6, ecUNEXPECTED_PARENS = 7, ecUNEXPECTED_STR = 8, ecSTRING_EXPECTED = 9, ecVAL_EXPECTED = 10, ecMISSING_PARENS = 11, ecUNEXPECTED_FUN = 12, ecUNTERMINATED_STRING = 13, ecTOO_MANY_PARAMS = 14, ecTOO_FEW_PARAMS = 15, ecOPRT_TYPE_CONFLICT = 16, ecSTR_RESULT = 17, ecINVALID_NAME = 18, ecINVALID_BINOP_IDENT = 19, ecINVALID_INFIX_IDENT = 20, ecINVALID_POSTFIX_IDENT = 21, ecBUILTIN_OVERLOAD = 22, ecINVALID_FUN_PTR = 23, ecINVALID_VAR_PTR = 24, ecEMPTY_EXPRESSION = 25, ecNAME_CONFLICT = 26, ecOPT_PRI = 27, ecDOMAIN_ERROR = 28, ecDIV_BY_ZERO = 29, ecGENERIC = 30, ecLOCALE = 31, ecUNEXPECTED_CONDITIONAL = 32, ecMISSING_ELSE_CLAUSE = 33, ecMISPLACED_COLON = 34, ecUNREASONABLE_NUMBER_OF_COMPUTATIONS = 35, ecIDENTIFIER_TOO_LONG = 36, ecEXPRESSION_TOO_LONG = 37, ecINVALID_CHARACTERS_FOUND = 38, ecINTERNAL_ERROR = 39, ecCOUNT, ecUNDEFINED = -1 } |
Error codes. More... | |
Functions | |
std::ostream & | console () |
Encapsulate cout. More... | |
std::istream & | console_in () |
Encapsulate cin. More... | |
Variables | |
static constexpr int | CALLBACK_INTERNAL_VAR_ARGS = 1 << 14 |
static constexpr int | CALLBACK_INTERNAL_FIXED_ARGS_MASK = 0xf |
static constexpr int | CALLBACK_INTERNAL_WITH_USER_DATA = 1 << 13 |
static const int | MaxLenExpression = 20000 |
static const int | MaxLenIdentifier = 100 |
static const string_type | ParserVersion = string_type(_T("2.3.4 (Release)")) |
static const string_type | ParserVersionDate = string_type(_T("20221019")) |
Namespace for mathematical applications.
typedef string_type::value_type mu::char_type |
The character type used by the parser.
Depends on whether UNICODE is used or not.
Definition at line 306 of file muParserDef.h.
typedef MUP_STRING_TYPE mu::string_type |
The stringtype used by the parser.
Depends on whether UNICODE is used or not.
Definition at line 300 of file muParserDef.h.
typedef MUP_BASETYPE mu::value_type |
The numeric datatype used by the parser.
Normally this is a floating point type either single or double precision.
Definition at line 294 of file muParserDef.h.
enum mu::ECmdCode |
Bytecode values.
Definition at line 135 of file muParserDef.h.
enum mu::EErrorCodes |
Error codes.
Definition at line 226 of file muParserDef.h.
enum mu::EOprtPrecedence |
Parser operator precedence values.
Definition at line 208 of file muParserDef.h.
enum mu::ETypeCode |
Types internally used by the parser.
Enumerator | |
---|---|
tpSTR |
String type (Function arguments and constants only, no string variables) |
tpDBL |
Floating point variables. |
tpVOID |
Undefined type. |
Definition at line 183 of file muParserDef.h.
|
inline |
Encapsulate cout.
Used for supporting UNICODE more easily.
Definition at line 115 of file muParserDef.h.
Referenced by mu::ParserByteCode::AsciiDump().
|
inline |
Encapsulate cin.
Used for supporting UNICODE more easily.
Definition at line 124 of file muParserDef.h.