muParser: muParserDef.h File Reference

# muParserDef.h File Reference

This file contains standard definitions used by the parser. More...

`#include <iostream>`
`#include <string>`
`#include <sstream>`
`#include <map>`
`#include "muParserFixes.h"`

Go to the source code of this file.

## Namespaces
namespace | mu
## Classes
struct | mu::mu::STATIC_ASSERTION_FAILURE< true >
## Defines
#define | MUP_BASETYPE double
| Define the base datatype for values.
#define | MUP_BYTECODE_TYPE long
| Definition of the basic bytecode datatype.
#define | MUP_STRING_TYPE std::string
| Definition of the basic parser string type.
#define | MUP_FAIL(MSG)
#define | MUP_ASSERT(COND)
## Typedefs
typedef MUP_BASETYPE | mu::value_type
| The numeric datatype used by the parser.
typedef MUP_STRING_TYPE | mu::string_type
| The stringtype used by the parser.
typedef MUP_BYTECODE_TYPE | mu::bytecode_type
| The bytecode type used by the parser.
typedef string_type::value_type | mu::char_type
| The character type used by the parser.
typedef std::basic_stringstream < char_type, std::char_traits < char_type >, std::allocator < char_type > > | mu::stringstream_type
| Typedef for easily using stringstream that respect the parser stringtype.
typedef std::map< string_type, value_type * > | mu::varmap_type
| Type used for storing variables.
typedef std::map< string_type, value_type > | mu::valmap_type
| Type used for storing constants.
typedef std::map< string_type, std::size_t > | mu::strmap_type
| Type for assigning a string name to an index in the internal string table.
typedef value_type(* | mu::fun_type0 )()
| Callback type used for functions without arguments.
typedef value_type(* | mu::fun_type1 )(value_type)
| Callback type used for functions with a single arguments.
typedef value_type(* | mu::fun_type2 )(value_type, value_type)
| Callback type used for functions with two arguments.
typedef value_type(* | mu::fun_type3 )(value_type, value_type, value_type)
| Callback type used for functions with three arguments.
typedef value_type(* | mu::fun_type4 )(value_type, value_type, value_type, value_type)
| Callback type used for functions with four arguments.
typedef value_type(* | mu::fun_type5 )(value_type, value_type, value_type, value_type, value_type)
| Callback type used for functions with five arguments.
typedef value_type(* | mu::multfun_type )(const value_type *, int)
| Callback type used for functions with a variable argument list.
typedef value_type(* | mu::strfun_type1 )(const char_type *)
| Callback type used for functions taking a string as an argument.
typedef value_type(* | mu::strfun_type2 )(const char_type *, value_type)
| Callback type used for functions taking a string and a value as arguments.
typedef value_type(* | mu::strfun_type3 )(const char_type *, value_type, value_type)
| Callback type used for functions taking a string and two values as arguments.
typedef int(* | mu::identfun_type )(const char_type *sExpr, int *nPos, value_type *fVal)
| Callback used for functions that identify values in a string.
typedef value_type *(* | mu::facfun_type )(const char_type *, void *)
| Callback used for variable creation factory functions.
typedef char | mu::MAP_TYPE_CANT_BE_UNSIGNED [sizeof(STATIC_ASSERTION_FAILURE< bytecode_type(-1)< 0 >)]
| This is a static typecheck.
## Enumerations
enum | mu::ECmdCode { mu::cmLE = 0, mu::cmGE = 1, mu::cmNEQ = 2, mu::cmEQ = 3, mu::cmLT = 4, mu::cmGT = 5, mu::cmADD = 6, mu::cmSUB = 7, mu::cmMUL = 8, mu::cmDIV = 9, mu::cmPOW = 10, mu::cmAND = 11, mu::cmOR = 12, mu::cmXOR = 13, mu::cmASSIGN = 14, mu::cmBO = 15, mu::cmBC = 16, mu::cmARG_SEP, mu::cmVAR, mu::cmVAL, mu::cmFUNC, mu::cmFUNC_STR, mu::cmSTRING, mu::cmOPRT_BIN, mu::cmOPRT_POSTFIX, mu::cmOPRT_INFIX, mu::cmEND, mu::cmUNKNOWN }
| Bytecode values. More...
enum | mu::ETypeCode { mu::tpSTR = 0, mu::tpDBL = 1, mu::tpVOID = 2 }
| Types internally used by the parser. More...
enum | mu::EPrec { mu::prLOGIC = 1, mu::prCMP = 2, mu::prADD_SUB = 3, mu::prMUL_DIV = 4, mu::prPOW = 5, mu::prINFIX = 4, mu::prPOSTFIX = 4 }
| Parser operator precedence values. More...
## Functions
std::ostream & | mu::console ()
| Encapsulate cout.
std::istream & | mu::console_in ()
| Encapsulate cin.

## Detailed Description

This file contains standard definitions used by the parser.

## Define Documentation

#define MUP_BASETYPE double

Define the base datatype for values.

This datatype must be a built in value type. You can not use custom classes. It has been tested with float, double and long double types, int should work as well.

#define MUP_BYTECODE_TYPE long

Definition of the basic bytecode datatype.

This defines the smalles entity used in the bytecode.