⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cell_8hpp-source.html

📁 building parser with C++ functions
💻 HTML
字号:
<!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>a1: Cell.hpp Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.9.1 --><div class="qindex"><a class="qindex" href="index.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="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div><h1>Cell.hpp</h1><a href="Cell_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 00022 <span class="preprocessor">#ifndef CELL_HPP</span>00023 <span class="preprocessor"></span><span class="preprocessor">#define CELL_HPP</span>00024 <span class="preprocessor"></span>00025 <span class="preprocessor">#include &lt;cstddef&gt;</span>00026 <span class="preprocessor">#include &lt;cstdlib&gt;</span>00027 <span class="preprocessor">#include &lt;iostream&gt;</span>00028 <span class="preprocessor">#include &lt;fstream&gt;</span>00029 <span class="preprocessor">#include &lt;sstream&gt;</span>00030 <span class="preprocessor">#include &lt;string&gt;</span>00031 <span class="preprocessor">#include &lt;stack&gt;</span>00032 00033 <span class="keyword">using</span> <span class="keyword">namespace </span>std;00034 <a name="l00039"></a><a class="code" href="classCell.html">00039</a> <span class="keyword">class </span><a class="code" href="classCell.html">Cell</a> {00040 <span class="keyword">public</span>:00045         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> is_int() <span class="keyword">const</span>;00046 00051         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> is_double() <span class="keyword">const</span>;00052 00057         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> is_symbol() <span class="keyword">const</span>;00058 00063         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> is_cons() <span class="keyword">const</span>;00064 00069         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="cons_8hpp.html#a10">get_int</a>() <span class="keyword">const</span>;00070 00075         <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="cons_8hpp.html#a11">get_double</a>() <span class="keyword">const</span>;00076 00081         <span class="keyword">virtual</span> string <a class="code" href="cons_8hpp.html#a12">get_symbol</a>() <span class="keyword">const</span>;00082 00087         <span class="keyword">virtual</span> <a class="code" href="classCell.html">Cell</a>* get_car() <span class="keyword">const</span>;00088 00093         <span class="keyword">virtual</span> <a class="code" href="classCell.html">Cell</a>* get_cdr() <span class="keyword">const</span>;00094 00099         <span class="keyword">virtual</span> <span class="keywordtype">void</span> print(ostream&amp; os = cout) <span class="keyword">const </span>= 0;00100 00104         <span class="keyword">virtual</span> <a class="code" href="classCell.html">Cell</a>* cell_ceil() <span class="keyword">const</span>;00105 00109         <span class="keyword">virtual</span> <a class="code" href="classCell.html">Cell</a>* cell_floor() <span class="keyword">const</span>;00110 00114         <span class="keyword">virtual</span> <span class="keywordtype">void</span> cell_sum(<span class="keywordtype">int</span> &amp;i, <span class="keywordtype">double</span> &amp;result) <span class="keyword">const</span>;00115 00119         <span class="keyword">virtual</span> <span class="keywordtype">void</span> cell_times(<span class="keywordtype">int</span> &amp;i, <span class="keywordtype">double</span> &amp;result) <span class="keyword">const</span>;00120 00124         <span class="keyword">virtual</span> <span class="keywordtype">void</span> cell_sub(<span class="keywordtype">int</span> &amp;i, <span class="keywordtype">double</span> &amp;result) <span class="keyword">const</span>;00125 00129         <span class="keyword">virtual</span> <span class="keywordtype">void</span> cell_div(<span class="keywordtype">int</span> &amp;i, <span class="keywordtype">double</span> &amp;result) <span class="keyword">const</span>;00130 00134         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> is_zero() <span class="keyword">const</span>;00135 00136         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> is_list() <span class="keyword">const</span>;00137 };00138 <a name="l00139"></a><a class="code" href="classIntCell.html">00139</a> <span class="keyword">class </span><a class="code" href="classIntCell.html">IntCell</a>:<span class="keyword">public</span> <a class="code" href="classCell.html">Cell</a> {00140 <span class="keyword">private</span>:<a name="l00141"></a><a class="code" href="classIntCell.html#r0">00141</a>         <span class="keywordtype">int</span> int_m;00142 <span class="keyword">public</span>:00146         <a class="code" href="classIntCell.html#a0">IntCell</a> (<span class="keyword">const</span> <span class="keywordtype">int</span> i);00147 00152         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classIntCell.html#a1">is_int</a>() <span class="keyword">const</span>;00153 00158         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classIntCell.html#a2">get_int</a>() <span class="keyword">const</span>;00159 00164         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classIntCell.html#a3">print</a>(ostream&amp; os = cout) <span class="keyword">const</span>;00165 00169         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classIntCell.html#a4">cell_sum</a>(<span class="keywordtype">int</span> &amp;i, <span class="keywordtype">double</span> &amp;result) <span class="keyword">const</span>;00170 00174         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classIntCell.html#a5">cell_times</a>(<span class="keywordtype">int</span> &amp;i, <span class="keywordtype">double</span> &amp;result) <span class="keyword">const</span>;00175 00179         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classIntCell.html#a6">cell_sub</a>(<span class="keywordtype">int</span> &amp;i, <span class="keywordtype">double</span> &amp;result) <span class="keyword">const</span>;00180 00184         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classIntCell.html#a7">cell_div</a>(<span class="keywordtype">int</span> &amp;i, <span class="keywordtype">double</span> &amp;result) <span class="keyword">const</span>;00185 00189         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classIntCell.html#a8">is_zero</a>() <span class="keyword">const</span>;00190 };00191 <a name="l00192"></a><a class="code" href="classDoubleCell.html">00192</a> <span class="keyword">class </span><a class="code" href="classDoubleCell.html">DoubleCell</a>:<span class="keyword">public</span> <a class="code" href="classCell.html">Cell</a> {00193 <span class="keyword">private</span>:<a name="l00194"></a><a class="code" href="classDoubleCell.html#r0">00194</a>         <span class="keywordtype">double</span> double_m;00195 <span class="keyword">public</span>:00199         <a class="code" href="classDoubleCell.html#a0">DoubleCell</a> (<span class="keyword">const</span> <span class="keywordtype">double</span> d);00200 00205         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classDoubleCell.html#a1">is_double</a>() <span class="keyword">const</span>;00206 00211         <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classDoubleCell.html#a2">get_double</a>() <span class="keyword">const</span>;00212 00217         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classDoubleCell.html#a3">print</a>(ostream&amp; os = cout) <span class="keyword">const </span>;00218 00222         <span class="keyword">virtual</span> <a class="code" href="classCell.html">Cell</a>* <a class="code" href="classDoubleCell.html#a4">cell_ceil</a>() <span class="keyword">const</span>;00223 00227         <span class="keyword">virtual</span> <a class="code" href="classCell.html">Cell</a>* <a class="code" href="classDoubleCell.html#a5">cell_floor</a>() <span class="keyword">const</span>;00228 00232         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classDoubleCell.html#a6">cell_sum</a>(<span class="keywordtype">int</span> &amp;i, <span class="keywordtype">double</span> &amp;result) <span class="keyword">const</span>;00233 00237         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classDoubleCell.html#a7">cell_times</a>(<span class="keywordtype">int</span> &amp;i, <span class="keywordtype">double</span> &amp;result) <span class="keyword">const</span>;00238 00242         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classDoubleCell.html#a8">cell_sub</a>(<span class="keywordtype">int</span> &amp;i, <span class="keywordtype">double</span> &amp;result) <span class="keyword">const</span>;00243 00247         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classDoubleCell.html#a9">cell_div</a>(<span class="keywordtype">int</span> &amp;i, <span class="keywordtype">double</span> &amp;result) <span class="keyword">const</span>;00248 00252         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classDoubleCell.html#a10">is_zero</a>() <span class="keyword">const</span>;00253 };00254 <a name="l00255"></a><a class="code" href="classSymbolCell.html">00255</a> <span class="keyword">class </span><a class="code" href="classSymbolCell.html">SymbolCell</a>:<span class="keyword">public</span> <a class="code" href="classCell.html">Cell</a> {00256 <span class="keyword">private</span>:<a name="l00257"></a><a class="code" href="classSymbolCell.html#r0">00257</a>         <span class="keywordtype">char</span>* symbol_m;00258 <span class="keyword">public</span>:00262         <a class="code" href="classSymbolCell.html#a0">SymbolCell</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> s);00263 00268         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSymbolCell.html#a1">is_symbol</a>() <span class="keyword">const</span>;00269 00274         <span class="keyword">virtual</span> string <a class="code" href="classSymbolCell.html#a2">get_symbol</a>() <span class="keyword">const</span>;00275 00280         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSymbolCell.html#a3">print</a>(ostream&amp; os = cout) <span class="keyword">const</span>;00281 };00282 <a name="l00283"></a><a class="code" href="classConsCell.html">00283</a> <span class="keyword">class </span><a class="code" href="classConsCell.html">ConsCell</a>:<span class="keyword">public</span> <a class="code" href="classCell.html">Cell</a> {00284 <span class="keyword">private</span>:<a name="l00285"></a><a class="code" href="classConsCell.html#r0">00285</a>         <a class="code" href="classCell.html">Cell</a> *car;<a name="l00286"></a><a class="code" href="classConsCell.html#r1">00286</a>         <a class="code" href="classCell.html">Cell</a> *cdr;00287 <span class="keyword">public</span>:00291         <a class="code" href="classConsCell.html#a0">ConsCell</a> (<a class="code" href="classCell.html">Cell</a>* <span class="keyword">const</span> my_car, <a class="code" href="classCell.html">Cell</a>* <span class="keyword">const</span> my_cdr);00292 00297         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classConsCell.html#a1">is_cons</a>() <span class="keyword">const</span>;00298 00303         <span class="keyword">virtual</span> <a class="code" href="classCell.html">Cell</a>* <a class="code" href="classConsCell.html#a2">get_car</a>() <span class="keyword">const</span>;00304 00309         <span class="keyword">virtual</span> <a class="code" href="classCell.html">Cell</a>* <a class="code" href="classConsCell.html#a3">get_cdr</a>() <span class="keyword">const</span>;00310 00315         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classConsCell.html#a4">print</a>(ostream&amp; os = cout) <span class="keyword">const</span>;00316 00317         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classConsCell.html#a5">is_list</a>() <span class="keyword">const</span>;00318 };00319 <span class="comment">// Reminder: cons.hpp expects nil to be defined somewhere (for this</span>00320 <span class="comment">// implementation, Cell.cpp is the logical place to define it).</span>00321 <span class="comment">// Here we promise this again, just to be safe.</span>00322 <span class="keyword">extern</span> <a class="code" href="classCell.html">Cell</a>* <span class="keyword">const</span> nil;00323 00324 <span class="preprocessor">#endif // CELL_HPP</span>00325 <span class="preprocessor"></span>00326 00327 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 28 22:53:52 2007 for a1 by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -