muParser API -  1.35
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Namespaces | Classes | Typedefs | Enumerations | Functions
mu Namespace Reference

Namespace for mathematical applications. More...

Namespaces

 Test
 Namespace for test cases.
 

Classes

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  ParserStack
 Parser stack implementation. 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  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 value_type(* generic_fun_type )()
 Callback type used for functions without arguments.
 
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 five 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 five 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 five 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 five 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 five 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 five 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 five 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 five 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 five 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 five arguments.
 
typedef value_type(* multfun_type )(const value_type *, int)
 Callback type used for functions with 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 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, cmVARPOW3,
  cmVARPOW4, cmVARMUL, cmPOW2, cmFUNC,
  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,
  ecINTERNAL_ERROR = 36, ecCOUNT, ecUNDEFINED = -1
}
 Error codes. More...
 

Functions

std::ostream & console ()
 Encapsulate cout. More...
 
std::istream & console_in ()
 Encapsulate cin. More...
 

Detailed Description

Namespace for mathematical applications.

Typedef Documentation

typedef string_type::value_type mu::char_type

The character type used by the parser.

Depends on wether UNICODE is used or not.

Definition at line 259 of file muParserDef.h.

The stringtype used by the parser.

Depends on wether UNICODE is used or not.

Definition at line 253 of file muParserDef.h.

The numeric datatype used by the parser.

Normally this is a floating point type either single or double precision.

Definition at line 247 of file muParserDef.h.

Enumeration Type Documentation

Bytecode values.

Attention
The order of the operator entries must match the order in ParserBase::c_DefaultOprt!
Enumerator
cmLE 

Operator item: less or equal.

cmGE 

Operator item: greater or equal.

cmNEQ 

Operator item: not equal.

cmEQ 

Operator item: equals.

cmLT 

Operator item: less than.

cmGT 

Operator item: greater than.

cmADD 

Operator item: add.

cmSUB 

Operator item: subtract.

cmMUL 

Operator item: multiply.

cmDIV 

Operator item: division.

cmPOW 

Operator item: y to the power of ...

cmASSIGN 

Operator item: Assignment operator.

cmBO 

Operator item: opening bracket.

cmBC 

Operator item: closing bracket.

cmIF 

For use in the ternary if-then-else operator.

cmELSE 

For use in the ternary if-then-else operator.

cmENDIF 

For use in the ternary if-then-else operator.

cmARG_SEP 

function argument separator

cmVAR 

variable item

cmVAL 

value item

cmFUNC 

Code for a generic function item.

cmFUNC_STR 

Code for a function with a string parameter.

cmFUNC_BULK 

Special callbacks for Bulk mode with an additional parameter for the bulk index.

cmSTRING 

Code for a string token.

cmOPRT_BIN 

user defined binary operator

cmOPRT_POSTFIX 

code for postfix operators

cmOPRT_INFIX 

code for infix operators

cmEND 

end of formula

cmUNKNOWN 

uninitialized item

Definition at line 149 of file muParserDef.h.

150  {
151  // The following are codes for built in binary operators
152  // apart from built in operators the user has the opportunity to
153  // add user defined operators.
154  cmLE = 0, ///< Operator item: less or equal
155  cmGE = 1, ///< Operator item: greater or equal
156  cmNEQ = 2, ///< Operator item: not equal
157  cmEQ = 3, ///< Operator item: equals
158  cmLT = 4, ///< Operator item: less than
159  cmGT = 5, ///< Operator item: greater than
160  cmADD = 6, ///< Operator item: add
161  cmSUB = 7, ///< Operator item: subtract
162  cmMUL = 8, ///< Operator item: multiply
163  cmDIV = 9, ///< Operator item: division
164  cmPOW = 10, ///< Operator item: y to the power of ...
165  cmLAND = 11,
166  cmLOR = 12,
167  cmASSIGN = 13, ///< Operator item: Assignment operator
168  cmBO = 14, ///< Operator item: opening bracket
169  cmBC = 15, ///< Operator item: closing bracket
170  cmIF = 16, ///< For use in the ternary if-then-else operator
171  cmELSE = 17, ///< For use in the ternary if-then-else operator
172  cmENDIF = 18, ///< For use in the ternary if-then-else operator
173  cmARG_SEP = 19, ///< function argument separator
174  cmVAR = 20, ///< variable item
175  cmVAL = 21, ///< value item
176 
177  // For optimization purposes
178  cmVARPOW2,
179  cmVARPOW3,
180  cmVARPOW4,
181  cmVARMUL,
182  cmPOW2,
183 
184  // operators and functions
185  cmFUNC, ///< Code for a generic function item
186  cmFUNC_STR, ///< Code for a function with a string parameter
187  cmFUNC_BULK, ///< Special callbacks for Bulk mode with an additional parameter for the bulk index
188  cmSTRING, ///< Code for a string token
189  cmOPRT_BIN, ///< user defined binary operator
190  cmOPRT_POSTFIX, ///< code for postfix operators
191  cmOPRT_INFIX, ///< code for infix operators
192  cmEND, ///< end of formula
193  cmUNKNOWN ///< uninitialized item
194  };
Operator item: closing bracket.
Definition: muParserDef.h:169
code for infix operators
Definition: muParserDef.h:191
user defined binary operator
Definition: muParserDef.h:189
function argument separator
Definition: muParserDef.h:173
Operator item: y to the power of ...
Definition: muParserDef.h:164
code for postfix operators
Definition: muParserDef.h:190
Operator item: not equal.
Definition: muParserDef.h:156
For use in the ternary if-then-else operator.
Definition: muParserDef.h:170
end of formula
Definition: muParserDef.h:192
Code for a generic function item.
Definition: muParserDef.h:185
For use in the ternary if-then-else operator.
Definition: muParserDef.h:171
Operator item: subtract.
Definition: muParserDef.h:161
For use in the ternary if-then-else operator.
Definition: muParserDef.h:172
Operator item: multiply.
Definition: muParserDef.h:162
Operator item: division.
Definition: muParserDef.h:163
Operator item: add.
Definition: muParserDef.h:160
Operator item: less than.
Definition: muParserDef.h:158
value item
Definition: muParserDef.h:175
Operator item: greater than.
Definition: muParserDef.h:159
Special callbacks for Bulk mode with an additional parameter for the bulk index.
Definition: muParserDef.h:187
Code for a function with a string parameter.
Definition: muParserDef.h:186
Operator item: equals.
Definition: muParserDef.h:157
uninitialized item
Definition: muParserDef.h:193
Operator item: Assignment operator.
Definition: muParserDef.h:167
Code for a string token.
Definition: muParserDef.h:188
Operator item: less or equal.
Definition: muParserDef.h:154
variable item
Definition: muParserDef.h:174
Operator item: greater or equal.
Definition: muParserDef.h:155
Operator item: opening bracket.
Definition: muParserDef.h:168

Error codes.

Enumerator
ecUNEXPECTED_OPERATOR 

Unexpected binary operator found.

ecUNASSIGNABLE_TOKEN 

Token cant be identified.

ecUNEXPECTED_EOF 

Unexpected end of formula. (Example: "2+sin(")

ecUNEXPECTED_ARG_SEP 

An unexpected comma has been found. (Example: "1,23")

ecUNEXPECTED_ARG 

An unexpected argument has been found.

ecUNEXPECTED_VAL 

An unexpected value token has been found.

ecUNEXPECTED_VAR 

An unexpected variable token has been found.

ecUNEXPECTED_PARENS 

Unexpected Parenthesis, opening or closing.

ecUNEXPECTED_STR 

A string has been found at an inapropriate position.

ecSTRING_EXPECTED 

A string function has been called with a different type of argument.

ecVAL_EXPECTED 

A numerical function has been called with a non value type of argument.

ecMISSING_PARENS 

Missing parens. (Example: "3*sin(3")

ecUNEXPECTED_FUN 

Unexpected function found. (Example: "sin(8)cos(9)")

ecUNTERMINATED_STRING 

unterminated string constant. (Example: "3*valueof("hello)")

ecTOO_MANY_PARAMS 

Too many function parameters.

ecTOO_FEW_PARAMS 

Too few function parameters. (Example: "ite(1<2,2)")

ecOPRT_TYPE_CONFLICT 

binary operators may only be applied to value items of the same type

ecSTR_RESULT 

result is a string

ecINVALID_NAME 

Invalid function, variable or constant name.

ecINVALID_BINOP_IDENT 

Invalid binary operator identifier.

ecINVALID_INFIX_IDENT 

Invalid function, variable or constant name.

ecINVALID_POSTFIX_IDENT 

Invalid function, variable or constant name.

ecBUILTIN_OVERLOAD 

Trying to overload builtin operator.

ecINVALID_FUN_PTR 

Invalid callback function pointer.

ecINVALID_VAR_PTR 

Invalid variable pointer.

ecEMPTY_EXPRESSION 

The Expression is empty.

ecNAME_CONFLICT 

Name conflict.

ecOPT_PRI 

Invalid operator priority.

ecDOMAIN_ERROR 

catch division by zero, sqrt(-1), log(0) (currently unused)

ecDIV_BY_ZERO 

Division by zero (currently unused)

ecGENERIC 

Generic error.

ecLOCALE 

Conflict with current locale.

ecINTERNAL_ERROR 

Internal error of any kind.

ecCOUNT 

This is no error code, It just stores just the total number of error codes.

ecUNDEFINED 

Undefined message, placeholder to detect unassigned error messages.

Definition at line 46 of file muParserError.h.

47 {
48  // Formula syntax errors
49  ecUNEXPECTED_OPERATOR = 0, ///< Unexpected binary operator found
50  ecUNASSIGNABLE_TOKEN = 1, ///< Token cant be identified.
51  ecUNEXPECTED_EOF = 2, ///< Unexpected end of formula. (Example: "2+sin(")
52  ecUNEXPECTED_ARG_SEP = 3, ///< An unexpected comma has been found. (Example: "1,23")
53  ecUNEXPECTED_ARG = 4, ///< An unexpected argument has been found
54  ecUNEXPECTED_VAL = 5, ///< An unexpected value token has been found
55  ecUNEXPECTED_VAR = 6, ///< An unexpected variable token has been found
56  ecUNEXPECTED_PARENS = 7, ///< Unexpected Parenthesis, opening or closing
57  ecUNEXPECTED_STR = 8, ///< A string has been found at an inapropriate position
58  ecSTRING_EXPECTED = 9, ///< A string function has been called with a different type of argument
59  ecVAL_EXPECTED = 10, ///< A numerical function has been called with a non value type of argument
60  ecMISSING_PARENS = 11, ///< Missing parens. (Example: "3*sin(3")
61  ecUNEXPECTED_FUN = 12, ///< Unexpected function found. (Example: "sin(8)cos(9)")
62  ecUNTERMINATED_STRING = 13, ///< unterminated string constant. (Example: "3*valueof("hello)")
63  ecTOO_MANY_PARAMS = 14, ///< Too many function parameters
64  ecTOO_FEW_PARAMS = 15, ///< Too few function parameters. (Example: "ite(1<2,2)")
65  ecOPRT_TYPE_CONFLICT = 16, ///< binary operators may only be applied to value items of the same type
66  ecSTR_RESULT = 17, ///< result is a string
67 
68  // Invalid Parser input Parameters
69  ecINVALID_NAME = 18, ///< Invalid function, variable or constant name.
70  ecINVALID_BINOP_IDENT = 19, ///< Invalid binary operator identifier
71  ecINVALID_INFIX_IDENT = 20, ///< Invalid function, variable or constant name.
72  ecINVALID_POSTFIX_IDENT = 21, ///< Invalid function, variable or constant name.
73 
74  ecBUILTIN_OVERLOAD = 22, ///< Trying to overload builtin operator
75  ecINVALID_FUN_PTR = 23, ///< Invalid callback function pointer
76  ecINVALID_VAR_PTR = 24, ///< Invalid variable pointer
77  ecEMPTY_EXPRESSION = 25, ///< The Expression is empty
78  ecNAME_CONFLICT = 26, ///< Name conflict
79  ecOPT_PRI = 27, ///< Invalid operator priority
80  //
81  ecDOMAIN_ERROR = 28, ///< catch division by zero, sqrt(-1), log(0) (currently unused)
82  ecDIV_BY_ZERO = 29, ///< Division by zero (currently unused)
83  ecGENERIC = 30, ///< Generic error
84  ecLOCALE = 31, ///< Conflict with current locale
85 
86  ecUNEXPECTED_CONDITIONAL = 32,
87  ecMISSING_ELSE_CLAUSE = 33,
88  ecMISPLACED_COLON = 34,
89 
90  ecUNREASONABLE_NUMBER_OF_COMPUTATIONS = 35,
91 
92  // internal errors
93  ecINTERNAL_ERROR = 36, ///< Internal error of any kind.
94 
95  // The last two are special entries
96  ecCOUNT, ///< This is no error code, It just stores just the total number of error codes
97  ecUNDEFINED = -1 ///< Undefined message, placeholder to detect unassigned error messages
98 };
binary operators may only be applied to value items of the same type
Definition: muParserError.h:65
An unexpected comma has been found. (Example: "1,23")
Definition: muParserError.h:52
Token cant be identified.
Definition: muParserError.h:50
result is a string
Definition: muParserError.h:66
An unexpected argument has been found.
Definition: muParserError.h:53
Division by zero (currently unused)
Definition: muParserError.h:82
Name conflict.
Definition: muParserError.h:78
Internal error of any kind.
Definition: muParserError.h:93
unterminated string constant. (Example: "3*valueof("hello)")
Definition: muParserError.h:62
Trying to overload builtin operator.
Definition: muParserError.h:74
Undefined message, placeholder to detect unassigned error messages.
Definition: muParserError.h:97
Unexpected function found. (Example: "sin(8)cos(9)")
Definition: muParserError.h:61
This is no error code, It just stores just the total number of error codes.
Definition: muParserError.h:96
An unexpected value token has been found.
Definition: muParserError.h:54
Conflict with current locale.
Definition: muParserError.h:84
catch division by zero, sqrt(-1), log(0) (currently unused)
Definition: muParserError.h:81
An unexpected variable token has been found.
Definition: muParserError.h:55
Invalid variable pointer.
Definition: muParserError.h:76
Invalid function, variable or constant name.
Definition: muParserError.h:69
The Expression is empty.
Definition: muParserError.h:77
Too many function parameters.
Definition: muParserError.h:63
A numerical function has been called with a non value type of argument.
Definition: muParserError.h:59
Unexpected end of formula. (Example: "2+sin(")
Definition: muParserError.h:51
Too few function parameters. (Example: "ite(1<2,2)")
Definition: muParserError.h:64
A string function has been called with a different type of argument.
Definition: muParserError.h:58
Unexpected binary operator found.
Definition: muParserError.h:49
Invalid operator priority.
Definition: muParserError.h:79
Unexpected Parenthesis, opening or closing.
Definition: muParserError.h:56
Invalid function, variable or constant name.
Definition: muParserError.h:72
Invalid callback function pointer.
Definition: muParserError.h:75
Generic error.
Definition: muParserError.h:83
Missing parens. (Example: "3*sin(3")
Definition: muParserError.h:60
A string has been found at an inapropriate position.
Definition: muParserError.h:57
Invalid function, variable or constant name.
Definition: muParserError.h:71
Invalid binary operator identifier.
Definition: muParserError.h:70

Parser operator precedence values.

Enumerator
prLOGIC 

logic operators

prCMP 

comparsion operators

prADD_SUB 

addition

prMUL_DIV 

multiplication/division

prPOW 

power operator priority (highest)

prINFIX 

Signs have a higher priority than ADD_SUB, but lower than power operator.

prPOSTFIX 

Postfix operator priority (currently unused)

Definition at line 224 of file muParserDef.h.

225  {
226  // binary operators
227  prLOR = 1,
228  prLAND = 2,
229  prLOGIC = 3, ///< logic operators
230  prCMP = 4, ///< comparsion operators
231  prADD_SUB = 5, ///< addition
232  prMUL_DIV = 6, ///< multiplication/division
233  prPOW = 7, ///< power operator priority (highest)
234 
235  // infix operators
236  prINFIX = 6, ///< Signs have a higher priority than ADD_SUB, but lower than power operator
237  prPOSTFIX = 6 ///< Postfix operator priority (currently unused)
238  };
multiplication/division
Definition: muParserDef.h:232
Postfix operator priority (currently unused)
Definition: muParserDef.h:237
power operator priority (highest)
Definition: muParserDef.h:233
comparsion operators
Definition: muParserDef.h:230
addition
Definition: muParserDef.h:231
logic operators
Definition: muParserDef.h:229
Signs have a higher priority than ADD_SUB, but lower than power operator.
Definition: muParserDef.h:236

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 199 of file muParserDef.h.

200  {
201  tpSTR = 0, ///< String type (Function arguments and constants only, no string variables)
202  tpDBL = 1, ///< Floating point variables
203  tpVOID = 2 ///< Undefined type.
204  };
String type (Function arguments and constants only, no string variables)
Definition: muParserDef.h:201
Undefined type.
Definition: muParserDef.h:203
Floating point variables.
Definition: muParserDef.h:202

Function Documentation

std::ostream& mu::console ( )
inline

Encapsulate cout.

Used for supporting UNICODE more easily.

Definition at line 128 of file muParserDef.h.

Referenced by mu::ParserByteCode::AsciiDump().

129  {
130  return std::cout;
131  }
std::istream& mu::console_in ( )
inline

Encapsulate cin.

Used for supporting UNICODE more easily.

Definition at line 137 of file muParserDef.h.

138  {
139  return std::cin;
140  }