| 
 
The following is a list of the features currently supported by the parser library. 
The primary objective is to keep it as extensible as possible whilst ensuring a maximum parsing speed. Extending the parser is mostly based on allowing a user to add custom callbacks which require only an absolute minimum of code. For instance you need exactly 2 lines of code to add a new function.
But extending the parser may not be necessary at all since it comes with a powerful default 
implementation. Here is the (incomplete) list of features:
 
  Easy to useExtremely fastUser-defined operators
    binary operatorspostfix operatorsinfix operators User-defined functions
    
      with a fixed number of up to five argumentswith variable number of argumentswith a single string argument (for database queries)User-defined constants.
  
    numeric constantsstring constantsUser-defined variables.
    
        unlimited in numberdefinable at parser runtime by the parserassigning variables in terms of other variables is possibleCustom value recognition callbacks
    
	support for binary and hex values.can be used to implement database queriesDefault implementaion with many featuresPortability
    
       GNU Makefile includedBCB Project files includedMSVC 7.1 Project files for managed and unmanaged codeISO 14882 compliant codeDLL version usable from every language able to use function exported in C-styleUnit support
    
      Use postfix operators as unit multipliers (3m -> 0.003) 
This section gives an overview on the default features supported by the parser. The default
implementation is defined in the class mu::Parserlocated in the file 
muParser.cpp. The DLL-version uses this class internally. 
The following table gives an overview of the functions supported by the
default implementation. It lists the function names, the number of 
arguments and a brief description.
 
 
  | Name | Argc. | Explanation |  | sin | 1 | sine function |  | cos | 1 | cosine function |  | tan | 1 | tangens function |  | asin | 1 | arcus sine function |  | acos | 1 | arcus cosine function |  | atan | 1 | arcus tangens function |  | sinh | 1 | hyperbolic sine function |  | cosh | 1 | hyperbolic cosine |  | tanh | 1 | hyperbolic tangens function |  | asinh | 1 | hyperbolic arcus sine function |  | acosh | 1 | hyperbolic arcus tangens function |  | atanh | 1 | hyperbolic arcur tangens function |  | log2 | 1 | logarithm to the base 2 |  | log10 | 1 | logarithm to the base 10 |  | log | 1 | logarithm to the base 10 |  | ln | 1 | logarithm to base e (2.71828...) |  | exp | 1 | e raised to the power of x |  | sqrt | 1 | square root of a value |  | sign | 1 | sign function -1 if x<0; 1 if x>0 |  | rint | 1 | round to nearest integer |  | abs | 1 | absolute value |  | if | 3 | if ... then ... else ... |  | min | var. | min of all arguments |  | max | var. | max of all arguments |  | sum | var. | sum of all arguments |  | avg | var. | mean value of all arguments |  
The following table lists the default binary operators supported by the parser.
 
*The assignment operator is special since it changes one of its
       arguments and can only by applied to variables.| Operator | Meaning | Priority |  | = | assignement* | -1 |  | and | logical and | 1 |  | or | logical or | 1 |  | xor | logical xor | 1 |  | <= | less or equal | 2 |  | >= | greater or equal | 2 |  | != | not equal | 2 |  | == | equal | 2 |  | > | greater than | 2 |  | < | less than | 2 |  | + | addition | 3 |  | - | subtraction | 3 |  | * | multiplication | 4 |  | / | division | 4 |  | ^ | raise x to the power of y | 5 |  
 
            
              | © 2005-2006 Ingo Berg | ^ TOP |  |