<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>FAUST compiler: sigprint.hh File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.3 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> </div> <div class="contents"> <h1>sigprint.hh File Reference</h1><code>#include "<a class="el" href="signals_8hh_source.html">signals.hh</a>"</code><br/> <div class="dynheader"> Include dependency graph for sigprint.hh:</div> <div class="dynsection"> </div> <div class="dynheader"> This graph shows which files directly or indirectly include this file:</div> <div class="dynsection"> </div> <p><a href="sigprint_8hh_source.html">Go to the source code of this file.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sigprint_8hh.html#a546e151f0e299b49956b8f0aa10c83a4">printSigType</a> (int n, int v, int c)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sigprint_8hh.html#a2fd019e761a9699dc5a5c3a5538f7caf">printSignal</a> (<a class="el" href="classCTree.html">Tree</a> sig, FILE *out=stdout, int prec=0)</td></tr> </table> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a2fd019e761a9699dc5a5c3a5538f7caf"></a><!-- doxytag: member="sigprint.hh::printSignal" ref="a2fd019e761a9699dc5a5c3a5538f7caf" args="(Tree sig, FILE *out=stdout, int prec=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void printSignal </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>sig</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">FILE * </td> <td class="paramname"> <em>out</em> = <code>stdout</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>prec</em> = <code>0</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sigprint_8cpp_source.html#l00085">85</a> of file <a class="el" href="sigprint_8cpp_source.html">sigprint.cpp</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00086"></a>00086 { <a name="l00087"></a>00087 <span class="keywordtype">int</span> i; <a name="l00088"></a>00088 <span class="keywordtype">double</span> r; <a name="l00089"></a>00089 <a class="code" href="classCTree.html" title="A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches...">Tree</a> x, y, z, u, le, id; <a name="l00090"></a>00090 <a name="l00091"></a>00091 <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a75cc925deac1e031e75ae72271dd5995">isSigInt</a>(sig, &i) ) { fprintf(out, <span class="stringliteral">"%d"</span>, i); } <a name="l00092"></a>00092 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a305497ed8593020624204f9d359743f2">isSigReal</a>(sig, &r) ) { fprintf(out, <span class="stringliteral">"%f"</span>, r); } <a name="l00093"></a>00093 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a38254d67a0541d98c6097fd51b22ea45">isSigInput</a>(sig, &i) ) { fprintf(out, <span class="stringliteral">"IN%d"</span>, i); } <a name="l00094"></a>00094 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a1415deb58619ab50a536d7f2ce425f22">isSigOutput</a>(sig, &i, x) ) { fprintf(out, <span class="stringliteral">"OUT%d := "</span>, i); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x, out, 0); } <a name="l00095"></a>00095 <a name="l00096"></a>00096 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a8705584c3c319be54be73dc391d25634">isSigBinOp</a>(sig, &i, x, y) ) { <a name="l00097"></a>00097 <span class="keywordflow">if</span> (prec > <a class="code" href="sigprint_8cpp.html#a2929d022df4523fdfeb4e74c22f2969e">binopprec</a>[i]) fputs(<span class="stringliteral">"("</span>, out); <a name="l00098"></a>00098 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,<a class="code" href="sigprint_8cpp.html#a2929d022df4523fdfeb4e74c22f2969e">binopprec</a>[i]); fputs(<a class="code" href="sigprint_8cpp.html#a53ad8cf0a6c72175f512aff5fcda1c26">binopname</a>[i], out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y, out, <a class="code" href="sigprint_8cpp.html#a2929d022df4523fdfeb4e74c22f2969e">binopprec</a>[i]); <a name="l00099"></a>00099 <span class="keywordflow">if</span> (prec > <a class="code" href="sigprint_8cpp.html#a2929d022df4523fdfeb4e74c22f2969e">binopprec</a>[i]) fputs(<span class="stringliteral">")"</span>, out); <a name="l00100"></a>00100 } <a name="l00101"></a>00101 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a0899d7e2a69a467b0dcf62242397367f">isSigDelay1</a>(sig, x) ) { fputs(<span class="stringliteral">"mem("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputs(<span class="stringliteral">")"</span>, out); } <a name="l00102"></a>00102 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a18895c816779682006a84aede438af29">isSigPrefix</a>(sig, x, y) ) { fputs(<span class="stringliteral">"prefix("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputs(<span class="stringliteral">","</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputs(<span class="stringliteral">")"</span>, out); } <a name="l00103"></a>00103 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#ad717966fe25735c5cf799e04338192b4">isSigAttach</a>(sig, x, y) ) { fputs(<span class="stringliteral">"attach("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputs(<span class="stringliteral">","</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputs(<span class="stringliteral">")"</span>, out); } <a name="l00104"></a>00104 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#af55cdefee258834b3b8f6c070d4970c9">isSigFixDelay</a>(sig, x, y) ) { <a name="l00105"></a>00105 <span class="keywordflow">if</span> (prec > 4) fputs(<span class="stringliteral">"("</span>, out); <a name="l00106"></a>00106 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,4); fputs(<span class="stringliteral">"@"</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y, out, 4); <a name="l00107"></a>00107 <span class="keywordflow">if</span> (prec > 4) fputs(<span class="stringliteral">")"</span>, out); <a name="l00108"></a>00108 } <a name="l00109"></a>00109 <a name="l00110"></a>00110 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a9b54e9177bb3726e06700649c3e5c05d">isProj</a>(sig, &i, x) ) { <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,prec); fprintf(out, <span class="stringliteral">"#%d"</span>, i); } <a name="l00111"></a>00111 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="recursive-tree_8cpp.html#a3a07093d0e487cc733adab39f6a18e78" title="is t a de Bruijn recursive reference">isRef</a>(sig, i) ) { fprintf(out, <span class="stringliteral">"$%d"</span>, i); } <a name="l00112"></a>00112 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="recursive-tree_8cpp.html#a3a07093d0e487cc733adab39f6a18e78" title="is t a de Bruijn recursive reference">isRef</a>(sig, x) ) { <a class="code" href="list_8cpp.html#a850f2e459a901e0c9908d3a3a54b306e">print</a>(x, out); } <a name="l00113"></a>00113 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="recursive-tree_8cpp.html#a4cb44c6e41e21da830e748dc35f16ba5" title="is t a de Bruijn recursive tree">isRec</a>(sig, le)) { fputs(<span class="stringliteral">"\\_."</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(le, out, prec); } <a name="l00114"></a>00114 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="recursive-tree_8cpp.html#a4cb44c6e41e21da830e748dc35f16ba5" title="is t a de Bruijn recursive tree">isRec</a>(sig, x, le)) { fputs(<span class="stringliteral">"\\"</span>, out); <a class="code" href="list_8cpp.html#a850f2e459a901e0c9908d3a3a54b306e">print</a>(x,out); fputs(<span class="stringliteral">"."</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(le, out, prec); } <a name="l00115"></a>00115 <a name="l00116"></a>00116 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#aa9b2ad7a65566fbc382d60e315b42740">isSigTable</a>(sig, <span class="keywordtype">id</span>, x, y) ) { fputs(<span class="stringliteral">"table("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputc(<span class="charliteral">','</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputc(<span class="charliteral">')'</span>, out); } <a name="l00117"></a>00117 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#ab5b22110acbd38b7d4634dc94bcc8d22">isSigWRTbl</a>(sig, <span class="keywordtype">id</span>, x, y, z) ){ <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputc(<span class="charliteral">'['</span>,out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputs(<span class="stringliteral">"] := ("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(z,out,0); fputc(<span class="charliteral">')'</span>, out); } <a name="l00118"></a>00118 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a9d9cbd375c200fa4e666de6ffb72dbca">isSigRDTbl</a>(sig, x, y) ) { <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputc(<span class="charliteral">'['</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputc(<span class="charliteral">']'</span>, out); } <a name="l00119"></a>00119 <a name="l00120"></a>00120 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="signals_8cpp.html#a95620993ef284f3e29f20ebcc3b0a08e">isSigDocConstantTbl</a>(sig,x,y)) { fputs(<span class="stringliteral">"sigDocConstantTbl("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputc(<span class="charliteral">','</span>, out); <a name="l00121"></a>00121 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputc(<span class="charliteral">')'</span>, out); } <a name="l00122"></a>00122 <a name="l00123"></a>00123 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="signals_8cpp.html#a4d843f58a403cb0802c2255489977396">isSigDocWriteTbl</a>(sig,x,y,z,u)) { fputs(<span class="stringliteral">"sigDocWriteTbl("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputc(<span class="charliteral">','</span>, out); <a name="l00124"></a>00124 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputc(<span class="charliteral">','</span>, out); <a name="l00125"></a>00125 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(z,out,0); fputc(<span class="charliteral">','</span>, out); <a name="l00126"></a>00126 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(u,out,0); fputc(<span class="charliteral">')'</span>, out); } <a name="l00127"></a>00127 <a name="l00128"></a>00128 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="signals_8cpp.html#aec3b01f2f3ae693b4422142a22e4d0af">isSigDocAccessTbl</a>(sig,x,y)) { fputs(<span class="stringliteral">"sigDocAccessTbl("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputc(<span class="charliteral">','</span>, out); <a name="l00129"></a>00129 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputc(<span class="charliteral">')'</span>, out); } <a name="l00130"></a>00130 <a name="l00131"></a>00131 <a name="l00132"></a>00132 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a771720237ca174a55a6823cc6623d602">isSigGen</a>(sig, x) ) { <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,prec); } <a name="l00133"></a>00133 <a name="l00134"></a>00134 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a3ef48f0da2ef5b8e3ee7371a1e4059ae">isSigIntCast</a>(sig, x) ) { fputs(<span class="stringliteral">"int("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputs(<span class="stringliteral">")"</span>, out); } <a name="l00135"></a>00135 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a52448156d86125bbc8de23d641217de2">isSigFloatCast</a>(sig, x) ) { fputs(<span class="stringliteral">"float("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputs(<span class="stringliteral">")"</span>, out); } <a name="l00136"></a>00136 <a name="l00137"></a>00137 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="list_8hh.html#a8bdd73641276e0c0f999f504348eacc1">isList</a>(sig)) { <a name="l00138"></a>00138 <span class="keywordtype">char</span> sep = <span class="charliteral">'{'</span>; <a name="l00139"></a>00139 <span class="keywordflow">do</span> { <a name="l00140"></a>00140 fputc(sep, out); <a name="l00141"></a>00141 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(<a class="code" href="list_8hh.html#a067ad6f83087b420a1c44e48e56be389">hd</a>(sig), out, 0); <a name="l00142"></a>00142 sep=<span class="charliteral">','</span>; <a name="l00143"></a>00143 sig = <a class="code" href="list_8hh.html#a4075748f5c7156306ec898795313a2e0">tl</a>(sig); <a name="l00144"></a>00144 } <span class="keywordflow">while</span> (<a class="code" href="list_8hh.html#a8bdd73641276e0c0f999f504348eacc1">isList</a>(sig)); <a name="l00145"></a>00145 fputc(<span class="charliteral">'}'</span>, out); <a name="l00146"></a>00146 } <a name="l00147"></a>00147 <span class="keywordflow">else</span> <a name="l00148"></a>00148 <a class="code" href="list_8cpp.html#a850f2e459a901e0c9908d3a3a54b306e">print</a>(sig, out); <a name="l00149"></a>00149 } </pre></div></p> </div> </div> <a class="anchor" id="a546e151f0e299b49956b8f0aa10c83a4"></a><!-- doxytag: member="sigprint.hh::printSigType" ref="a546e151f0e299b49956b8f0aa10c83a4" args="(int n, int v, int c)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void printSigType </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>n</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>v</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>c</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sigprint_8cpp_source.html#l00064">64</a> of file <a class="el" href="sigprint_8cpp_source.html">sigprint.cpp</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00065"></a>00065 { <a name="l00066"></a>00066 putchar(<span class="stringliteral">"NR"</span>[n]); <a name="l00067"></a>00067 putchar(<span class="stringliteral">"KB S"</span>[v]); <a name="l00068"></a>00068 putchar(<span class="stringliteral">"CI X"</span>[c]); <a name="l00069"></a>00069 } </pre></div></p> </div> </div> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Thu Apr 29 00:00:14 2010 for FAUST compiler by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address> </body> </html>