📄 eval_8cpp-source.html
字号:
00122 00123 <span class="keywordflow">if</span> (sym == <span class="stringliteral">"if"</span>) <span class="comment">// check the symbol is if or not</span>00124 { 00125 <span class="keywordflow">if</span>(<a class="code" href="cons_8hpp.html#a8">nullp</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr))) <span class="comment">// check the case (if)</span>00126 {00127 cerr << <span class="stringliteral">"ERROR:Should not be Null"</span><<endl;00128 exit(1);00129 }00130 00131 <span class="keywordflow">if</span>(<a class="code" href="cons_8hpp.html#a8">nullp</a>(<a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr)))) <span class="comment">// check the input is empty list or not</span>00132 {00133 cerr << <span class="stringliteral">"ERROR:Should not be Null"</span><<endl;00134 exit(1);00135 } 00136 00137 <span class="keywordflow">if</span>(<a class="code" href="cons_8hpp.html#a5">intp</a>(<a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr)))) <span class="comment">// check the input is integer </span>00138 { 00139 <span class="keywordflow">if</span>(<a class="code" href="cons_8hpp.html#a10">get_int</a>(<a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr)))== 0) <span class="comment">// check the input is 0 </span>00140 { 00141 <span class="keywordflow">if</span>(<a class="code" href="cons_8hpp.html#a8">nullp</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr))))) <span class="comment">// check input is empty list e.g. (if 0 1) </span>00142 {00143 cerr << <span class="stringliteral">"ERROR:Not enough operands"</span><<endl;00144 exit(1);00145 }00146 <span class="keywordflow">if</span>(<a class="code" href="cons_8hpp.html#a8">nullp</a>(<a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr)))))) <span class="comment">//check input is empty list e.g. (if 0 9 ())</span>00147 {00148 cerr <<<span class="stringliteral">"ERROR:Not enough operands"</span><<endl;00149 exit(1);00150 }00151 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr))));00152 }00153 00154 <span class="keywordflow">if</span> (<a class="code" href="cons_8hpp.html#a8">nullp</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr)))) <span class="comment">// check input is empty list e.g.(if 1 )</span>00155 {00156 cerr<< <span class="stringliteral">"ERROR锛歂ot enough operands"</span> <<endl;00157 exit(1);00158 }00159 00160 <span class="keywordflow">if</span> (<a class="code" href="cons_8hpp.html#a8">nullp</a> (<a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr))))) <span class="comment">// check input is empty list e.g.(if 1 () 3)</span>00161 {00162 cerr<< <span class="stringliteral">"ERROR锛歂ot enough operands"</span> <<endl;00163 exit(1);00164 }00165 00166 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr)));00167 }00168 00169 <span class="keywordflow">if</span> (<a class="code" href="cons_8hpp.html#a6">doublep</a>(<a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr)))) <span class="comment">// check the input is double</span>00170 {00171 <span class="keywordflow">if</span>(<a class="code" href="cons_8hpp.html#a11">get_double</a>(<a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr)))== 0.0) <span class="comment">//check the input is 0.0 </span>00172 { 00173 <span class="keywordflow">if</span>(<a class="code" href="cons_8hpp.html#a8">nullp</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr))))) <span class="comment">// check input is empty list e.g. (if 0.0 1)</span>00174 {00175 cerr << <span class="stringliteral">"ERROR:Not enough operands"</span><<endl;00176 exit(1);00177 }00178 00179 <span class="keywordflow">if</span>(<a class="code" href="cons_8hpp.html#a8">nullp</a>(<a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr)))))) <span class="comment">//check input is empty list e.g. (if 0.0 9 ())</span>00180 {00181 cerr <<<span class="stringliteral">"ERROR:Not enough operands"</span><<endl;00182 exit(1);00183 }00184 00185 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr))));00186 }00187 00188 <span class="keywordflow">if</span> (<a class="code" href="cons_8hpp.html#a8">nullp</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr)))) <span class="comment">// check input is empty list e.g.(if 1.2 )</span>00189 {00190 cerr<< <span class="stringliteral">"ERROR锛歂ot enough operands"</span> <<endl;00191 exit(1);00192 }00193 <span class="keywordflow">if</span> (<a class="code" href="cons_8hpp.html#a8">nullp</a> (<a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr))))) <span class="comment">// check input is empty list e.g.(if 1.2 () 3)</span>00194 {00195 cerr<< <span class="stringliteral">"ERROR锛歂ot enough operands"</span> <<endl;00196 exit(1);00197 }00198 00199 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr)));00200 }00201 00202 00203 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="cons_8hpp.html#a13">car</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr))); 00204 } 00205 00206 00207 curr = <a class="code" href="cons_8hpp.html#a14">cdr</a> (curr);00208 00209 <span class="keywordflow">if</span>(<a class="code" href="cons_8hpp.html#a8">nullp</a>(<a class="code" href="cons_8hpp.html#a14">cdr</a>(curr)))00210 <span class="keywordflow">break</span>;00211 <span class="comment">// if (listp(car(curr))) { cout << " here 2 " << endl;first = false;}</span>00212 00213 }00214 00215 00216 <span class="keywordflow">if</span>(type == <span class="stringliteral">"double"</span>)00217 <span class="keywordflow">return</span> <a class="code" href="cons_8hpp.html#a2">make_double</a>(resultd);00218 <span class="keywordflow">if</span>(type == <span class="stringliteral">"integer"</span>)00219 <span class="keywordflow">return</span> <a class="code" href="cons_8hpp.html#a1">make_int</a>(resulti); 00220 00221 }00222 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Mar 8 15:44:44 2007 for a1 by <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 + -