aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02460.html
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--docs/doxygen/nel/a02460.html2751
1 files changed, 2751 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02460.html b/docs/doxygen/nel/a02460.html
new file mode 100644
index 00000000..ef20499e
--- /dev/null
+++ b/docs/doxygen/nel/a02460.html
@@ -0,0 +1,2751 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: NLMISC::CEvalNumExpr class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLMISC::CEvalNumExpr Class Reference</h1><code>#include &lt;<a class="el" href="a05679.html">eval_num_expr.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLMISC::CEvalNumExpr:
+<p><center><img src="a02460.png" usemap="#NLMISC::CEvalNumExpr_map" border="0" alt=""></center>
+<map name="NLMISC::CEvalNumExpr_map">
+<area href="a02979.html" alt="NLGEORGES::CMyEvalNumExpr" shape="rect" coords="0,56,197,80">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class preforms numerical expression parsing.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00037">37</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a> { <br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>,
+<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw15">UnkownValue</a>,
+<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw16">ValueError</a>,
+<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw13">UnkownFunction</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw1">FunctionError</a>,
+<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw10">NumberSyntaxError</a>,
+<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw14">UnkownOperator</a>,
+<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw7">MustBeOpen</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw2">MustBeClose</a>,
+<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw3">MustBeComa</a>,
+<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw6">MustBeExpression</a>,
+<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw9">NotUnaryOperator</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw5">MustBeEnd</a>,
+<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw4">MustBeDoubleQuote</a>,
+<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw0">DividByZero</a>,
+<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw11">ReturnValueCount</a>
+<br>
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Eval return error. <a href="#NLGEORGES_1_1CMyEvalNumExprw12">More...</a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExpra1">evalExpression</a> (const char *expression, double &amp;result, int *errorIndex, <a class="el" href="a04558.html#a11">uint32</a> userData=0)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExpra3">getErrorString</a> (<a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a> state) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get error string. <a href="#NLGEORGES_1_1CMyEvalNumExpra3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExpra4">internalCheck</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpra3">~CEvalNumExpr</a> ()</td></tr>
+
+<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprb0">evalFunction</a> (const char *funcName, double arg0, double <a class="el" href="a04223.html#a644">arg1</a>, double &amp;result)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprb1">evalFunction</a> (const char *funcName, double arg0, double &amp;result)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprb2">evalValue</a> (const char *<a class="el" href="a04223.html#a658">value</a>, double &amp;result, <a class="el" href="a04558.html#a11">uint32</a> userData)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Overridable functions. <a href="#NLMISC_1_1CEvalNumExprb2"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom>{ <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry25">InternalStringLen</a> = 32,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a> = 4
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62">TOperator</a> { <br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry36">Not</a> = 0,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry61">Tilde</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry35">Mul</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry12">Div</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry47">Remainder</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry44">Plus</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry34">Minus</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry65">ULeftShift</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry66">URightShift</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry52">SLeftShift</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry55">SRightShift</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry21">Inferior</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry22">InferiorEqual</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry57">Superior</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry58">SuperiorEqual</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry14">Equal</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry37">NotEqual</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry3">And</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry43">Or</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry67">Xor</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry28">LogicalAnd</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry29">LogicalOr</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry30">LogicalXor</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry42">OperatorCount</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry38">NotOperator</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry17">ExtOperator</a>
+<br>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63">TReservedWord</a> { <br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry1">Abs</a> = 0,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry2">Acos</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry4">Asin</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry5">Atan</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry6">Atan2</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry7">Ceil</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry10">Cos</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry11">Cosh</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry15">Exp</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry16">Exponent</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry18">Floor</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry23">Int</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry26">Log</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry27">Log10</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry31">Mantissa</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry32">Max</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry33">Min</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry45">Pow</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry46">Rand</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry49">Round</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry50">Sin</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry51">Sinh</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry53">Sq</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry54">Sqrt</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry59">Tan</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry60">Tanh</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry48">ReservedWordCount</a>
+<br>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64">TToken</a> { <br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry39">Number</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry19">Function1</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry20">Function2</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry56">String</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry41">Operator</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry40">Open</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry8">Close</a>,
+<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry9">Coma</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry13">End</a>
+<br>
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implementation Expression tokens. <a href="#NLMISC_1_1CEvalNumExpry64">More...</a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprd0">evalExpression</a> (double &amp;result, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64">TToken</a> &amp;nextToken, <a class="el" href="a04558.html#a11">uint32</a> userData)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluate an expression. <a href="#NLMISC_1_1CEvalNumExprd0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprd1">getNextToken</a> (<a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64">TToken</a> &amp;token)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal functions Get the next token. <a href="#NLMISC_1_1CEvalNumExprd1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprd2">readDecimal</a> (double &amp;<a class="el" href="a04223.html#a658">value</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read a decimal double. <a href="#NLMISC_1_1CEvalNumExprd2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprd3">readIntegerNumberDecimal</a> (double &amp;<a class="el" href="a04223.html#a658">value</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read an integer. <a href="#NLMISC_1_1CEvalNumExprd3"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr0">_ExprPtr</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr1">_InternalStlString</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr2">_InternalString</a> [InternalStringLen]</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Current string. <a href="#NLMISC_1_1CEvalNumExprr2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr3">_InternalStringPtr</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62">TOperator</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Current operator. <a href="#NLMISC_1_1CEvalNumExprr4"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63">TReservedWord</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr5">_ReservedWordFound</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reserved word. <a href="#NLMISC_1_1CEvalNumExprr5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr6">_State</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Members. <a href="#NLMISC_1_1CEvalNumExprr6"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>double&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr7">_Value</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Current value. <a href="#NLMISC_1_1CEvalNumExprr7"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprv0">_ErrorString</a> [ReturnValueCount]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62">TOperator</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprv1">_OperatorArray</a> [128]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprv2">_OperatorPrecedence</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprv3">_ReservedWord</a> [ReservedWordCount]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64">TToken</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprv4">_ReservedWordToken</a> [ReservedWordCount]</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Static values Char to operator array. <a href="#NLMISC_1_1CEvalNumExprv4"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprv5">_StringChar</a> [128]</td></tr>
+
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CEvalNumExpry0" doxytag="NLMISC::CEvalNumExpr::@70" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> anonymous enum<code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry25" doxytag="InternalStringLen" ></a>InternalStringLen</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24" doxytag="InternalOperator" ></a>InternalOperator</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00289">289</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>.
+<p>
+<div class="fragment"><pre>00290 {
+00291 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry25">InternalStringLen</a> = 32,
+00292 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a> = 4,
+00293 };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExpry62" doxytag="NLMISC::CEvalNumExpr::TOperator" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62">NLMISC::CEvalNumExpr::TOperator</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry36" doxytag="Not" ></a>Not</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry61" doxytag="Tilde" ></a>Tilde</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry35" doxytag="Mul" ></a>Mul</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry12" doxytag="Div" ></a>Div</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry47" doxytag="Remainder" ></a>Remainder</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry44" doxytag="Plus" ></a>Plus</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry34" doxytag="Minus" ></a>Minus</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry65" doxytag="ULeftShift" ></a>ULeftShift</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry66" doxytag="URightShift" ></a>URightShift</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry52" doxytag="SLeftShift" ></a>SLeftShift</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry55" doxytag="SRightShift" ></a>SRightShift</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry21" doxytag="Inferior" ></a>Inferior</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry22" doxytag="InferiorEqual" ></a>InferiorEqual</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry57" doxytag="Superior" ></a>Superior</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry58" doxytag="SuperiorEqual" ></a>SuperiorEqual</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry14" doxytag="Equal" ></a>Equal</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry37" doxytag="NotEqual" ></a>NotEqual</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry3" doxytag="And" ></a>And</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry43" doxytag="Or" ></a>Or</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry67" doxytag="Xor" ></a>Xor</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry28" doxytag="LogicalAnd" ></a>LogicalAnd</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry29" doxytag="LogicalOr" ></a>LogicalOr</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry30" doxytag="LogicalXor" ></a>LogicalXor</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry42" doxytag="OperatorCount" ></a>OperatorCount</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry38" doxytag="NotOperator" ></a>NotOperator</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry17" doxytag="ExtOperator" ></a>ExtOperator</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00226">226</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>.
+<p>
+<div class="fragment"><pre>00227 {
+00228 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry36">Not</a> = 0, <span class="comment">// !</span>
+00229 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry61">Tilde</a>, <span class="comment">// ~</span>
+00230 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry35">Mul</a>, <span class="comment">// *</span>
+00231 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry12">Div</a>, <span class="comment">// /</span>
+00232 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry47">Remainder</a>, <span class="comment">// %</span>
+00233 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry44">Plus</a>, <span class="comment">// +</span>
+00234 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry34">Minus</a>, <span class="comment">// -</span>
+00235 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry65">ULeftShift</a>, <span class="comment">// &lt;&lt;</span>
+00236 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry66">URightShift</a>, <span class="comment">// &gt;&gt;</span>
+00237 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry52">SLeftShift</a>, <span class="comment">// &lt;-</span>
+00238 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry55">SRightShift</a>, <span class="comment">// -&gt;</span>
+00239 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry21">Inferior</a>, <span class="comment">// &lt;</span>
+00240 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry22">InferiorEqual</a>, <span class="comment">// &lt;=</span>
+00241 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry57">Superior</a>, <span class="comment">// &gt;</span>
+00242 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry58">SuperiorEqual</a>, <span class="comment">// &gt;=</span>
+00243 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry14">Equal</a>, <span class="comment">// ==</span>
+00244 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry37">NotEqual</a>, <span class="comment">// !=</span>
+00245 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry3">And</a>, <span class="comment">// &amp;</span>
+00246 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry43">Or</a>, <span class="comment">// |</span>
+00247 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry67">Xor</a>, <span class="comment">// ^</span>
+00248 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry28">LogicalAnd</a>, <span class="comment">// &amp;&amp;</span>
+00249 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry29">LogicalOr</a>, <span class="comment">// ||</span>
+00250 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry30">LogicalXor</a>, <span class="comment">// ^^</span>
+00251 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry42">OperatorCount</a>, <span class="comment">// </span>
+00252 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry38">NotOperator</a>, <span class="comment">// This is not an operator</span>
+00253 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry17">ExtOperator</a>, <span class="comment">// This is a 2 charcters operator</span>
+00254 };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExpry63" doxytag="NLMISC::CEvalNumExpr::TReservedWord" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63">NLMISC::CEvalNumExpr::TReservedWord</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry1" doxytag="Abs" ></a>Abs</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry2" doxytag="Acos" ></a>Acos</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry4" doxytag="Asin" ></a>Asin</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry5" doxytag="Atan" ></a>Atan</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry6" doxytag="Atan2" ></a>Atan2</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry7" doxytag="Ceil" ></a>Ceil</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry10" doxytag="Cos" ></a>Cos</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry11" doxytag="Cosh" ></a>Cosh</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry15" doxytag="Exp" ></a>Exp</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry16" doxytag="Exponent" ></a>Exponent</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry18" doxytag="Floor" ></a>Floor</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry23" doxytag="Int" ></a>Int</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry26" doxytag="Log" ></a>Log</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry27" doxytag="Log10" ></a>Log10</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry31" doxytag="Mantissa" ></a>Mantissa</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry32" doxytag="Max" ></a>Max</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry33" doxytag="Min" ></a>Min</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry45" doxytag="Pow" ></a>Pow</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry46" doxytag="Rand" ></a>Rand</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry49" doxytag="Round" ></a>Round</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry50" doxytag="Sin" ></a>Sin</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry51" doxytag="Sinh" ></a>Sinh</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry53" doxytag="Sq" ></a>Sq</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry54" doxytag="Sqrt" ></a>Sqrt</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry59" doxytag="Tan" ></a>Tan</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry60" doxytag="Tanh" ></a>Tanh</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry48" doxytag="ReservedWordCount" ></a>ReservedWordCount</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00257">257</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00616">evalExpression()</a>, and <a class="el" href="a05678.html#l00096">getNextToken()</a>.
+<p>
+<div class="fragment"><pre>00258 {
+00259 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry1">Abs</a> = 0,
+00260 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry2">Acos</a>,
+00261 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry4">Asin</a>,
+00262 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry5">Atan</a>,
+00263 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry6">Atan2</a>,
+00264 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry7">Ceil</a>,
+00265 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry10">Cos</a>,
+00266 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry11">Cosh</a>,
+00267 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry15">Exp</a>,
+00268 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry16">Exponent</a>,
+00269 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry18">Floor</a>,
+00270 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry23">Int</a>,
+00271 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry26">Log</a>,
+00272 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry27">Log10</a>,
+00273 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry31">Mantissa</a>,
+00274 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry32">Max</a>,
+00275 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry33">Min</a>,
+00276 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry45">Pow</a>,
+00277 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry46">Rand</a>,
+00278 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry49">Round</a>,
+00279 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry50">Sin</a>,
+00280 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry51">Sinh</a>,
+00281 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry53">Sq</a>,
+00282 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry54">Sqrt</a>,
+00283 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry59">Tan</a>,
+00284 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry60">Tanh</a>,
+00285 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry48">ReservedWordCount</a>,
+00286 };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12" doxytag="NLMISC::CEvalNumExpr::TReturnState" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">NLMISC::CEvalNumExpr::TReturnState</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Eval return error.
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8" doxytag="NoError" ></a>NoError</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw15" doxytag="UnkownValue" ></a>UnkownValue</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw16" doxytag="ValueError" ></a>ValueError</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw13" doxytag="UnkownFunction" ></a>UnkownFunction</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw1" doxytag="FunctionError" ></a>FunctionError</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw10" doxytag="NumberSyntaxError" ></a>NumberSyntaxError</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw14" doxytag="UnkownOperator" ></a>UnkownOperator</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw7" doxytag="MustBeOpen" ></a>MustBeOpen</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw2" doxytag="MustBeClose" ></a>MustBeClose</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw3" doxytag="MustBeComa" ></a>MustBeComa</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw6" doxytag="MustBeExpression" ></a>MustBeExpression</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw9" doxytag="NotUnaryOperator" ></a>NotUnaryOperator</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw5" doxytag="MustBeEnd" ></a>MustBeEnd</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw4" doxytag="MustBeDoubleQuote" ></a>MustBeDoubleQuote</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw0" doxytag="DividByZero" ></a>DividByZero</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw11" doxytag="ReturnValueCount" ></a>ReturnValueCount</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00042">42</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00586">evalExpression()</a>, and <a class="el" href="a05678.html#l00096">getNextToken()</a>.
+<p>
+<div class="fragment"><pre>00043 {
+00044 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>, <span class="comment">// No error</span>
+00045 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw15">UnkownValue</a>, <span class="comment">// Unkown value has been parsed</span>
+00046 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw16">ValueError</a>, <span class="comment">// Error during user defined value evaluation</span>
+00047 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw13">UnkownFunction</a>, <span class="comment">// Unkown function has been parsed</span>
+00048 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw1">FunctionError</a>, <span class="comment">// Error during user defined function evaluation</span>
+00049 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw10">NumberSyntaxError</a>, <span class="comment">// Syntax error in a number expression</span>
+00050 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw14">UnkownOperator</a>, <span class="comment">// Unkown operator</span>
+00051 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw7">MustBeOpen</a>, <span class="comment">// Should be a open parentesis</span>
+00052 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw2">MustBeClose</a>, <span class="comment">// Should be a close parentesis</span>
+00053 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw3">MustBeComa</a>, <span class="comment">// Should be a coma character</span>
+00054 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw6">MustBeExpression</a>, <span class="comment">// Should be an expression</span>
+00055 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw9">NotUnaryOperator</a>, <span class="comment">// Should not be an unary operator</span>
+00056 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw5">MustBeEnd</a>, <span class="comment">// Should be the end</span>
+00057 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw4">MustBeDoubleQuote</a>, <span class="comment">// Should be a double quote</span>
+00058 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw0">DividByZero</a>, <span class="comment">// Divide by zero</span>
+00059 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw11">ReturnValueCount</a>
+00060 };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExpry64" doxytag="NLMISC::CEvalNumExpr::TToken" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64">NLMISC::CEvalNumExpr::TToken</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Implementation Expression tokens.
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry39" doxytag="Number" ></a>Number</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry19" doxytag="Function1" ></a>Function1</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry20" doxytag="Function2" ></a>Function2</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry56" doxytag="String" ></a>String</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry41" doxytag="Operator" ></a>Operator</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry40" doxytag="Open" ></a>Open</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry8" doxytag="Close" ></a>Close</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry9" doxytag="Coma" ></a>Coma</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry13" doxytag="End" ></a>End</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00212">212</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>.
+<p>
+<div class="fragment"><pre>00213 {
+00214 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry39">Number</a>, <span class="comment">// This is a number</span>
+00215 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry19">Function1</a>, <span class="comment">// This is a function with one argu</span>
+00216 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry20">Function2</a>, <span class="comment">// This is a function with two argu</span>
+00217 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry56">String</a>, <span class="comment">// This is a user string</span>
+00218 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry41">Operator</a>, <span class="comment">// This is an operator</span>
+00219 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry40">Open</a>, <span class="comment">// (</span>
+00220 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry8">Close</a>, <span class="comment">// )</span>
+00221 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry9">Coma</a>, <span class="comment">// ,</span>
+00222 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry13">End</a>, <span class="comment">// End of string</span>
+00223 };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CEvalNumExpra3" doxytag="NLMISC::CEvalNumExpr::~CEvalNumExpr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual NLMISC::CEvalNumExpr::~<a class="el" href="a02460.html">CEvalNumExpr</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00040">40</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>.
+<p>
+<div class="fragment"><pre>00040 {}
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprd0" doxytag="NLMISC::CEvalNumExpr::evalExpression" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">CEvalNumExpr::TReturnState</a> NLMISC::CEvalNumExpr::evalExpression </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">double &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64">TToken</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>nextToken</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>userData</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Evaluate an expression.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05678.html#l00616">616</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+References <a class="el" href="a05679.html#l00319">_InternalStringPtr</a>, <a class="el" href="a05678.html#l01296">_OperatorPrecedence</a>, <a class="el" href="a05679.html#l00314">_ReservedWordFound</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry1">Abs</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry2">Acos</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry3">And</a>, <a class="el" href="a05646.html#l01119">arg1</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry4">Asin</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry5">Atan</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry6">Atan2</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry7">Ceil</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry8">Close</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry9">Coma</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry10">Cos</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry11">Cosh</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry12">Div</a>, <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw0">DividByZero</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry14">Equal</a>, <a class="el" href="a05678.html#l00586">evalExpression()</a>, <a class="el" href="a05678.html#l01190">evalFunction()</a>, <a class="el" href="a05678.html#l01183">evalValue()</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry16">Exponent</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry18">Floor</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry19">Function1</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry20">Function2</a>, <a class="el" href="a05678.html#l00096">getNextToken()</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry21">Inferior</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry22">InferiorEqual</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry25">InternalStringLen</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry27">Log10</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry28">LogicalAnd</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry29">LogicalOr</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry30">LogicalXor</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry31">Mantissa</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry34">Minus</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry35">Mul</a>, <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw2">MustBeClose</a>, <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw3">MustBeComa</a>, <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw6">MustBeExpression</a>, <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw7">MustBeOpen</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry36">Not</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry37">NotEqual</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry38">NotOperator</a>, <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw9">NotUnaryOperator</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry39">Number</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry40">Open</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry43">Or</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry44">Plus</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry45">Pow</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry46">Rand</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry50">Sin</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry51">Sinh</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry52">SLeftShift</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry53">Sq</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry54">Sqrt</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry55">SRightShift</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry57">Superior</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry58">SuperiorEqual</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry59">Tan</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry60">Tanh</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry61">Tilde</a>, <a class="el" href="a05679.html#l00257">TReservedWord</a>, <a class="el" href="a05679.html#l00042">TReturnState</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry65">ULeftShift</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry66">URightShift</a>, <a class="el" href="a05646.html#l01132">value</a>, and <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry67">Xor</a>.
+<p>
+<div class="fragment"><pre>00617 {
+00618 <span class="comment">// Array of result</span>
+00619
+00620 <a class="code" href="a04558.html#a15">uint</a> exprCount = 0;
+00621 <span class="keywordtype">double</span> result[<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>];
+00622 vector&lt;double&gt; resultSup;
+00623
+00624 <a class="code" href="a04558.html#a15">uint</a> opCount = 0;
+00625 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62">TOperator</a> resultOp[<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>];
+00626 vector&lt;TOperator&gt; resultOpSup;
+00627
+00628 <span class="comment">// Read a token</span>
+00629 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a> error = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd1">getNextToken</a> (nextToken);
+00630 <span class="keywordflow">if</span> (error != <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00631 <span class="keywordflow">return</span> error;
+00632 <span class="keywordflow">while</span> (1)
+00633 {
+00634 <span class="comment">// Unary opertor</span>
+00635 <a class="code" href="a04558.html#a15">uint</a> unaryOpCount = 0;
+00636 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62">TOperator</a> resultUnaryOp[<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>];
+00637 vector&lt;TOperator&gt; resultUnaryOpSup;
+00638
+00639 <span class="comment">// Current value</span>
+00640 <span class="keywordtype">double</span> <a class="code" href="a04223.html#a658">value</a>;
+00641
+00642 <span class="comment">// Unary operator ?</span>
+00643 <span class="keywordflow">if</span> ( (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry41">Operator</a>) &amp;&amp; ( (<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry34">Minus</a>) || (<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry36">Not</a>) || (<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry61">Tilde</a>) ) )
+00644 {
+00645 <span class="comment">// Push the unary operator</span>
+00646 <span class="keywordflow">if</span> (unaryOpCount&lt;<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)
+00647 resultUnaryOp[unaryOpCount] = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a>;
+00648 <span class="keywordflow">else</span>
+00649 resultUnaryOpSup.push_back (_Op);
+00650 unaryOpCount++;
+00651
+00652 <span class="comment">// Read next token</span>
+00653 error = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd1">getNextToken</a> (nextToken);
+00654 <span class="keywordflow">if</span> (error != <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00655 <span class="keywordflow">return</span> error;
+00656 }
+00657
+00658 <span class="comment">// Parenthesis ?</span>
+00659 <span class="keywordflow">if</span> (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry40">Open</a>)
+00660 {
+00661 <span class="comment">// Eval sub expression</span>
+00662 error = <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExpra1">evalExpression</a> (value, nextToken, userData);
+00663 <span class="keywordflow">if</span> (error == <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00664 {
+00665 <span class="keywordflow">if</span> (nextToken != <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry8">Close</a>)
+00666 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw2">MustBeClose</a>;
+00667 }
+00668 <span class="keywordflow">else</span>
+00669 <span class="keywordflow">return</span> error;
+00670
+00671 <span class="comment">// Get next token</span>
+00672 error = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd1">getNextToken</a> (nextToken);
+00673 <span class="keywordflow">if</span> (error != <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00674 <span class="keywordflow">return</span> error;
+00675 }
+00676 <span class="comment">// This is a function ?</span>
+00677 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry19">Function1</a>) || (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry20">Function2</a>) )
+00678 {
+00679 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64">TToken</a> backupedToken = nextToken;
+00680
+00681 <span class="comment">// Get the function</span>
+00682 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63">TReservedWord</a> reservedWord = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr5">_ReservedWordFound</a>;
+00683
+00684 <span class="comment">// Read a token</span>
+00685 error = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd1">getNextToken</a> (nextToken);
+00686 <span class="keywordflow">if</span> (error == <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00687 {
+00688 <span class="comment">// Open ?</span>
+00689 <span class="keywordflow">if</span> (nextToken != <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry40">Open</a>)
+00690 {
+00691 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw7">MustBeOpen</a>;
+00692 }
+00693
+00694 <span class="comment">// Eval an expression</span>
+00695 <span class="keywordtype">double</span> arg0;
+00696 error = <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExpra1">evalExpression</a> (arg0, nextToken, userData);
+00697 <span class="keywordflow">if</span> (error == <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00698 {
+00699 <span class="comment">// 2 arg ?</span>
+00700 <span class="keywordflow">if</span> (backupedToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry20">Function2</a>)
+00701 {
+00702 <span class="keywordflow">if</span> (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry9">Coma</a>)
+00703 {
+00704 <span class="comment">// Second argument</span>
+00705 <span class="keywordtype">double</span> <a class="code" href="a04223.html#a644">arg1</a>;
+00706 error = <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExpra1">evalExpression</a> (arg1, nextToken, userData);
+00707 <span class="keywordflow">if</span> (error == <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00708 {
+00709 <span class="comment">// Final with close ?</span>
+00710 <span class="keywordflow">if</span> (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry8">Close</a>)
+00711 {
+00712 <span class="keywordflow">switch</span> (reservedWord)
+00713 {
+00714 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry6">Atan2</a>:
+00715 <a class="code" href="a04223.html#a658">value</a> = atan2 (arg0, arg1);
+00716 <span class="keywordflow">break</span>;
+00717 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry32">Max</a>:
+00718 <a class="code" href="a04223.html#a658">value</a> = (arg0&gt;<a class="code" href="a04223.html#a644">arg1</a>) ? arg0 : <a class="code" href="a04223.html#a644">arg1</a>;
+00719 <span class="keywordflow">break</span>;
+00720 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry33">Min</a>:
+00721 <a class="code" href="a04223.html#a658">value</a> = (arg0&lt;<a class="code" href="a04223.html#a644">arg1</a>) ? arg0 : <a class="code" href="a04223.html#a644">arg1</a>;
+00722 <span class="keywordflow">break</span>;
+00723 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry45">Pow</a>:
+00724 <a class="code" href="a04223.html#a658">value</a> = pow (arg0, arg1);
+00725 <span class="keywordflow">break</span>;
+00726 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry46">Rand</a>:
+00727 <a class="code" href="a04223.html#a658">value</a> = arg0 + (<a class="code" href="a04223.html#a644">arg1</a>-arg0) * (<span class="keywordtype">double</span>)rand () / (<span class="keywordtype">double</span>)(RAND_MAX+1);
+00728 <span class="keywordflow">break</span>;
+00729 <span class="keywordflow">default</span>:
+00730 <span class="comment">// Can't be hear after getToken</span>
+00731 <a class="code" href="a04199.html#a12">nlstop</a>;
+00732 }
+00733 }
+00734 <span class="keywordflow">else</span>
+00735 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw2">MustBeClose</a>;
+00736 }
+00737 <span class="keywordflow">else</span>
+00738 <span class="keywordflow">return</span> error;
+00739 }
+00740 <span class="keywordflow">else</span>
+00741 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw3">MustBeComa</a>;
+00742 }
+00743 <span class="keywordflow">else</span>
+00744 {
+00745 <span class="keywordflow">if</span> (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry8">Close</a>)
+00746 {
+00747 <span class="comment">// Eval the function</span>
+00748 <span class="keywordflow">switch</span> (reservedWord)
+00749 {
+00750 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry1">Abs</a>:
+00751 <a class="code" href="a04223.html#a658">value</a> = fabs (arg0);
+00752 <span class="keywordflow">break</span>;
+00753 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry2">Acos</a>:
+00754 <a class="code" href="a04223.html#a658">value</a> = acos (arg0);
+00755 <span class="keywordflow">break</span>;
+00756 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry4">Asin</a>:
+00757 <a class="code" href="a04223.html#a658">value</a> = asin (arg0);
+00758 <span class="keywordflow">break</span>;
+00759 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry5">Atan</a>:
+00760 <a class="code" href="a04223.html#a658">value</a> = atan (arg0);
+00761 <span class="keywordflow">break</span>;
+00762 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry7">Ceil</a>:
+00763 <a class="code" href="a04223.html#a658">value</a> = ceil (arg0);
+00764 <span class="keywordflow">break</span>;
+00765 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry11">Cosh</a>:
+00766 <a class="code" href="a04223.html#a658">value</a> = cosh (arg0);
+00767 <span class="keywordflow">break</span>;
+00768 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry10">Cos</a>:
+00769 <a class="code" href="a04223.html#a658">value</a> = cos (arg0);
+00770 <span class="keywordflow">break</span>;
+00771 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry16">Exponent</a>:
+00772 {
+00773 <span class="keywordtype">int</span> exponent;
+00774 frexp( arg0, &amp;exponent);
+00775 <a class="code" href="a04223.html#a658">value</a> = (<span class="keywordtype">double</span>)exponent;
+00776 }
+00777 <span class="keywordflow">break</span>;
+00778 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry15">Exp</a>:
+00779 <a class="code" href="a04223.html#a658">value</a> = exp (arg0);
+00780 <span class="keywordflow">break</span>;
+00781 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry18">Floor</a>:
+00782 <a class="code" href="a04223.html#a658">value</a> = floor (arg0);
+00783 <span class="keywordflow">break</span>;
+00784 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry23">Int</a>:
+00785 <a class="code" href="a04223.html#a658">value</a> = (<span class="keywordtype">double</span>)(<span class="keywordtype">int</span>)(arg0);
+00786 <span class="keywordflow">break</span>;
+00787 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry27">Log10</a>:
+00788 <a class="code" href="a04223.html#a658">value</a> = log10 (arg0);
+00789 <span class="keywordflow">break</span>;
+00790 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry26">Log</a>:
+00791 <a class="code" href="a04223.html#a658">value</a> = log (arg0);
+00792 <span class="keywordflow">break</span>;
+00793 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry31">Mantissa</a>:
+00794 {
+00795 <span class="keywordtype">int</span> exponent;
+00796 <a class="code" href="a04223.html#a658">value</a> = frexp( arg0, &amp;exponent);
+00797 }
+00798 <span class="keywordflow">break</span>;
+00799 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry49">Round</a>:
+00800 <a class="code" href="a04223.html#a658">value</a> = floor (arg0 + 0.5);
+00801 <span class="keywordflow">break</span>;
+00802 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry51">Sinh</a>:
+00803 <a class="code" href="a04223.html#a658">value</a> = sinh (arg0);
+00804 <span class="keywordflow">break</span>;
+00805 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry50">Sin</a>:
+00806 <a class="code" href="a04223.html#a658">value</a> = sin (arg0);
+00807 <span class="keywordflow">break</span>;
+00808 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry54">Sqrt</a>:
+00809 <a class="code" href="a04223.html#a658">value</a> = sqrt (arg0);
+00810 <span class="keywordflow">break</span>;
+00811 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry53">Sq</a>:
+00812 <a class="code" href="a04223.html#a658">value</a> = arg0 * arg0;
+00813 <span class="keywordflow">break</span>;
+00814 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry60">Tanh</a>:
+00815 <a class="code" href="a04223.html#a658">value</a> = tanh (arg0);
+00816 <span class="keywordflow">break</span>;
+00817 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry59">Tan</a>:
+00818 <a class="code" href="a04223.html#a658">value</a> = tan (arg0);
+00819 <span class="keywordflow">break</span>;
+00820 <span class="keywordflow">default</span>:
+00821 <span class="comment">// Can't be hear after getToken</span>
+00822 <a class="code" href="a04199.html#a12">nlstop</a>;
+00823 }
+00824 }
+00825 <span class="keywordflow">else</span>
+00826 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw2">MustBeClose</a>;
+00827 }
+00828 }
+00829 <span class="keywordflow">else</span>
+00830 <span class="keywordflow">return</span> error;
+00831 }
+00832 <span class="keywordflow">else</span>
+00833 <span class="keywordflow">return</span> error;
+00834
+00835 <span class="comment">// Get next token</span>
+00836 error = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd1">getNextToken</a> (nextToken);
+00837 <span class="keywordflow">if</span> (error != <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00838 <span class="keywordflow">return</span> error;
+00839 }
+00840 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry39">Number</a>)
+00841 {
+00842 <span class="comment">// Save the internal value</span>
+00843 <a class="code" href="a04223.html#a658">value</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr7">_Value</a>;
+00844
+00845 <span class="comment">// Get next token</span>
+00846 error = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd1">getNextToken</a> (nextToken);
+00847 <span class="keywordflow">if</span> (error != <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00848 <span class="keywordflow">return</span> error;
+00849 }
+00850 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry56">String</a>)
+00851 {
+00852 <span class="comment">// Copy the string</span>
+00853 <span class="keywordtype">char</span> internalString[<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry25">InternalStringLen</a>];
+00854 std::string internalStlString;
+00855 <span class="keyword">const</span> <span class="keywordtype">char</span> *internalStringPtr;
+00856 <span class="keywordflow">if</span> (strlen (_InternalStringPtr) &gt;= <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry25">InternalStringLen</a>-1)
+00857 {
+00858 internalStlString = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr3">_InternalStringPtr</a>;
+00859 internalStringPtr = internalStlString.c_str ();
+00860 }
+00861 <span class="keywordflow">else</span>
+00862 {
+00863 strcpy (internalString ,_InternalStringPtr);
+00864 internalStringPtr = internalString;
+00865 }
+00866
+00867 <span class="comment">// Read a token</span>
+00868 error = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd1">getNextToken</a> (nextToken);
+00869 <span class="keywordflow">if</span> (error == <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00870 {
+00871 <span class="comment">// Open ?</span>
+00872 <span class="keywordflow">if</span> (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry40">Open</a>)
+00873 {
+00874 <span class="comment">// Eval an expression</span>
+00875 <span class="keywordtype">double</span> arg0;
+00876 error = <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExpra1">evalExpression</a> (arg0, nextToken, userData);
+00877 <span class="keywordflow">if</span> (error == <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00878 {
+00879 <span class="keywordflow">if</span> (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry9">Coma</a>)
+00880 {
+00881 <span class="comment">// Second argument</span>
+00882 <span class="keywordtype">double</span> <a class="code" href="a04223.html#a644">arg1</a>;
+00883 error = <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExpra1">evalExpression</a> (arg1, nextToken, userData);
+00884 <span class="keywordflow">if</span> (error == <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00885 {
+00886 <span class="comment">// Final with close ?</span>
+00887 <span class="keywordflow">if</span> (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry8">Close</a>)
+00888 {
+00889 <span class="comment">// Eval the function</span>
+00890 error = <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprb1">evalFunction</a> (internalStringPtr, arg0, arg1, value);
+00891 <span class="keywordflow">if</span> (error != <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00892 <span class="keywordflow">return</span> error;
+00893
+00894 <span class="comment">// Get next token</span>
+00895 error = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd1">getNextToken</a> (nextToken);
+00896 <span class="keywordflow">if</span> (error != <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00897 <span class="keywordflow">return</span> error;
+00898 }
+00899 <span class="keywordflow">else</span>
+00900 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw2">MustBeClose</a>;
+00901 }
+00902 <span class="keywordflow">else</span>
+00903 <span class="keywordflow">return</span> error;
+00904 }
+00905 <span class="keywordflow">else</span>
+00906 {
+00907 <span class="keywordflow">if</span> (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry8">Close</a>)
+00908 {
+00909 <span class="comment">// Eval the function</span>
+00910 error = <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprb1">evalFunction</a> (internalStringPtr, arg0, value);
+00911 <span class="keywordflow">if</span> (error != <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00912 <span class="keywordflow">return</span> error;
+00913
+00914 <span class="comment">// Get next token</span>
+00915 error = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd1">getNextToken</a> (nextToken);
+00916 <span class="keywordflow">if</span> (error != <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00917 <span class="keywordflow">return</span> error;
+00918 }
+00919 <span class="keywordflow">else</span>
+00920 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw2">MustBeClose</a>;
+00921 }
+00922 }
+00923 <span class="keywordflow">else</span>
+00924 <span class="keywordflow">return</span> error;
+00925 }
+00926 <span class="keywordflow">else</span>
+00927 {
+00928 <span class="comment">// This is a user value</span>
+00929 error = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprb2">evalValue</a> (internalStringPtr, value, userData);
+00930 <span class="keywordflow">if</span> (error != <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00931 <span class="keywordflow">return</span> error;
+00932 }
+00933 }
+00934 <span class="keywordflow">else</span>
+00935 <span class="keywordflow">return</span> error;
+00936 }
+00937 <span class="keywordflow">else</span>
+00938 {
+00939 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw6">MustBeExpression</a>;
+00940 }
+00941
+00942 <span class="comment">// Eval unary operator</span>
+00943 <a class="code" href="a04558.html#a14">sint</a> i;
+00944 <span class="keywordflow">for</span> (i=unaryOpCount-1; i&gt;=0; i--)
+00945 {
+00946 <span class="keywordflow">switch</span> ((i&lt;<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)?resultUnaryOp[i]:resultUnaryOpSup[i-<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>])
+00947 {
+00948 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry36">Not</a>:
+00949 <a class="code" href="a04223.html#a658">value</a> = (<span class="keywordtype">double</span>)(<a class="code" href="a04558.html#a15">uint</a>)((floor (value+0.5)==0.0));
+00950 <span class="keywordflow">break</span>;
+00951 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry61">Tilde</a>:
+00952 <a class="code" href="a04223.html#a658">value</a> = (<span class="keywordtype">double</span>)~((<a class="code" href="a04558.html#a15">uint</a>)floor (value+0.5));
+00953 <span class="keywordflow">break</span>;
+00954 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry34">Minus</a>:
+00955 <a class="code" href="a04223.html#a658">value</a> = -<a class="code" href="a04223.html#a658">value</a>;
+00956 <span class="keywordflow">break</span>;
+00957 <span class="keywordflow">default</span>:
+00958 <span class="comment">// Can't be hear after getToken</span>
+00959 <a class="code" href="a04199.html#a12">nlstop</a>;
+00960 }
+00961 }
+00962
+00963 <span class="comment">// Push the value</span>
+00964 <span class="keywordflow">if</span> (exprCount &lt; <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)
+00965 result[exprCount] = <a class="code" href="a04223.html#a658">value</a>;
+00966 <span class="keywordflow">else</span>
+00967 resultSup.push_back (value);
+00968 exprCount++;
+00969
+00970 <span class="comment">// Look for an operator</span>
+00971 <span class="comment">// Operator ?</span>
+00972 <span class="keywordflow">if</span> (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry41">Operator</a>)
+00973 {
+00974 <span class="comment">// Yes, push it</span>
+00975 <span class="keywordflow">if</span> (opCount &lt; <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)
+00976 resultOp[opCount] = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a>;
+00977 <span class="keywordflow">else</span>
+00978 resultOpSup.push_back (_Op);
+00979 opCount++;
+00980 }
+00981 <span class="keywordflow">else</span>
+00982 {
+00983 <span class="comment">// Exit the evaluate loop</span>
+00984 <span class="keywordflow">break</span>;
+00985 }
+00986
+00987 <span class="comment">// Next token</span>
+00988 error = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd1">getNextToken</a> (nextToken);
+00989 }
+00990
+00991 <span class="comment">// Reduce the expression</span>
+00992 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a566">index</a> = 1;
+00993 <span class="keywordflow">while</span> (exprCount != 1)
+00994 {
+00995 <span class="comment">// Reduct ?</span>
+00996 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62">TOperator</a> before = (((<a class="code" href="a04223.html#a566">index</a>-1)&lt;<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)?resultOp[<a class="code" href="a04223.html#a566">index</a>-1]:resultOpSup[<a class="code" href="a04223.html#a566">index</a>-1-<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>]);
+00997 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62">TOperator</a> after = (<a class="code" href="a04223.html#a566">index</a> &lt; opCount)?(((<a class="code" href="a04223.html#a566">index</a>)&lt;<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)?resultOp[<a class="code" href="a04223.html#a566">index</a>]:resultOpSup[<a class="code" href="a04223.html#a566">index</a>-<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>]):<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry38">NotOperator</a>;
+00998 <span class="keywordflow">if</span> ((<a class="code" href="a04223.html#a566">index</a> == opCount) || (<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprv2">_OperatorPrecedence</a>[before] &lt;= <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprv2">_OperatorPrecedence</a>[after]))
+00999 {
+01000 <span class="comment">// Eval the value</span>
+01001 <span class="keywordtype">double</span> &amp;v0 = ((<a class="code" href="a04223.html#a566">index</a>-1)&lt;<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)?result[<a class="code" href="a04223.html#a566">index</a>-1]:resultSup[<a class="code" href="a04223.html#a566">index</a>-1-<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>];
+01002 <span class="keywordtype">double</span> &amp;v1 = ((<a class="code" href="a04223.html#a566">index</a>)&lt;<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)?result[<a class="code" href="a04223.html#a566">index</a>]:resultSup[<a class="code" href="a04223.html#a566">index</a>-<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>];
+01003
+01004 <span class="comment">// Choose the operator</span>
+01005 <span class="keywordflow">switch</span> (before)
+01006 {
+01007 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry36">Not</a>:
+01008 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry61">Tilde</a>:
+01009 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw9">NotUnaryOperator</a>;
+01010 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry35">Mul</a>:
+01011 v0 *= v1;
+01012 <span class="keywordflow">break</span>;
+01013 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry12">Div</a>:
+01014 <span class="keywordflow">if</span> (v1 == 0)
+01015 {
+01016 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw0">DividByZero</a>;
+01017 }
+01018 <span class="keywordflow">else</span>
+01019 {
+01020 v0 /= v1;
+01021 }
+01022 <span class="keywordflow">break</span>;
+01023 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry47">Remainder</a>:
+01024 v0 = fmod (v0, v1);
+01025 <span class="keywordflow">break</span>;
+01026 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry44">Plus</a>:
+01027 v0 += v1;
+01028 <span class="keywordflow">break</span>;
+01029 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry34">Minus</a>:
+01030 v0 -= v1;
+01031 <span class="keywordflow">break</span>;
+01032 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry65">ULeftShift</a>:
+01033 v0 = (<span class="keywordtype">double</span>)(((<a class="code" href="a04558.html#a15">uint</a>)floor (v0 + 0.5))&lt;&lt;((<a class="code" href="a04558.html#a15">uint</a>)floor (v1 + 0.5)));
+01034 <span class="keywordflow">break</span>;
+01035 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry66">URightShift</a>:
+01036 v0 = (<span class="keywordtype">double</span>)(((<a class="code" href="a04558.html#a15">uint</a>)floor (v0 + 0.5))&gt;&gt;((<a class="code" href="a04558.html#a15">uint</a>)floor (v1 + 0.5)));
+01037 <span class="keywordflow">break</span>;
+01038 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry52">SLeftShift</a>:
+01039 v0 = (<span class="keywordtype">double</span>)(((<a class="code" href="a04558.html#a14">sint</a>)floor (v0 + 0.5))&lt;&lt;((<a class="code" href="a04558.html#a14">sint</a>)floor (v1 + 0.5)));
+01040 <span class="keywordflow">break</span>;
+01041 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry55">SRightShift</a>:
+01042 v0 = (<span class="keywordtype">double</span>)(((<a class="code" href="a04558.html#a14">sint</a>)floor (v0 + 0.5))&gt;&gt;((<a class="code" href="a04558.html#a14">sint</a>)floor (v1 + 0.5)));
+01043 <span class="keywordflow">break</span>;
+01044 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry21">Inferior</a>:
+01045 v0 = (v0&lt;v1)?1.0:0.0;
+01046 <span class="keywordflow">break</span>;
+01047 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry22">InferiorEqual</a>:
+01048 v0 = (v0&lt;=v1)?1.0:0.0;
+01049 <span class="keywordflow">break</span>;
+01050 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry57">Superior</a>:
+01051 v0 = (v0&gt;v1)?1.0:0.0;
+01052 <span class="keywordflow">break</span>;
+01053 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry58">SuperiorEqual</a>:
+01054 v0 = (v0&gt;=v1)?1.0:0.0;
+01055 <span class="keywordflow">break</span>;
+01056 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry14">Equal</a>:
+01057 v0 = (v0==v1)?1.0:0.0;
+01058 <span class="keywordflow">break</span>;
+01059 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry37">NotEqual</a>:
+01060 v0 = (v0!=v1)?1.0:0.0;
+01061 <span class="keywordflow">break</span>;
+01062 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry3">And</a>:
+01063 v0 = (<span class="keywordtype">double</span>)(((<a class="code" href="a04558.html#a15">uint</a>)floor (v0 + 0.5)) &amp; ((<a class="code" href="a04558.html#a15">uint</a>)floor (v1 + 0.5)));
+01064 <span class="keywordflow">break</span>;
+01065 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry43">Or</a>:
+01066 v0 = (<span class="keywordtype">double</span>)(((<a class="code" href="a04558.html#a15">uint</a>)floor (v0 + 0.5)) | ((<a class="code" href="a04558.html#a15">uint</a>)floor (v1 + 0.5)));
+01067 <span class="keywordflow">break</span>;
+01068 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry67">Xor</a>:
+01069 v0 = (<span class="keywordtype">double</span>)(((<a class="code" href="a04558.html#a15">uint</a>)floor (v0 + 0.5)) ^ ((<a class="code" href="a04558.html#a15">uint</a>)floor (v1 + 0.5)));
+01070 <span class="keywordflow">break</span>;
+01071 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry28">LogicalAnd</a>:
+01072 v0 = (<span class="keywordtype">double</span>)(<a class="code" href="a04558.html#a15">uint</a>)((floor (v0 + 0.5) != 0.0) &amp;&amp; (floor (v1 + 0.5) != 0.0));
+01073 <span class="keywordflow">break</span>;
+01074 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry29">LogicalOr</a>:
+01075 v0 = (<span class="keywordtype">double</span>)(<a class="code" href="a04558.html#a15">uint</a>)((floor (v0 + 0.5) != 0.0) || (floor (v1 + 0.5) != 0.0));
+01076 <span class="keywordflow">break</span>;
+01077 <span class="keywordflow">case</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry30">LogicalXor</a>:
+01078 {
+01079 <span class="keywordtype">bool</span> b0 = floor (v0 + 0.5) != 0.0;
+01080 <span class="keywordtype">bool</span> b1 = floor (v1 + 0.5) != 0.0;
+01081 v0 = (<span class="keywordtype">double</span>)(<a class="code" href="a04558.html#a15">uint</a>)((b0&amp;&amp;!b1) || ((!b0)&amp;&amp;b1));
+01082 }
+01083 <span class="keywordflow">break</span>;
+01084 <span class="keywordflow">default</span>:
+01085 <a class="code" href="a04199.html#a12">nlstop</a>;
+01086 }
+01087
+01088 <span class="comment">// Decal others values</span>
+01089 <a class="code" href="a04558.html#a15">uint</a> i = <a class="code" href="a04223.html#a566">index</a>;
+01090 <span class="keywordflow">for</span> (; i&lt;exprCount-1; i++)
+01091 {
+01092 <span class="comment">// Copy</span>
+01093 <span class="keywordflow">if</span> (i&lt;<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)
+01094 result[i] = (i+1&lt;<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)?result[i+1]:resultSup[i+1-<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>];
+01095 <span class="keywordflow">else</span>
+01096 resultSup[i-<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>] = (i+1&lt;<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)?result[i+1]:resultSup[i+1-<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>];
+01097 }
+01098 exprCount--;
+01099
+01100 <span class="comment">// Decal operators</span>
+01101 i = <a class="code" href="a04223.html#a566">index</a>-1;
+01102 <span class="keywordflow">for</span> (; i&lt;opCount-1; i++)
+01103 {
+01104 <span class="comment">// Copy</span>
+01105 <span class="keywordflow">if</span> (i&lt;<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)
+01106 resultOp[i] = (i+1&lt;<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)?resultOp[i+1]:resultOpSup[i+1-<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>];
+01107 <span class="keywordflow">else</span>
+01108 resultOpSup[i-<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>] = (i+1&lt;<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>)?resultOp[i+1]:resultOpSup[i+1-<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry24">InternalOperator</a>];
+01109
+01110 }
+01111 opCount--;
+01112
+01113 <span class="comment">// Last one ?</span>
+01114 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a566">index</a> &gt; 1)
+01115 <a class="code" href="a04223.html#a566">index</a>--;
+01116 }
+01117 <span class="keywordflow">else</span>
+01118 <a class="code" href="a04223.html#a566">index</a>++;
+01119 }
+01120
+01121 finalResult = result[0];
+01122 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+01123 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CMyEvalNumExpra1" doxytag="NLMISC::CEvalNumExpr::evalExpression" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">CEvalNumExpr::TReturnState</a> NLMISC::CEvalNumExpr::evalExpression </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>expression</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>double &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>int *&nbsp;</td>
+ <td class="mdname" nowrap> <em>errorIndex</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>userData</em> = 0</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Evaluate a numerical expression.<p>
+Doesn't allocate heap memory for common complexity expression.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>expression</em>&nbsp;</td><td>is an expression string. See the expression grammar. </td></tr>
+ <tr><td valign=top><em>result</em>&nbsp;</td><td>is filled with the result if the function returns "NoError". </td></tr>
+ <tr><td valign=top><em>errorIndex</em>&nbsp;</td><td>is a pointer on an integer value filled with the index of the parsing error in the input string if function doesn't return "NoError". This value can be NULL. </td></tr>
+ <tr><td valign=top><em>userData</em>&nbsp;</td><td>is a user data used by user eval function </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>NoError if the expression has been parsed. Result is filled with the evaluated value.</dd></dl>
+This expression must follow the following grammar with the following evaluation priority:<p>
+expression: '-' expression | '!' expression // Returns true if a equal false, else false (logical not) | '~' expression // Returns ~ round(a) (bitwise not) | '(' expression ')' | expression operator expression | function1 '(' expression ')' | function2 '(' expression ',' expression ')' | number | constant | string // User defined value, evaluated by the <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprb2">evalValue()</a> callback<p>
+operator: '*' // Calculates (a * b) | '/' // Calculates (a / b) | '%' // Calculates the remainder of (a / b) | '+' // Calculates (a + b) | '-' // Calculates (a - b) | '&lt;&lt;' // Returns round(a) left 32 bits unsigned shift by round(b) | '&gt;&gt;' // Returns round(a) right 32 bits unsigned shift by round(b) | '&lt;-' // Returns round(a) left 32 bits signed shift by round(b) | '-&gt;' // Returns round(a) right 32 bits signed shift by round(b) | '&lt;' // Returns true if a is strictly smaller than b | '&lt;=' // Returns true if a is smaller or equal than b | '&gt;' // Returns true if a is strictly bigger than b | '&gt;=' // Returns true if a is bigger or equal than b | '==' // Returns true if a equal b, else returns false (warning, performs a floating point comparison) | '!=' // Returns false if a equal b, else returns true (warning, performs a floating point comparison) | '&amp;' // Returns round(a) &amp; round(b) over 32 bits | '|' // Returns round(a) | round(b) over 32 bits | '^' // Returns round(a) ^ round(b) over 32 bits | '&amp;&amp;' // Returns true if a equal true and b equal true else returns false | '||' // Returns true if a equal true or b equal true else returns false | '^^' // Returns true if a equal true and b equal false, or, a equal false and b equal 1.0, else returns false<p>
+function1: abs // Calculates the absolute value | acos // Calculates the arccosine | asin // Calculates the arcsine | atan // Calculates the arctangent | ceil // Calculates the ceiling of a value ( ceil(-1.1) = -1, ceil(1.1) = 2 ) | cos // Calculates the cosine | cosh // Calculates the hyperbolic cosine | exp // Calculates the exponential | exponent // Calculates the exponent of a floating point value | floor // Calculates the floor of a value ( floor(-1.1) = -2, floor(1.1) = 1 ) | int // Calculates the C style integer value ( int(-1.6) = -1, int(1.6) = 1 ) | log // Calculates logarithms | log10 // Calculates base-10 logarithms | mantissa // Calculates the mantissa of a floating point value | round // Calculates the nearest integer value ( round(-1.6) = -2, round(1.1) = 1 ) | sin // Calculate sines | sinh // Calculate hyperbolic sines | sq // Calculates the square | sqrt // Calculates the square root | tan // Calculates the tangent | tanh // Calculates the hyperbolic tangent | string // User defined one arg function, evaluated by the evalfunction() callback<p>
+function2: max // Returns the larger of two values | min // Returns the smaller of two values | atan2 // Calculates the arctangent of arg0/arg1 | pow // Calculates a raised at the power of b | rand // Calculates a pseudo random value (arg0 &lt;= randomValue &lt; arg1) | string // User defined two args function, evaluated by the evalfunction() callback<p>
+number: [0-9]+ // Unsigned decimal integer | "0x"[0-9a-fA-F]+ // Unsigned hexadecimal integer | "0"[0-7]+ // Unsigned octal integer | [0-9]*.[0-9]+ // Unsigned floating point value | [0-9]*.[0-9]+[eE]-?[0-9]*.[0-9]+ // Unsigned floating point value with signed exponent<p>
+constant: e // 2.7182818284590452353602874713527 | pi // 3.1415926535897932384626433832795<p>
+string: [^ 0-9<br>
+/\*-+=&lt;&gt;&amp;|\^!%~\(\)\.,\"][^ \t\n/\*-+=&lt;&gt;&amp;|\^!%~\(\)\.,\"]* // Labels ($foo, #foo01, _001) | \"[]+\" // All kind of labels between double quotes "123456" "foo.foo[12]"<p>
+Operator precedence:<p>
+0 - unary operator (-, ~, !) 1 - *, /, 2 - +, -, 3 - &lt;&lt;, &gt;&gt;, &lt;-, -&gt; 4 - &lt;, &lt;=, &gt;, &gt;= 5 - ==, != 6 - &amp; 7 - | 8 - ^ 9 - &amp;&amp; 10 - || 11 - ^^
+<p>
+Definition at line <a class="el" href="a05678.html#l00586">586</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+References <a class="el" href="a05679.html#l00297">_ExprPtr</a>, <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw5">MustBeEnd</a>, <a class="el" href="a05679.html#l00042">TReturnState</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00616">evalExpression()</a>, and <a class="el" href="a06586.html#l00339">NLGEORGES::CMyEvalNumExpr::evalValue()</a>.
+<p>
+<div class="fragment"><pre>00588 {
+00589 <span class="comment">// Init the ptr</span>
+00590 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr0">_ExprPtr</a> = expression;
+00591
+00592 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64">TToken</a> nextToken;
+00593 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a> error = <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExpra1">evalExpression</a> (result, nextToken, userData);
+00594 <span class="keywordflow">if</span> (error == <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00595 {
+00596 <span class="comment">// The end ?</span>
+00597 <span class="keywordflow">if</span> (nextToken == <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry13">End</a>)
+00598 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00599 <span class="keywordflow">else</span>
+00600 {
+00601 <span class="keywordflow">if</span> (errorIndex)
+00602 *errorIndex = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr0">_ExprPtr</a> - expression;
+00603 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw5">MustBeEnd</a>;
+00604 }
+00605 }
+00606 <span class="keywordflow">else</span>
+00607 {
+00608 <span class="keywordflow">if</span> (errorIndex)
+00609 *errorIndex = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr0">_ExprPtr</a> - expression;
+00610 <span class="keywordflow">return</span> error;
+00611 }
+00612 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprb0" doxytag="NLMISC::CEvalNumExpr::evalFunction" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">CEvalNumExpr::TReturnState</a> NLMISC::CEvalNumExpr::evalFunction </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>funcName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>double&nbsp;</td>
+ <td class="mdname" nowrap> <em>arg0</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>double&nbsp;</td>
+ <td class="mdname" nowrap> <em>arg1</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>double &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [protected, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05678.html#l01197">1197</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01119">arg1</a>, and <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw13">UnkownFunction</a>.
+<p>
+<div class="fragment"><pre>01198 {
+01199 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw13">UnkownFunction</a>;
+01200 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CMyEvalNumExprb1" doxytag="NLMISC::CEvalNumExpr::evalFunction" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">CEvalNumExpr::TReturnState</a> NLMISC::CEvalNumExpr::evalFunction </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>funcName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>double&nbsp;</td>
+ <td class="mdname" nowrap> <em>arg0</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>double &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [protected, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Eval a user defined function. Default implementation returns UnkownFunction. The user can parse the function name and fill the result double and return NoError, UnkownFunction or FunctionError.<p>
+To convert double argu in boolean argu, use (round (value) != 0.0) ? true : false<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>funcName</em>&nbsp;</td><td>is the name of the function to evaluate. </td></tr>
+ <tr><td valign=top><em>arg0</em>&nbsp;</td><td>is the first parameter passed to the function. </td></tr>
+ <tr><td valign=top><em>arg1</em>&nbsp;</td><td>is the second parameter passed to the function. </td></tr>
+ <tr><td valign=top><em>result</em>&nbsp;</td><td>is the result to fill if the value has been succesfully parsed. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>UnkownFunction if the function doesn't exist, FunctionError if the function evaluation failed, NoError if it has been parsed.</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a05678.html#l01190">1190</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+References <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw13">UnkownFunction</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00616">evalExpression()</a>.
+<p>
+<div class="fragment"><pre>01191 {
+01192 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw13">UnkownFunction</a>;
+01193 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprb2" doxytag="NLMISC::CEvalNumExpr::evalValue" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">CEvalNumExpr::TReturnState</a> NLMISC::CEvalNumExpr::evalValue </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>value</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>double &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>result</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>userData</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [protected, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Overridable functions.
+<p>
+Eval a user defined value. Default implementation returns UnkownValue. The user can parse the value and fill the result double and return NoError, UnkownValue or ValueError.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>value</em>&nbsp;</td><td>is the value to parse. </td></tr>
+ <tr><td valign=top><em>result</em>&nbsp;</td><td>is the result to fill if the value has been succesfully parsed. </td></tr>
+ <tr><td valign=top><em>userData</em>&nbsp;</td><td>is a user data used by user eval function. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>UnkownValue if the value is not known, ValueError is the value evaluation failed or NoError if it has been parsed.</dd></dl>
+
+<p>
+Reimplemented in <a class="el" href="a02979.html#NLGEORGES_1_1CMyEvalNumExpra2">NLGEORGES::CMyEvalNumExpr</a>.
+<p>
+Definition at line <a class="el" href="a05678.html#l01183">1183</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw15">UnkownValue</a>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00616">evalExpression()</a>, and <a class="el" href="a06586.html#l00339">NLGEORGES::CMyEvalNumExpr::evalValue()</a>.
+<p>
+<div class="fragment"><pre>01184 {
+01185 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw15">UnkownValue</a>;
+01186 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CMyEvalNumExpra3" doxytag="NLMISC::CEvalNumExpr::getErrorString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * NLMISC::CEvalNumExpr::getErrorString </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>state</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get error string.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05678.html#l01289">1289</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+References <a class="el" href="a05678.html#l01268">_ErrorString</a>.
+<p>
+<div class="fragment"><pre>01290 {
+01291 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprv0">_ErrorString</a>[state];
+01292 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprd1" doxytag="NLMISC::CEvalNumExpr::getNextToken" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">CEvalNumExpr::TReturnState</a> NLMISC::CEvalNumExpr::getNextToken </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64">TToken</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>token</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Internal functions Get the next token.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05678.html#l00096">96</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+References <a class="el" href="a05679.html#l00297">_ExprPtr</a>, <a class="el" href="a05679.html#l00318">_InternalStlString</a>, <a class="el" href="a05679.html#l00317">_InternalString</a>, <a class="el" href="a05679.html#l00319">_InternalStringPtr</a>, <a class="el" href="a05678.html#l01155">_OperatorArray</a>, <a class="el" href="a05678.html#l01204">_ReservedWord</a>, <a class="el" href="a05679.html#l00314">_ReservedWordFound</a>, <a class="el" href="a05678.html#l01236">_ReservedWordToken</a>, <a class="el" href="a05678.html#l01169">_StringChar</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry3">And</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry8">Close</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry9">Coma</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry14">Equal</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry17">ExtOperator</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry21">Inferior</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry22">InferiorEqual</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry25">InternalStringLen</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry28">LogicalAnd</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry29">LogicalOr</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry30">LogicalXor</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry34">Minus</a>, <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw4">MustBeDoubleQuote</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry36">Not</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry37">NotEqual</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry38">NotOperator</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry39">Number</a>, <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw10">NumberSyntaxError</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry40">Open</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry43">Or</a>, <a class="el" href="a05678.html#l00037">readDecimal()</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry48">ReservedWordCount</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry52">SLeftShift</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry55">SRightShift</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry57">Superior</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry58">SuperiorEqual</a>, <a class="el" href="a05679.html#l00257">TReservedWord</a>, <a class="el" href="a05679.html#l00042">TReturnState</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry65">ULeftShift</a>, <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw14">UnkownOperator</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry66">URightShift</a>, and <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry67">Xor</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00616">evalExpression()</a>.
+<p>
+<div class="fragment"><pre>00097 {
+00098 <span class="comment">// Get the current char</span>
+00099 <a class="code" href="a04558.html#a7">uint8</a> currentChar = *<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr0">_ExprPtr</a>;
+00100
+00101 <span class="comment">// Skip space</span>
+00102 <span class="keywordflow">while</span> ((currentChar!=0) &amp;&amp; (currentChar&lt;=0x20))
+00103 {
+00104 _ExprPtr++;
+00105 currentChar = *_ExprPtr;
+00106 }
+00107
+00108 <span class="comment">// Can be an operator ?</span>
+00109 <span class="keywordflow">if</span> (currentChar &lt;= 128)
+00110 {
+00111 <span class="comment">// Get the operator</span>
+00112 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprv1">_OperatorArray</a>[currentChar];
+00113
+00114 <span class="comment">// Is an operator ?</span>
+00115 <span class="keywordflow">if</span> (<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> != <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry38">NotOperator</a>)
+00116 {
+00117 <span class="comment">// It is an operator</span>
+00118 token = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry41">Operator</a>;
+00119
+00120 <span class="comment">// Is a 2 characters operator ?</span>
+00121 <span class="keywordflow">if</span> (<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> != <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry17">ExtOperator</a>)
+00122 {
+00123 <span class="comment">// Return next character</span>
+00124 _ExprPtr++;
+00125 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00126 }
+00127 <span class="keywordflow">else</span>
+00128 {
+00129 <span class="comment">// Have a second character ?</span>
+00130 <span class="keywordtype">char</span> secondChar = *(_ExprPtr+1);
+00131
+00132 <span class="comment">// What kind of 1st character</span>
+00133 <span class="keywordflow">switch</span> (currentChar)
+00134 {
+00135 <span class="keywordflow">case</span> <span class="charliteral">'!'</span>:
+00136 <span class="keywordflow">if</span> (secondChar == <span class="charliteral">'='</span>)
+00137 {
+00138 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry37">NotEqual</a>;
+00139 _ExprPtr+=2;
+00140 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00141 }
+00142 <span class="keywordflow">else</span>
+00143 {
+00144 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry36">Not</a>;
+00145 _ExprPtr++;
+00146 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00147 }
+00148 <span class="keywordflow">case</span> <span class="charliteral">'&amp;'</span>:
+00149 <span class="keywordflow">if</span> (secondChar == <span class="charliteral">'&amp;'</span>)
+00150 {
+00151 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry28">LogicalAnd</a>;
+00152 _ExprPtr+=2;
+00153 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00154 }
+00155 <span class="keywordflow">else</span>
+00156 {
+00157 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry3">And</a>;
+00158 _ExprPtr+=1;
+00159 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00160 }
+00161 <span class="keywordflow">case</span> <span class="charliteral">'-'</span>:
+00162 <span class="keywordflow">if</span> (secondChar == <span class="charliteral">'&gt;'</span>)
+00163 {
+00164 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry55">SRightShift</a>;
+00165 _ExprPtr+=2;
+00166 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00167 }
+00168 <span class="keywordflow">else</span>
+00169 {
+00170 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry34">Minus</a>;
+00171 _ExprPtr++;
+00172 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00173 }
+00174 <span class="keywordflow">case</span> <span class="charliteral">'&lt;'</span>:
+00175 <span class="keywordflow">if</span> (secondChar == <span class="charliteral">'&lt;'</span>)
+00176 {
+00177 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry65">ULeftShift</a>;
+00178 _ExprPtr+=2;
+00179 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00180 }
+00181 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (secondChar == <span class="charliteral">'='</span>)
+00182 {
+00183 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry22">InferiorEqual</a>;
+00184 _ExprPtr+=2;
+00185 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00186 }
+00187 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (secondChar == <span class="charliteral">'-'</span>)
+00188 {
+00189 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry52">SLeftShift</a>;
+00190 _ExprPtr+=2;
+00191 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00192 }
+00193 <span class="keywordflow">else</span>
+00194 {
+00195 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry21">Inferior</a>;
+00196 _ExprPtr+=1;
+00197 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00198 }
+00199 <span class="keywordflow">case</span> <span class="charliteral">'='</span>:
+00200 <span class="keywordflow">if</span> (secondChar == <span class="charliteral">'='</span>)
+00201 {
+00202 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry14">Equal</a>;
+00203 _ExprPtr+=2;
+00204 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00205 }
+00206 <span class="keywordflow">case</span> <span class="charliteral">'&gt;'</span>:
+00207 <span class="keywordflow">if</span> (secondChar == <span class="charliteral">'&gt;'</span>)
+00208 {
+00209 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry66">URightShift</a>;
+00210 _ExprPtr+=2;
+00211 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00212 }
+00213 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (secondChar == <span class="charliteral">'='</span>)
+00214 {
+00215 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry58">SuperiorEqual</a>;
+00216 _ExprPtr+=2;
+00217 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00218 }
+00219 <span class="keywordflow">else</span>
+00220 {
+00221 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry57">Superior</a>;
+00222 _ExprPtr+=1;
+00223 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00224 }
+00225 <span class="keywordflow">case</span> <span class="charliteral">'^'</span>:
+00226 <span class="keywordflow">if</span> (secondChar == <span class="charliteral">'^'</span>)
+00227 {
+00228 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry30">LogicalXor</a>;
+00229 _ExprPtr+=2;
+00230 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00231 }
+00232 <span class="keywordflow">else</span>
+00233 {
+00234 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry67">Xor</a>;
+00235 _ExprPtr+=1;
+00236 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00237 }
+00238 <span class="keywordflow">case</span> <span class="charliteral">'|'</span>:
+00239 <span class="keywordflow">if</span> (secondChar == <span class="charliteral">'|'</span>)
+00240 {
+00241 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry29">LogicalOr</a>;
+00242 _ExprPtr+=2;
+00243 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00244 }
+00245 <span class="keywordflow">else</span>
+00246 {
+00247 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr4">_Op</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry43">Or</a>;
+00248 _ExprPtr+=1;
+00249 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00250 }
+00251 }
+00252
+00253 <span class="comment">// Can't found the operator</span>
+00254 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw14">UnkownOperator</a>;
+00255 }
+00256 }
+00257 <span class="comment">// Is End, '(', ')', '.' ?</span>
+00258 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (currentChar == 0)
+00259 {
+00260 token = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry13">End</a>;
+00261 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00262 }
+00263 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (currentChar == <span class="charliteral">'('</span>)
+00264 {
+00265 _ExprPtr++;
+00266 token = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry40">Open</a>;
+00267 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00268 }
+00269 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (currentChar == <span class="charliteral">')'</span>)
+00270 {
+00271 _ExprPtr++;
+00272 token = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry8">Close</a>;
+00273 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00274 }
+00275 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (currentChar == <span class="charliteral">','</span>)
+00276 {
+00277 _ExprPtr++;
+00278 token = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry9">Coma</a>;
+00279 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00280 }
+00281 <span class="comment">// Is a number ?</span>
+00282 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((currentChar &gt;= <span class="charliteral">'0'</span>) &amp;&amp; (currentChar &lt;= <span class="charliteral">'9'</span>) || (currentChar == <span class="charliteral">'.'</span>))
+00283 {
+00284 <span class="comment">// This is a number</span>
+00285 token = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry39">Number</a>;
+00286
+00287 <span class="comment">// Have a second character ?</span>
+00288 <span class="keywordtype">char</span> secondChar = *(_ExprPtr+1);
+00289
+00290 <span class="comment">// Is an hexadecimal value ?</span>
+00291 <span class="keywordflow">if</span> ((currentChar == <span class="charliteral">'0'</span>) &amp;&amp; (secondChar == <span class="charliteral">'x'</span>))
+00292 {
+00293 <span class="comment">// Go to the number</span>
+00294 _ExprPtr +=2;
+00295 currentChar = *_ExprPtr;
+00296
+00297 <span class="comment">// Registered values</span>
+00298 <span class="keyword">register</span> <span class="keywordtype">double</span> regValue = 0;
+00299 <span class="keywordflow">if</span> ((currentChar &gt;= <span class="charliteral">'0'</span>) &amp;&amp; (currentChar &lt;= <span class="charliteral">'9'</span>))
+00300 {
+00301 regValue += (currentChar - <span class="charliteral">'0'</span>);
+00302 }
+00303 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((currentChar &gt;= <span class="charliteral">'a'</span>) &amp;&amp; (currentChar &lt;= <span class="charliteral">'f'</span>))
+00304 {
+00305 regValue += (currentChar - <span class="charliteral">'a'</span> + 10);
+00306 }
+00307 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((currentChar &gt;= <span class="charliteral">'A'</span>) &amp;&amp; (currentChar &lt;= <span class="charliteral">'F'</span>))
+00308 {
+00309 regValue += (currentChar - <span class="charliteral">'A'</span> + 10);
+00310 }
+00311 <span class="keywordflow">else</span>
+00312 {
+00313 <span class="comment">// Number syntax error</span>
+00314 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw10">NumberSyntaxError</a>;
+00315 }
+00316 _ExprPtr++;
+00317 currentChar = *_ExprPtr;
+00318
+00319 <span class="comment">// For each values</span>
+00320 <span class="keywordflow">while</span> (1)
+00321 {
+00322 <span class="keywordflow">if</span> ((currentChar &gt;= <span class="charliteral">'0'</span>) &amp;&amp; (currentChar &lt;= <span class="charliteral">'9'</span>))
+00323 {
+00324 regValue *= 16;
+00325 regValue += (currentChar - <span class="charliteral">'0'</span>);
+00326 }
+00327 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((currentChar &gt;= <span class="charliteral">'a'</span>) &amp;&amp; (currentChar &lt;= <span class="charliteral">'f'</span>))
+00328 {
+00329 regValue *= 16;
+00330 regValue += (currentChar - <span class="charliteral">'a'</span> + 10);
+00331 }
+00332 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((currentChar &gt;= <span class="charliteral">'A'</span>) &amp;&amp; (currentChar &lt;= <span class="charliteral">'F'</span>))
+00333 {
+00334 regValue *= 16;
+00335 regValue += (currentChar - <span class="charliteral">'A'</span> + 10);
+00336 }
+00337 <span class="keywordflow">else</span>
+00338 {
+00339 <span class="comment">// Stop</span>
+00340 <span class="keywordflow">break</span>;
+00341 }
+00342
+00343 <span class="comment">// Next char</span>
+00344 _ExprPtr++;
+00345 currentChar = *_ExprPtr;
+00346 }
+00347
+00348 <span class="comment">// Store value</span>
+00349 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr7">_Value</a> = regValue;
+00350
+00351 <span class="comment">// Number ok</span>
+00352 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00353 }
+00354 <span class="comment">// Is an octal value ?</span>
+00355 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((currentChar == <span class="charliteral">'0'</span>) &amp;&amp; (secondChar &gt;= <span class="charliteral">'0'</span>) &amp;&amp; (secondChar &lt;= <span class="charliteral">'9'</span>))
+00356 {
+00357 <span class="comment">// Go to the number</span>
+00358 _ExprPtr ++;
+00359 currentChar = *_ExprPtr;
+00360
+00361 <span class="comment">// Registered values</span>
+00362 <span class="keyword">register</span> <span class="keywordtype">double</span> regValue = 0;
+00363
+00364 <span class="comment">// Check octal number</span>
+00365 <span class="keywordflow">if</span> (currentChar &gt; <span class="charliteral">'7'</span>)
+00366 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw10">NumberSyntaxError</a>;
+00367
+00368 <span class="comment">// Read the first value</span>
+00369 regValue += (currentChar - <span class="charliteral">'0'</span>);
+00370 _ExprPtr++;
+00371 currentChar = *_ExprPtr;
+00372
+00373 <span class="comment">// For each values</span>
+00374 <span class="keywordflow">while</span> ((currentChar &gt;= <span class="charliteral">'0'</span>) &amp;&amp; (currentChar &lt;= <span class="charliteral">'9'</span>))
+00375 {
+00376 <span class="comment">// Check octal number</span>
+00377 <span class="keywordflow">if</span> (currentChar &gt; <span class="charliteral">'7'</span>)
+00378 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw10">NumberSyntaxError</a>;
+00379
+00380 regValue *= 8;
+00381 regValue += (currentChar - <span class="charliteral">'0'</span>);
+00382
+00383 <span class="comment">// Next char</span>
+00384 _ExprPtr++;
+00385 currentChar = *_ExprPtr;
+00386 }
+00387
+00388 <span class="comment">// Store value</span>
+00389 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr7">_Value</a> = regValue;
+00390
+00391 <span class="comment">// Number ok</span>
+00392 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00393 }
+00394 <span class="comment">// It is a decimal value</span>
+00395 <span class="keywordflow">else</span>
+00396 {
+00397 <span class="comment">// Read value</span>
+00398 <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a> state = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd2">readDecimal</a> (_Value);
+00399 <span class="keywordflow">if</span> (state == <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00400 {
+00401 <span class="comment">// Exponent ?</span>
+00402 currentChar = *_ExprPtr;
+00403 <span class="keywordflow">if</span> ( (currentChar == <span class="charliteral">'e'</span>) || (currentChar == <span class="charliteral">'E'</span>) )
+00404 {
+00405 <span class="comment">// Next char</span>
+00406 _ExprPtr++;
+00407
+00408 <span class="comment">// Minus ?</span>
+00409 <span class="keywordtype">bool</span> negative = <span class="keyword">false</span>;
+00410 <span class="keywordflow">if</span> (*_ExprPtr == <span class="charliteral">'-'</span>)
+00411 {
+00412 negative = <span class="keyword">true</span>;
+00413 _ExprPtr++;
+00414 }
+00415
+00416 <span class="comment">// Read value</span>
+00417 <span class="keywordtype">double</span> exponent;
+00418 state = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd2">readDecimal</a> (exponent);
+00419 <span class="keywordflow">if</span> (state == <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>)
+00420 {
+00421 <span class="comment">// Negative value ?</span>
+00422 <span class="keywordflow">if</span> (negative)
+00423 exponent = -exponent;
+00424
+00425 <span class="comment">// Raise 10 at the power of</span>
+00426 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr7">_Value</a> *= pow (10.0, exponent);
+00427 }
+00428 <span class="keywordflow">else</span>
+00429 {
+00430 <span class="keywordflow">return</span> state;
+00431 }
+00432 }
+00433
+00434 <span class="comment">// Number ok</span>
+00435 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00436 }
+00437 <span class="keywordflow">else</span>
+00438 {
+00439 <span class="keywordflow">return</span> state;
+00440 }
+00441 }
+00442 }
+00443 <span class="comment">// Is a string ?</span>
+00444 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (currentChar == <span class="charliteral">'"'</span>)
+00445 {
+00446 <span class="comment">// Look for the end of the string</span>
+00447 _ExprPtr++;
+00448 currentChar = *_ExprPtr;
+00449 <span class="keyword">const</span> <span class="keywordtype">char</span> *start = _ExprPtr;
+00450 <span class="keywordflow">while</span> ( (currentChar != 0) &amp;&amp; (currentChar != <span class="charliteral">'"'</span>) )
+00451 {
+00452 _ExprPtr++;
+00453 currentChar = *_ExprPtr;
+00454 }
+00455
+00456 <span class="comment">// End reached ?</span>
+00457 <span class="keywordflow">if</span> (currentChar == 0)
+00458 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw4">MustBeDoubleQuote</a>;
+00459
+00460 <span class="comment">// This is a user string, copy the string</span>
+00461 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a587">size</a> = _ExprPtr - start;
+00462 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a587">size</a> &gt;= (<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry25">InternalStringLen</a>-1))
+00463 {
+00464 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr1">_InternalStlString</a>.resize (size);
+00465 <a class="code" href="a04558.html#a15">uint</a> i;
+00466 <span class="keywordflow">for</span> (i=0; i&lt;<a class="code" href="a04223.html#a587">size</a>; i++)
+00467 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr1">_InternalStlString</a>[i] = start[i];
+00468 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr3">_InternalStringPtr</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr1">_InternalStlString</a>.c_str ();
+00469 }
+00470 <span class="keywordflow">else</span>
+00471 {
+00472 memcpy (_InternalString, start, size);
+00473 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr2">_InternalString</a>[<a class="code" href="a04223.html#a587">size</a>] = 0;
+00474 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr3">_InternalStringPtr</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr2">_InternalString</a>;
+00475 }
+00476
+00477 <span class="comment">// Token</span>
+00478 _ExprPtr++;
+00479 token = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry56">String</a>;
+00480 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00481 }
+00482 }
+00483
+00484 <span class="comment">// Read a string</span>
+00485 <span class="keyword">const</span> <span class="keywordtype">char</span> *start = _ExprPtr;
+00486 <span class="keywordflow">while</span> ( (currentChar &gt;= 128) || <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprv5">_StringChar</a>[currentChar] )
+00487 {
+00488 _ExprPtr++;
+00489 currentChar = *_ExprPtr;
+00490 }
+00491
+00492 <span class="comment">// Is pi ?</span>
+00493 <span class="keywordflow">if</span> (((_ExprPtr - start) == 2) &amp;&amp; (start[0] == <span class="charliteral">'p'</span>) &amp;&amp; (start[1] == <span class="charliteral">'i'</span>))
+00494 {
+00495 token = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry39">Number</a>;
+00496 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr7">_Value</a> = 3.1415926535897932384626433832795;
+00497 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00498 }
+00499 <span class="comment">// Is e ?</span>
+00500 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (((_ExprPtr - start) == 1) &amp;&amp; (start[0] == <span class="charliteral">'e'</span>))
+00501 {
+00502 token = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry39">Number</a>;
+00503 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr7">_Value</a> = 2.7182818284590452353602874713527;
+00504 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00505 }
+00506
+00507 <span class="comment">// This is a user string, copy the string</span>
+00508 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a587">size</a> = _ExprPtr - start;
+00509 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a587">size</a> &gt;= (<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry0NLMISC_1_1CEvalNumExpry25">InternalStringLen</a>-1))
+00510 {
+00511 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr1">_InternalStlString</a>.resize (size);
+00512 <a class="code" href="a04558.html#a15">uint</a> i;
+00513 <span class="keywordflow">for</span> (i=0; i&lt;<a class="code" href="a04223.html#a587">size</a>; i++)
+00514 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr1">_InternalStlString</a>[i] = start[i];
+00515 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr3">_InternalStringPtr</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr1">_InternalStlString</a>.c_str ();
+00516 }
+00517 <span class="keywordflow">else</span>
+00518 {
+00519 memcpy (_InternalString, start, size);
+00520 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr2">_InternalString</a>[<a class="code" href="a04223.html#a587">size</a>] = 0;
+00521 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr3">_InternalStringPtr</a> = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr2">_InternalString</a>;
+00522 }
+00523
+00524 <span class="comment">// Search for a reserved word ?</span>
+00525 <a class="code" href="a04558.html#a15">uint</a> begin = 0;
+00526 <a class="code" href="a04558.html#a15">uint</a> end = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry48">ReservedWordCount</a>-1;
+00527 <a class="code" href="a04558.html#a14">sint</a> result = strcmp (_InternalStringPtr, _ReservedWord[begin]);
+00528 <span class="keywordflow">if</span> ( result &gt;= 0 )
+00529 {
+00530 <span class="comment">// The first is the good ?</span>
+00531 <span class="keywordflow">if</span> ( result == 0 )
+00532 {
+00533 end = begin;
+00534 }
+00535
+00536 result = strcmp (_InternalStringPtr, _ReservedWord[end]);
+00537 <span class="keywordflow">if</span> (result &lt;= 0)
+00538 {
+00539 <span class="comment">// The last is the good ?</span>
+00540 <span class="keywordflow">if</span> ( result == 0 )
+00541 {
+00542 begin = end;
+00543 }
+00544
+00545 <span class="comment">// While there is a middle..</span>
+00546 <span class="keywordflow">while</span> ((end - begin) &gt; 1)
+00547 {
+00548 <a class="code" href="a04558.html#a15">uint</a> middle = begin + (end - begin) / 2;
+00549 result = strcmp (_InternalStringPtr, _ReservedWord[middle]);
+00550 <span class="keywordflow">if</span> (result == 0)
+00551 {
+00552 begin = middle;
+00553 end = middle;
+00554 <span class="keywordflow">break</span>;
+00555 }
+00556 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (result &lt; 0)
+00557 {
+00558 end = middle;
+00559 }
+00560 <span class="keywordflow">else</span>
+00561 {
+00562 begin = middle;
+00563 }
+00564 }
+00565 }
+00566
+00567 <span class="comment">// Found ?</span>
+00568 <span class="keywordflow">if</span> (end == begin)
+00569 {
+00570 <span class="comment">// Return the token</span>
+00571 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr5">_ReservedWordFound</a> = (<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63">TReservedWord</a>)begin;
+00572 token = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprv4">_ReservedWordToken</a>[begin];
+00573
+00574 <span class="comment">// Ok</span>
+00575 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00576 }
+00577 }
+00578
+00579 <span class="comment">// Token</span>
+00580 token = <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry56">String</a>;
+00581 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00582 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1CMyEvalNumExpra4" doxytag="NLMISC::CEvalNumExpr::internalCheck" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::CEvalNumExpr::internalCheck </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05678.html#l01127">1127</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+References <a class="el" href="a05678.html#l01204">_ReservedWord</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry48">ReservedWordCount</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>01128 {
+01129 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i&lt;<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry63NLMISC_1_1CEvalNumExpry48">ReservedWordCount</a>-1; i++)
+01130 <span class="keywordflow">if</span> (strcmp (_ReservedWord[i], _ReservedWord[i+1]) &gt;= 0)
+01131 {
+01132 <a class="code" href="a04199.html#a12">nlstop</a>;
+01133 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01134 }
+01135 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01136 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprd2" doxytag="NLMISC::CEvalNumExpr::readDecimal" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">CEvalNumExpr::TReturnState</a> NLMISC::CEvalNumExpr::readDecimal </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">double &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>value</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Read a decimal double.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05678.html#l00037">37</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+References <a class="el" href="a05679.html#l00297">_ExprPtr</a>, <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw10">NumberSyntaxError</a>, <a class="el" href="a05678.html#l00065">readIntegerNumberDecimal()</a>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00096">getNextToken()</a>.
+<p>
+<div class="fragment"><pre>00038 {
+00039 <span class="comment">// Read first integer value</span>
+00040 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd3">readIntegerNumberDecimal</a> (value);
+00041
+00042 <span class="comment">// Dot ?</span>
+00043 <span class="keywordtype">char</span> currentChar = *<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr0">_ExprPtr</a>;
+00044 <span class="keywordflow">if</span> (currentChar == <span class="charliteral">'.'</span>)
+00045 {
+00046 <span class="comment">// Next char</span>
+00047 _ExprPtr++;
+00048 currentChar = *_ExprPtr;
+00049 <span class="keywordflow">if</span> (currentChar &lt; '0' || currentChar &gt; <span class="charliteral">'9'</span>)
+00050 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw10">NumberSyntaxError</a>;
+00051
+00052 <span class="comment">// Read the decimal part</span>
+00053 <span class="keyword">const</span> <span class="keywordtype">char</span> *start = _ExprPtr;
+00054 <span class="keywordtype">double</span> fract;
+00055 <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprd3">readIntegerNumberDecimal</a> (fract);
+00056 fract /= (<span class="keywordtype">double</span>)pow (10 ,(_ExprPtr-start));
+00057 <a class="code" href="a04223.html#a658">value</a> += fract;
+00058 }
+00059
+00060 <span class="keywordflow">return</span> <a class="code" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12NLGEORGES_1_1CMyEvalNumExprw8">NoError</a>;
+00061 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprd3" doxytag="NLMISC::CEvalNumExpr::readIntegerNumberDecimal" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CEvalNumExpr::readIntegerNumberDecimal </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">double &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>value</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Read an integer.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05678.html#l00065">65</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+References <a class="el" href="a05679.html#l00297">_ExprPtr</a>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00037">readDecimal()</a>.
+<p>
+<div class="fragment"><pre>00066 {
+00067 <span class="comment">// Registered values</span>
+00068 <span class="keyword">register</span> <span class="keywordtype">double</span> regValue = 0;
+00069
+00070 <span class="comment">// Read the first value</span>
+00071 <span class="keywordtype">char</span> currentChar = *<a class="code" href="a02460.html#NLMISC_1_1CEvalNumExprr0">_ExprPtr</a>;
+00072 <span class="keywordflow">if</span> ((currentChar &gt;= <span class="charliteral">'0'</span>) &amp;&amp; (currentChar &lt;= <span class="charliteral">'9'</span>))
+00073 {
+00074 regValue += (currentChar - <span class="charliteral">'0'</span>);
+00075 _ExprPtr++;
+00076 currentChar = *_ExprPtr;
+00077
+00078 <span class="comment">// For each values</span>
+00079 <span class="keywordflow">while</span> ((currentChar &gt;= <span class="charliteral">'0'</span>) &amp;&amp; (currentChar &lt;= <span class="charliteral">'9'</span>))
+00080 {
+00081 regValue *= 10;
+00082 regValue += (currentChar - <span class="charliteral">'0'</span>);
+00083
+00084 <span class="comment">// Next char</span>
+00085 _ExprPtr++;
+00086 currentChar = *_ExprPtr;
+00087 }
+00088 }
+00089
+00090 <span class="comment">// Store value</span>
+00091 <a class="code" href="a04223.html#a658">value</a> = regValue;
+00092 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprv0" doxytag="NLMISC::CEvalNumExpr::_ErrorString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprv0">NLMISC::CEvalNumExpr::_ErrorString</a><code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ <span class="stringliteral">"No error"</span>,
+ <span class="stringliteral">"Unkown value"</span>,
+ <span class="stringliteral">"Error during user defined value evaluation"</span>,
+ <span class="stringliteral">"Unkown function"</span>,
+ <span class="stringliteral">"Error during user defined function evaluation"</span>,
+ <span class="stringliteral">"Syntax error in a number expression"</span>,
+ <span class="stringliteral">"Unkown operator"</span>,
+ <span class="stringliteral">"Should be a open parentesis"</span>,
+ <span class="stringliteral">"Should be a close parentesis"</span>,
+ <span class="stringliteral">"Should be a coma character"</span>,
+ <span class="stringliteral">"Should be an expression"</span>,
+ <span class="stringliteral">"Should not be an unary operator"</span>,
+ <span class="stringliteral">"Should be the end of the expression"</span>,
+ <span class="stringliteral">"Should be a double quote"</span>,
+ <span class="stringliteral">"Divid by zero"</span>,
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a05678.html#l01268">1268</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l01289">getErrorString()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprr0" doxytag="NLMISC::CEvalNumExpr::_ExprPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char* <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr0">NLMISC::CEvalNumExpr::_ExprPtr</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00297">297</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00586">evalExpression()</a>, <a class="el" href="a05678.html#l00096">getNextToken()</a>, <a class="el" href="a05678.html#l00037">readDecimal()</a>, and <a class="el" href="a05678.html#l00065">readIntegerNumberDecimal()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprr1" doxytag="NLMISC::CEvalNumExpr::_InternalStlString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr1">NLMISC::CEvalNumExpr::_InternalStlString</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00318">318</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00096">getNextToken()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprr2" doxytag="NLMISC::CEvalNumExpr::_InternalString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr2">NLMISC::CEvalNumExpr::_InternalString</a>[InternalStringLen]<code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Current string.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00317">317</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00096">getNextToken()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprr3" doxytag="NLMISC::CEvalNumExpr::_InternalStringPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char* <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr3">NLMISC::CEvalNumExpr::_InternalStringPtr</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00319">319</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00616">evalExpression()</a>, and <a class="el" href="a05678.html#l00096">getNextToken()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprr4" doxytag="NLMISC::CEvalNumExpr::_Op" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62">TOperator</a> <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr4">NLMISC::CEvalNumExpr::_Op</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Current operator.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00325">325</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprv1" doxytag="NLMISC::CEvalNumExpr::_OperatorArray" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry62">CEvalNumExpr::TOperator</a> <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprv1">NLMISC::CEvalNumExpr::_OperatorArray</a><code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry38">NotOperator</a>, <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry38">NotOperator</a>, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator,
+ NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator,
+ NotOperator, <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry17">ExtOperator</a>, NotOperator, NotOperator, NotOperator, <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry47">Remainder</a>, ExtOperator, NotOperator, NotOperator, NotOperator, <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry35">Mul</a>, <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry44">Plus</a>, NotOperator, ExtOperator, NotOperator, <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry12">Div</a>,
+ NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, ExtOperator, ExtOperator, ExtOperator, NotOperator,
+ NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator,
+ NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, ExtOperator, NotOperator,
+ NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator,
+ NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, NotOperator, ExtOperator, NotOperator, <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry62NLMISC_1_1CEvalNumExpry61">Tilde</a>, NotOperator,
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a05678.html#l01155">1155</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00096">getNextToken()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprv2" doxytag="NLMISC::CEvalNumExpr::_OperatorPrecedence" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const int <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprv2">NLMISC::CEvalNumExpr::_OperatorPrecedence</a><code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ 0,
+ 0,
+ 1,
+ 1,
+ 1,
+ 2,
+ 2,
+ 3,
+ 3,
+ 3,
+ 3,
+ 4,
+ 4,
+ 4,
+ 4,
+ 5,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 0xffffffff,
+ 20,
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a05678.html#l01296">1296</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00616">evalExpression()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprv3" doxytag="NLMISC::CEvalNumExpr::_ReservedWord" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const char * <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprv3">NLMISC::CEvalNumExpr::_ReservedWord</a><code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ <span class="stringliteral">"abs"</span>,
+ <span class="stringliteral">"acos"</span>,
+ <span class="stringliteral">"asin"</span>,
+ <span class="stringliteral">"atan"</span>,
+ <span class="stringliteral">"atan2"</span>,
+ <span class="stringliteral">"ceil"</span>,
+ <span class="stringliteral">"cos"</span>,
+ <span class="stringliteral">"cosh"</span>,
+ <span class="stringliteral">"exp"</span>,
+ <span class="stringliteral">"exponent"</span>,
+ <span class="stringliteral">"floor"</span>,
+ <span class="stringliteral">"int"</span>,
+ <span class="stringliteral">"log"</span>,
+ <span class="stringliteral">"log10"</span>,
+ <span class="stringliteral">"mantissa"</span>,
+ <span class="stringliteral">"max"</span>,
+ <span class="stringliteral">"min"</span>,
+ <span class="stringliteral">"pow"</span>,
+ <span class="stringliteral">"rand"</span>,
+ <span class="stringliteral">"round"</span>,
+ <span class="stringliteral">"sin"</span>,
+ <span class="stringliteral">"sinh"</span>,
+ <span class="stringliteral">"sq"</span>,
+ <span class="stringliteral">"sqrt"</span>,
+ <span class="stringliteral">"tan"</span>,
+ <span class="stringliteral">"tanh"</span>,
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a05678.html#l01204">1204</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00096">getNextToken()</a>, and <a class="el" href="a05678.html#l01127">internalCheck()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprr5" doxytag="NLMISC::CEvalNumExpr::_ReservedWordFound" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry63">TReservedWord</a> <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr5">NLMISC::CEvalNumExpr::_ReservedWordFound</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Reserved word.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00314">314</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00616">evalExpression()</a>, and <a class="el" href="a05678.html#l00096">getNextToken()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprv4" doxytag="NLMISC::CEvalNumExpr::_ReservedWordToken" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExpry64">CEvalNumExpr::TToken</a> <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprv4">NLMISC::CEvalNumExpr::_ReservedWordToken</a><code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry19">Function1</a>,
+ <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry19">Function1</a>,
+ Function1,
+ Function1,
+ <a class="code" href="a02460.html#NLMISC_1_1CEvalNumExpry64NLMISC_1_1CEvalNumExpry20">Function2</a>,
+ Function1,
+ Function1,
+ Function1,
+ Function1,
+ Function1,
+ Function1,
+ Function1,
+ Function1,
+ Function1,
+ Function1,
+ Function2,
+ Function2,
+ Function2,
+ Function2,
+ Function1,
+ Function1,
+ Function1,
+ Function1,
+ Function1,
+ Function1,
+ Function1,
+}
+</pre></div>Static values Char to operator array.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05678.html#l01236">1236</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00096">getNextToken()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprr6" doxytag="NLMISC::CEvalNumExpr::_State" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02460.html#NLGEORGES_1_1CMyEvalNumExprw12">TReturnState</a> <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr6">NLMISC::CEvalNumExpr::_State</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Members.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00296">296</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprv5" doxytag="NLMISC::CEvalNumExpr::_StringChar" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const bool <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprv5">NLMISC::CEvalNumExpr::_StringChar</a><code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>,
+ <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>,
+ <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>,
+ <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,
+ <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>,
+ <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,
+ <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>,
+ <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a05678.html#l01169">1169</a> of file <a class="el" href="a05678.html">eval_num_expr.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05678.html#l00096">getNextToken()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CEvalNumExprr7" doxytag="NLMISC::CEvalNumExpr::_Value" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> double <a class="el" href="a02460.html#NLMISC_1_1CEvalNumExprr7">NLMISC::CEvalNumExpr::_Value</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Current value.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05679.html#l00322">322</a> of file <a class="el" href="a05679.html">eval_num_expr.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05679.html">eval_num_expr.h</a><li><a class="el" href="a05678.html">eval_num_expr.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:09:38 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>