Click here to Skip to main content
15,885,546 members
Articles / Desktop Programming / ATL

Visual Calc v3.0 - A new dimension for the desktop calculator

Rate me:
Please Sign up or sign in to vote.
3.62/5 (113 votes)
28 Apr 2006CPOL22 min read 351.3K   6.8K   104  
How to start programming a parser.
<!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>VisualCalc Parser: VCalcParser.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.5 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
  </ul></div>
<h1>VCalcParser.h</h1><a href="_v_calc_parser_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00062"></a>00062 <span class="preprocessor">#if !defined(__AFX_VCALCPARSER_H_INCLUDED__)</span>
<a name="l00063"></a><a class="code" href="_v_calc_parser_8h.html#3c19a5dcdf1194fbdec244a654721ea7">00063</a> <span class="preprocessor"></span><span class="preprocessor">#define      __AFX_VCALCPARSER_H_INCLUDED__</span>
<a name="l00064"></a>00064 <span class="preprocessor"></span>
<a name="l00065"></a>00065 <span class="preprocessor">#if _MSC_VER &gt; 1000</span>
<a name="l00066"></a>00066 <span class="preprocessor"></span><span class="preprocessor">#pragma once</span>
<a name="l00067"></a>00067 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00068"></a>00068 <span class="preprocessor"></span>
<a name="l00069"></a>00069 <span class="comment">// Identifier was truncated to '255' characters in the debug information</span>
<a name="l00070"></a>00070 <span class="preprocessor">#pragma warning (disable: 4786)</span>
<a name="l00071"></a>00071 <span class="preprocessor"></span>
<a name="l00072"></a>00072 <span class="preprocessor">#include &lt;ALGORITHM&gt;</span>    <span class="comment">// std::find()</span>
<a name="l00073"></a>00073 <span class="preprocessor">#include &lt;STRING&gt;</span>       <span class="comment">// std::string</span>
<a name="l00074"></a>00074 <span class="preprocessor">#include &lt;LIST&gt;</span>         <span class="comment">// std::list&lt;&gt;</span>
<a name="l00075"></a>00075 <span class="preprocessor">#include &lt;MAP&gt;</span>          <span class="comment">// std::map&lt;&gt;</span>
<a name="l00076"></a>00076 <span class="preprocessor">#include &lt;DEQUE&gt;</span>        <span class="comment">// std::deque&lt;&gt;</span>
<a name="l00077"></a>00077 <span class="preprocessor">#include &lt;CMATH&gt;</span>        <span class="comment">// ::abs(), ::acos(), ::asin(), ::atan(), ::cos(),   ::cosh()</span>
<a name="l00078"></a>00078                         <span class="comment">// ::exp(), ::fabs(), ::floor() ::log(),  ::log10(), ::fmod()</span>
<a name="l00079"></a>00079                         <span class="comment">// ::pow(), ::sin(),  ::sinh(), ::sqrt(), ::tan(),   ::tanh()</span>
<a name="l00080"></a>00080 <span class="preprocessor">#include "<a class="code" href="_v_calc_parser_types_8h.html">VCalcParserTypes.h</a>"</span>
<a name="l00081"></a>00081 
<a name="l00082"></a>00082 
<a name="l00113"></a><a class="code" href="class_c_v_calc_parser.html">00113</a> <span class="keyword">class </span><a class="code" href="class_c_v_calc_parser.html">CVCalcParser</a> {
<a name="l00114"></a>00114 <span class="keyword">private</span>:
<a name="l00115"></a>00115     <span class="comment">// Mathematic constants</span>
<a name="l00116"></a><a class="code" href="class_c_v_calc_parser.html#14d6bc58920086d6c3f8707c6ca4e0b4">00116</a>     <span class="keyword">const</span> <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>   <a class="code" href="class_c_v_calc_parser.html#14d6bc58920086d6c3f8707c6ca4e0b4">m_PI</a>;   
<a name="l00117"></a><a class="code" href="class_c_v_calc_parser.html#1bba65a4ef7ac2537f444674df28bddd">00117</a>     <span class="keyword">const</span> <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>   <a class="code" href="class_c_v_calc_parser.html#1bba65a4ef7ac2537f444674df28bddd">m_E</a>;    
<a name="l00119"></a>00119     <span class="comment">// Members for parsing treatment</span>
<a name="l00120"></a><a class="code" href="class_c_v_calc_parser.html#a0623aa02da54819cf4100ba7719dae9">00120</a>     <a class="code" href="_v_calc_parser_types_8h.html#0266b1a639975838e174584238b9bf1b">TokenValue</a>                  <a class="code" href="class_c_v_calc_parser.html#a0623aa02da54819cf4100ba7719dae9">m_tokCurrentToken</a>;      
<a name="l00121"></a><a class="code" href="class_c_v_calc_parser.html#a0c7add01e5a5ca2b4dcc8297e4fac5b">00121</a>     std::string                 <a class="code" href="class_c_v_calc_parser.html#a0c7add01e5a5ca2b4dcc8297e4fac5b">m_strSource</a>;            
<a name="l00122"></a><a class="code" href="class_c_v_calc_parser.html#0b3296194cfbc37bb2b5bddbecab2a5d">00122</a>     std::string                 <a class="code" href="class_c_v_calc_parser.html#0b3296194cfbc37bb2b5bddbecab2a5d">m_strIdentifierValue</a>;   
<a name="l00123"></a><a class="code" href="class_c_v_calc_parser.html#9da21055ec1f7e972aceb1f5921f9363">00123</a>     std::string                 <a class="code" href="class_c_v_calc_parser.html#9da21055ec1f7e972aceb1f5921f9363">m_strWarningMsg</a>;        
<a name="l00124"></a><a class="code" href="class_c_v_calc_parser.html#2f571d7c799e8857aad7fddb011359e5">00124</a>     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>                 <a class="code" href="class_c_v_calc_parser.html#2f571d7c799e8857aad7fddb011359e5">m_valNumberValue</a>;       
<a name="l00125"></a><a class="code" href="class_c_v_calc_parser.html#de62d096cd40a44d83b20c0d281b7c4e">00125</a>     <span class="keywordtype">bool</span>                        <a class="code" href="class_c_v_calc_parser.html#de62d096cd40a44d83b20c0d281b7c4e">m_bWarningFlag</a>;         
<a name="l00126"></a><a class="code" href="class_c_v_calc_parser.html#be462338d9d624357cd648b4e015d108">00126</a>     <span class="keywordtype">bool</span>                        <a class="code" href="class_c_v_calc_parser.html#be462338d9d624357cd648b4e015d108">m_bEndEncountered</a>;      
<a name="l00127"></a><a class="code" href="class_c_v_calc_parser.html#6177c1853c93e2d858cf3f9e21991023">00127</a>     <span class="keywordtype">int</span>                         <a class="code" href="class_c_v_calc_parser.html#6177c1853c93e2d858cf3f9e21991023">m_iCurrentIndex</a>;        
<a name="l00128"></a><a class="code" href="class_c_v_calc_parser.html#e57f128cfa2e581a977eb0af4bd2c0a1">00128</a>     std::list&lt;std::string&gt;      <a class="code" href="class_c_v_calc_parser.html#e57f128cfa2e581a977eb0af4bd2c0a1">m_lstFunctions</a>;         
<a name="l00129"></a>00129     std::map&lt;std::string, VALUES_TYPE&gt;
<a name="l00130"></a><a class="code" href="class_c_v_calc_parser.html#9fb631992c6d02e5db9b29fa03765d05">00130</a>                                 <a class="code" href="class_c_v_calc_parser.html#9fb631992c6d02e5db9b29fa03765d05">m_mapVariables</a>;         
<a name="l00131"></a><a class="code" href="class_c_v_calc_parser.html#bf98769d76c70c0e1a8e201b2ce85f60">00131</a>     std::deque&lt;AnswerItem&gt;      <a class="code" href="class_c_v_calc_parser.html#bf98769d76c70c0e1a8e201b2ce85f60">m_dqeAnswersHistory</a>;    
<a name="l00132"></a><a class="code" href="class_c_v_calc_parser.html#f4fcdbbe5e0113f7c97e0cad9238a322">00132</a>     std::string                 <a class="code" href="class_c_v_calc_parser.html#f4fcdbbe5e0113f7c97e0cad9238a322">m_strParserVersion</a>;     
<a name="l00134"></a>00134     <span class="comment">// Locally defined/redefined mathematic functions</span>
<a name="l00135"></a>00135     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#ac4f8ba7577444b9dc8f3fd7e1ef999d">ffactor</a> (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00136"></a>00136     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#d419513e44bde20cbe781aebc38e49d8">nCp</a>     (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>, <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00137"></a>00137     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#8f5e1a27fee1e8aea82de140cd8fc839">nAp</a>     (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>, <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00138"></a>00138     <a class="code" href="struct_answer_item.html">AnswerItem</a>  <a class="code" href="class_c_v_calc_parser.html#217b97a3398d351cf3823bb3d8feef26">Ans</a>     (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> valIndex);
<a name="l00139"></a>00139 
<a name="l00140"></a>00140     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#be249590e704ae956317cdfeddfcf2b1">abs</a>     (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00141"></a>00141     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#a066fc0d8e21cf8854823cb6c63adb56">cos</a>     (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00142"></a>00142     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#ccdc395b4777fe75b7aad79ec188868b">sin</a>     (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00143"></a>00143     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#41040fcd49f23a12d66e81ab8d29ec09">tan</a>     (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00144"></a>00144     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#460a276dbda929bce5dcff28c49e4a37">cosh</a>    (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00145"></a>00145     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#d080f9fdcdd1d06022b6206429fe260e">sinh</a>    (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00146"></a>00146     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#d0cb912f3527dbee24318528ab8823f0">tanh</a>    (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00147"></a>00147     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#dd053deefb9c5b003703a6659c598946">Acos</a>    (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00148"></a>00148     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#4dd2bd839beb8986f034dca7e687d29f">Asin</a>    (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00149"></a>00149     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#28e75fc1e44eb3c4438256d392ea2fc9">Atan</a>    (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00150"></a>00150     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#d4ab77a9c36608751a5c362dae6d8813">deg</a>     (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00151"></a>00151     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#223e308cab7c1c8f3ed754f6a8bc6984">rad</a>     (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00152"></a>00152     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#fe89dd21dcf2cd8d75d3c6d92196ded6">exp</a>     (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00153"></a>00153     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#d992912845097e4bb9e6cee3c81a7482">ln</a>      (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00154"></a>00154     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#4331a778a55adebb9a49d3203b761310">log</a>     (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00155"></a>00155     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#417f1f76518ff1693a839712f443fa0a">logn</a>    (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>, <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00156"></a>00156     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#d80f90e6ebeeadde59f6d64290480062">sqrt</a>    (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00157"></a>00157     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#99566824e2739113c77413beb0a92645">sqrtn</a>   (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>, <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00158"></a>00158     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#e8f23056e0976c195beb61c92ad76243">pow</a>     (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>, <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00159"></a>00159     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#1e7a02838976ed64a7c3749822270c3a">mod</a>     (<a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>, <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a>);
<a name="l00160"></a>00160     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#4faca6a612ecdc863804af33673966b2">sum</a>     (std::string expr, std::string var, <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> low, <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> high);
<a name="l00161"></a>00161     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#12a524bd18bd4bff5f8cba3dcc308ee7">product</a> (std::string expr, std::string var, <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> low, <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> high);
<a name="l00162"></a>00162 
<a name="l00163"></a>00163 <span class="keyword">public</span>:
<a name="l00164"></a>00164     <a class="code" href="class_c_v_calc_parser.html#c29d130824de8e6217826f3bddb43f4c">CVCalcParser</a>();
<a name="l00165"></a>00165     <span class="keyword">virtual</span> <a class="code" href="class_c_v_calc_parser.html#32bdb3fe05a07512580b3eb6df53d076">~CVCalcParser</a>();
<a name="l00166"></a>00166     <span class="keywordtype">void</span> <a class="code" href="class_c_v_calc_parser.html#4676fc736cddb26564fcc55a3896dfef">ResetParserMembers</a>(<span class="keyword">const</span> std::string);
<a name="l00167"></a>00167     <span class="keywordtype">void</span> <a class="code" href="class_c_v_calc_parser.html#8ca3bcfeffb2fe60d8ac00594ad113a6">ResetFunctions</a>();
<a name="l00168"></a>00168     <span class="keywordtype">void</span> <a class="code" href="class_c_v_calc_parser.html#d6cfe52738a37f353a6bad466330b01e">ResetVariables</a>();
<a name="l00169"></a>00169     <span class="keywordtype">void</span> <a class="code" href="class_c_v_calc_parser.html#cd8c53feaf3e054085378c652b259f2d">ResetAnswersHistory</a>();
<a name="l00170"></a>00170     <span class="keyword">const</span> std::list&lt;std::string&gt;&amp;               <a class="code" href="class_c_v_calc_parser.html#d857340985c20f9f517f76b584ae2b97">GetFunctions</a>();
<a name="l00171"></a>00171     <span class="keyword">const</span> std::map&lt;std::string, VALUES_TYPE&gt;&amp;   <a class="code" href="class_c_v_calc_parser.html#3acf05c52be0fb64215757f3e8c77efa">GetVariables</a>();
<a name="l00172"></a>00172     <span class="keyword">const</span> std::deque&lt;AnswerItem&gt;&amp;               <a class="code" href="class_c_v_calc_parser.html#ad66c566cb621bad9a30830428478500">GetAnswersHistory</a>();
<a name="l00173"></a>00173     <span class="keywordtype">bool</span> <a class="code" href="class_c_v_calc_parser.html#e5bbc359d1790e4e5b6599c588956469">HasWarning</a>();
<a name="l00174"></a>00174     std::string <a class="code" href="class_c_v_calc_parser.html#78b0204cb38c8bd1aa3932257e333dd5">GetWarningMsg</a>();
<a name="l00175"></a>00175     std::string <a class="code" href="class_c_v_calc_parser.html#f2628ce7dfbb18178fd65dc19091cb47">GetVersion</a>();
<a name="l00176"></a>00176 
<a name="l00177"></a>00177     <span class="comment">//Parsing functions following (in the recursive-descending order)...</span>
<a name="l00178"></a>00178     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#53f8a16035a6f340e8ae6225da3ddaf7">Evaluate</a>(<span class="keyword">const</span> std::string&amp; Source) <span class="keywordflow">throw</span>(<a class="code" href="class_c_v_calc_parser_exception.html">CVCalcParserException</a>);
<a name="l00179"></a>00179 
<a name="l00180"></a>00180 <span class="keyword">private</span>:
<a name="l00181"></a>00181     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#cc210c2429fffad4700dbec2789ce90d">Level_1</a>         (<span class="keywordtype">void</span>);     <span class="comment">// + , -</span>
<a name="l00182"></a>00182     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#bde3aec010778dd4336bc58110bb9e77">Level_2</a>         (<span class="keywordtype">void</span>);     <span class="comment">// * , /</span>
<a name="l00183"></a>00183     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#f8c086f9e10a7e4a9b3cfa49be1c6634">Level_3</a>         (<span class="keywordtype">void</span>);     <span class="comment">// ^</span>
<a name="l00184"></a>00184     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#a182baf0ad51a7c63957a0ea113c12c9">Level_4</a>         (<span class="keywordtype">void</span>);     <span class="comment">// %</span>
<a name="l00185"></a>00185     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#d0ec6c12e48049b31768d9322da0540e">Level_5</a>         (<span class="keywordtype">void</span>);     <span class="comment">// ! , �</span>
<a name="l00186"></a>00186     <a class="code" href="_v_calc_parser_types_8h.html#4f8f973df1d3250e3882077b1a157e12">VALUES_TYPE</a> <a class="code" href="class_c_v_calc_parser.html#1c323050e22744da030a014a861e03a4">Primary</a>         (<span class="keywordtype">void</span>);     <span class="comment">// ( ) , Unary + , Unary -</span>
<a name="l00187"></a>00187     <a class="code" href="_v_calc_parser_types_8h.html#0266b1a639975838e174584238b9bf1b">TokenValue</a>  <a class="code" href="class_c_v_calc_parser.html#5593665eab9b19f0eec6a62e4e50d3a5">GetToken</a>        (<span class="keywordtype">void</span>);
<a name="l00188"></a>00188     <span class="keywordtype">bool</span>        <a class="code" href="class_c_v_calc_parser.html#4b3679c0f0bedf36870bb4569d194be9">StepIndexForward</a>(<span class="keywordtype">void</span>);
<a name="l00189"></a>00189 };
<a name="l00190"></a>00190 
<a name="l00191"></a>00191 
<a name="l00192"></a>00192 <span class="preprocessor">#endif // !defined(__AFX_VCALCPARSER_H_INCLUDED__)</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 6 23:55:55 2006 for VisualCalc Parser by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.5 </small></address>
</body>
</html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) Accenture Technology Solutions
France France

Toxcct is an electronics guy who felt in love with programming at the age of 10 when he discovered C to play with Texas-Instruments calculators.

Few years later, he discovered "The C++ Language" from Bjarne Stroustrup ; a true transformation in his life.

Now, toxcct is experiencing the Web by developing Siebel CRM Applications for a living. He also respects very much the Web Standards (YES, a HTML/CSS code MUST validate !), and plays around with HTML/CSS/Javascript/Ajax/PHP and such.

_____

After four years of services as a Codeproject MVP, toxcct is now taking some distance as he doesn't like how things are going on the forums. he particularly doesn't accept how some totally ignorant people got the MVP Reward by only being arrogant and insulting while replying on the technical forums.



Comments and Discussions