NCBI C++ ToolKit
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
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"
+ Include dependency graph for muParserDef.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Go to the SVN repository for this file.

Classes

struct  mu::STATIC_ASSERTION_FAILURE< true >
 

Namespaces

 mu
 Namespace for mathematical applications.
 

Macros

#define MUP_BASETYPE   double
 Define the base datatype for values. More...
 
#define MUP_BYTECODE_TYPE   long
 Definition of the basic bytecode datatype. More...
 
#define MUP_T
 
#define MUP_STRING_TYPE   std::string
 Definition of the basic parser string type. More...
 
#define MUP_USE_FACET(FACET, LOCALE)   std::use_facet< FACET >(LOCALE)
 
#define MUP_FAIL(MSG)
 Debug macro to force an abortion of the programm with a certain message. More...
 
#define MUP_ASSERT(COND)
 An assertion that does not kill the program. More...
 

Typedefs

typedef double mu::value_type
 The numeric datatype used by the parser. More...
 
typedef std::string mu::string_type
 The stringtype used by the parser. More...
 
typedef long mu::bytecode_type
 The bytecode type used by the parser. More...
 
typedef string_type::value_type mu::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 > > mu::stringstream_type
 Typedef for easily using stringstream that respect the parser stringtype. More...
 
typedef std::map< string_type, value_type * > mu::varmap_type
 Type used for storing variables. More...
 
typedef std::map< string_type, value_type > mu::valmap_type
 Type used for storing constants. More...
 
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. More...
 
typedef value_type(* mu::fun_type0) ()
 Callback type used for functions without arguments. More...
 
typedef value_type(* mu::fun_type1) (value_type)
 Callback type used for functions with a single arguments. More...
 
typedef value_type(* mu::fun_type2) (value_type, value_type)
 Callback type used for functions with two arguments. More...
 
typedef value_type(* mu::fun_type3) (value_type, value_type, value_type)
 Callback type used for functions with three arguments. More...
 
typedef value_type(* mu::fun_type4) (value_type, value_type, value_type, value_type)
 Callback type used for functions with four arguments. More...
 
typedef value_type(* mu::fun_type5) (value_type, value_type, value_type, value_type, value_type)
 Callback type used for functions with five arguments. More...
 
typedef value_type(* mu::multfun_type) (const value_type *, int)
 Callback type used for functions with a variable argument list. More...
 
typedef value_type(* mu::strfun_type1) (const char_type *)
 Callback type used for functions taking a string as an argument. More...
 
typedef value_type(* mu::strfun_type2) (const char_type *, value_type)
 Callback type used for functions taking a string and a value as arguments. More...
 
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. More...
 
typedef int(* mu::identfun_type) (const char_type *sExpr, int *nPos, value_type *fVal)
 Callback used for functions that identify values in a string. More...
 
typedef value_type *(* mu::facfun_type) (const char_type *, void *)
 Callback used for variable creation factory functions. More...
 
typedef char mu::MAP_TYPE_CANT_BE_UNSIGNED[sizeof(STATIC_ASSERTION_FAILURE< bytecode_type(-1)< 0 >)]
 This is a static typecheck. More...
 

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. More...
 
std::istream & mu::console_in ()
 Encapsulate cin. More...
 

Detailed Description

This file contains standard definitions used by the parser.

Definition in file muParserDef.h.

Macro Definition Documentation

◆ MUP_ASSERT

#define MUP_ASSERT (   COND)
Value:
if (!(COND)) \
{ \
stringstream_type ss; \
ss << "Assertion \""#COND"\" failed: " \
<< __FILE__ << " line " \
<< __LINE__ << "."; \
throw ParserError( ss.str() ); \
}

An assertion that does not kill the program.

This macro is neutralised in UNICODE builds. It's too difficult to translate.

Definition at line 88 of file muParserDef.h.

◆ MUP_BASETYPE

#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.

Definition at line 45 of file muParserDef.h.

◆ MUP_BYTECODE_TYPE

#define MUP_BYTECODE_TYPE   long

Definition of the basic bytecode datatype.

This defines the smalles entity used in the bytecode.

Definition at line 51 of file muParserDef.h.

◆ MUP_FAIL

#define MUP_FAIL (   MSG)
Value:
bool MSG=false; \
assert(MSG);

Debug macro to force an abortion of the programm with a certain message.

Definition at line 78 of file muParserDef.h.

◆ MUP_STRING_TYPE

#define MUP_STRING_TYPE   std::string

Definition of the basic parser string type.

Definition at line 66 of file muParserDef.h.

◆ MUP_T

#define MUP_T

Definition at line 62 of file muParserDef.h.

◆ MUP_USE_FACET

#define MUP_USE_FACET (   FACET,
  LOCALE 
)    std::use_facet< FACET >(LOCALE)

Definition at line 72 of file muParserDef.h.

Modified on Tue May 28 05:51:57 2024 by modify_doxy.py rev. 669887