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

📄 cell_8cpp-source.html

📁 parser in C++~~~~~~~~~~~~
💻 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.cpp 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="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.cpp</h1><a href="Cell_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 00016 <span class="preprocessor">#include "<a class="code" href="Cell_8hpp.html">Cell.hpp</a>"</span>00017 <span class="comment">// Reminder: cons.hpp expects nil to be defined somewhere.  For this</span>00018 <span class="comment">// implementation, this is the logical place to define it.</span><a name="l00019"></a><a class="code" href="cons_8hpp.html#a0">00019</a> <a class="code" href="classCell.html">Cell</a>* <span class="keyword">const</span> <a class="code" href="Cell_8cpp.html#a0">nil</a> = 0;00020 <a name="l00021"></a><a class="code" href="classCell.html#a0">00021</a> <a class="code" href="classCell.html#a0">Cell::Cell</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> i) 00022 {00023         int_m = i;00024         tag_m = type_int;00025 }00026 <a name="l00027"></a><a class="code" href="classCell.html#a1">00027</a> <a class="code" href="classCell.html#a0">Cell::Cell</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> d)00028 {00029         double_m = d ;00030         tag_m = type_double;00031 }00032 <a name="l00033"></a><a class="code" href="classCell.html#a2">00033</a> <a class="code" href="classCell.html#a0">Cell::Cell</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> s)00034 {00035         symbol_m = <span class="keyword">new</span> <span class="keywordtype">char</span> [strlen(s)];00036         strcpy (symbol_m,s);00037         tag_m = type_symbol;00038 }00039 <a name="l00040"></a><a class="code" href="classCell.html#a3">00040</a> <a class="code" href="classCell.html#a0">Cell::Cell</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)00041 {00042         conspair_m.car = my_car;00043        conspair_m.cdr = my_cdr;00044         tag_m = type_conspair;       00045 }00046 <a name="l00047"></a><a class="code" href="classCell.html#a5">00047</a> <span class="keywordtype">bool</span> <a class="code" href="classCell.html#a5">Cell::is_int</a>()<span class="keyword"> const</span>00048 <span class="keyword"></span>{       <span class="keywordflow">if</span>(tag_m == type_int)00049                 <span class="keywordflow">return</span> <span class="keyword">true</span>;00050         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;00051 }00052 <a name="l00053"></a><a class="code" href="classCell.html#a6">00053</a> <span class="keywordtype">bool</span> <a class="code" href="classCell.html#a6">Cell::is_double</a>()<span class="keyword"> const</span>00054 <span class="keyword"></span>{00055         <span class="keywordflow">if</span>(tag_m==type_double)00056                 <span class="keywordflow">return</span> <span class="keyword">true</span>;00057         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;00058 }00059 <a name="l00060"></a><a class="code" href="classCell.html#a7">00060</a> <span class="keywordtype">bool</span> <a class="code" href="classCell.html#a7">Cell::is_symbol</a>()<span class="keyword"> const</span>00061 <span class="keyword"></span>{00062         <span class="keywordflow">if</span>(tag_m == type_symbol)00063                 <span class="keywordflow">return</span> <span class="keyword">true</span>;00064         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;00065 }00066 <a name="l00067"></a><a class="code" href="classCell.html#a8">00067</a> <span class="keywordtype">bool</span> <a class="code" href="classCell.html#a8">Cell::is_cons</a>()<span class="keyword"> const</span>00068 <span class="keyword"></span>{00069         <span class="keywordflow">if</span>(tag_m == type_conspair)00070                 <span class="keywordflow">return</span> <span class="keyword">true</span>;00071         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;00072 }00073 <a name="l00074"></a><a class="code" href="classCell.html#a9">00074</a> <span class="keywordtype">int</span> <a class="code" href="classCell.html#a9">Cell::get_int</a>()<span class="keyword"> const</span>00075 <span class="keyword"></span>{00076         <span class="keywordflow">if</span>(<a class="code" href="classCell.html#a5">is_int</a>())00077                 <span class="keywordflow">return</span> int_m;00078         <span class="keywordflow">else</span>{00079                 cerr&lt;&lt;<span class="stringliteral">"Error:It is not a integer"</span>&lt;&lt;endl;00080                         exit(1);00081         }00082 }00083 <a name="l00084"></a><a class="code" href="classCell.html#a10">00084</a> <span class="keywordtype">double</span> <a class="code" href="classCell.html#a10">Cell::get_double</a>()<span class="keyword"> const</span>00085 <span class="keyword"></span>{00086         <span class="keywordflow">if</span>(<a class="code" href="classCell.html#a6">is_double</a>())00087                 <span class="keywordflow">return</span> double_m;00088         <span class="keywordflow">else</span>{00089                 cerr&lt;&lt;<span class="stringliteral">"Error:It is not a double"</span>&lt;&lt;endl;00090                         exit(1);00091         }00092 }00093 <a name="l00094"></a><a class="code" href="classCell.html#a11">00094</a> string <a class="code" href="classCell.html#a11">Cell::get_symbol</a>()<span class="keyword"> const</span>00095 <span class="keyword"></span>{00096         <span class="keywordflow">if</span>(<a class="code" href="classCell.html#a7">is_symbol</a>())00097                 <span class="keywordflow">return</span> symbol_m;00098         <span class="keywordflow">else</span>{00099                 cerr&lt;&lt;<span class="stringliteral">"Error:It is not a symbol"</span>&lt;&lt;endl;00100                 exit(1);00101         }00102 }00103 <a name="l00104"></a><a class="code" href="classCell.html#a12">00104</a> <a class="code" href="classCell.html">Cell</a>* <a class="code" href="classCell.html#a12">Cell::get_car</a>()<span class="keyword"> const</span>00105 <span class="keyword"></span>{00106         <span class="keywordflow">if</span>(<a class="code" href="classCell.html#a8">is_cons</a>())00107                 <span class="keywordflow">return</span> conspair_m.car;00108         <span class="keywordflow">else</span> {00109                 cerr&lt;&lt;<span class="stringliteral">"Error:It is not a cell"</span>&lt;&lt;endl;00110                 exit(1);00111         }00112 }       00113 <a name="l00114"></a><a class="code" href="classCell.html#a13">00114</a> <a class="code" href="classCell.html">Cell</a>* <a class="code" href="classCell.html#a13">Cell::get_cdr</a>()<span class="keyword"> const</span>00115 <span class="keyword"></span>{00116         <span class="keywordflow">if</span>(<a class="code" href="classCell.html#a8">is_cons</a>())00117                 <span class="keywordflow">return</span> conspair_m.cdr;00118         <span class="keywordflow">else</span> {00119                 cerr&lt;&lt;<span class="stringliteral">"Error:It is not a cell"</span>&lt;&lt;endl;00120                 exit(1);00121         }00122 }00123 Cell :: ~Cell()00124 {00125         <span class="keywordflow">if</span> (<a class="code" href="classCell.html#a7">is_symbol</a>())00126                 <span class="keyword">delete</span> [] symbol_m;00127         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classCell.html#a8">is_cons</a>())00128         {00129                 <span class="keyword">delete</span> <a class="code" href="classCell.html#a12">get_car</a>();00130                 <span class="keywordflow">if</span> (<a class="code" href="classCell.html#a13">get_cdr</a>() == NULL)00131                         <span class="keyword">delete</span> <a class="code" href="classCell.html#a13">get_cdr</a>();00132         }00133 }                               <a name="l00134"></a><a class="code" href="classCell.html#a14">00134</a> <span class="keywordtype">void</span> <a class="code" href="classCell.html#a14">Cell::print</a>(ostream&amp; os)<span class="keyword"> const</span>00135 <span class="keyword"></span>{       00136         <span class="keywordflow">if</span> (<a class="code" href="classCell.html#a8">is_cons</a>())00137         {00138                 <span class="keywordflow">if</span> (<a class="code" href="classCell.html#a12">get_car</a>()-&gt;<a class="code" href="classCell.html#a7">is_symbol</a>())00139                         cout&lt;&lt;<span class="stringliteral">"("</span>;00140                         <a class="code" href="classCell.html#a12">get_car</a>()-&gt;<a class="code" href="classCell.html#a14">print</a>(os);00141                         cout&lt;&lt;<span class="stringliteral">" "</span>;                      00142                 <span class="keywordflow">if</span> (<a class="code" href="classCell.html#a13">get_cdr</a>() == NULL)00143                         cout&lt;&lt;<span class="stringliteral">")"</span>;00144                 <span class="keywordflow">else</span> 00145                         <a class="code" href="classCell.html#a13">get_cdr</a>()-&gt;<a class="code" href="classCell.html#a14">print</a>(os);   00146         }00147         00148         <span class="keywordflow">if</span> (<a class="code" href="classCell.html#a5">is_int</a>())00149                 cout&lt;&lt;<a class="code" href="classCell.html#a9">get_int</a>();00150         00151         <span class="keywordflow">if</span> (<a class="code" href="classCell.html#a6">is_double</a>())00152                 cout&lt;&lt;showpoint&lt;&lt;<a class="code" href="classCell.html#a10">get_double</a>();00153         00154         <span class="keywordflow">if</span>(<a class="code" href="classCell.html#a7">is_symbol</a>())00155                 cout&lt;&lt;symbol_m;00156 00157 }00158         00159 00160 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Mar 8 15:44:44 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 + -