<!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: Compiler Class 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 class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> </div> <div class="contents"> <h1>Compiler Class Reference</h1><!-- doxytag: class="Compiler" --> <p><code>#include <<a class="el" href="compile_8hh_source.html">compile.hh</a>></code></p> <p>Inherited by <a class="el" href="classScalarCompiler.html">ScalarCompiler</a>.</p> <div class="dynheader"> Collaboration diagram for Compiler:</div> <div class="dynsection"> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="classCompiler-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a3ec4b139d880a9dd56656f072ba04687">Compiler</a> (const string &name, const string &super, int numInputs, int numOutputs, bool vec)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a824976df0ad98e86df380bf3713ef37f">Compiler</a> (<a class="el" href="classKlass.html">Klass</a> *k)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#ac06e6b6aa74c6da15efa3f0416df53b2">~Compiler</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#ad090565a1a134ba2d9ccab6fccfb6acc">compileMultiSignal</a> (<a class="el" href="classCTree.html">Tree</a> lsig)=0</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a0a282f00285b51971d41a6b7e3bd5f7c">compileSingleSignal</a> (<a class="el" href="classCTree.html">Tree</a> lsig)=0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKlass.html">Klass</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#acbc0eb4c3a063b96a0fe2c38014ee131">getClass</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a5c7a151a77ef3d9c22ba11b52017d6c5">setDescription</a> (<a class="el" href="classDescription.html">Description</a> *descr)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDescription.html">Description</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a495eb177be64e12faf4c24cd7239d0e9">getDescription</a> ()</td></tr> <tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a825249700edc26eac7eaa52790186f70">prepare</a> (<a class="el" href="classCTree.html">Tree</a> L0)=0</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a07c227f3f0e6751545c3c0af3b299d5d">prepare2</a> (<a class="el" href="classCTree.html">Tree</a> L0)=0</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a7682294288c38e7d56ef262052213779">addIncludeFile</a> (const string &str)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a5a2cfd7e795a98e66b31543e2b5225b5">addLibrary</a> (const string &str)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a4532f2ccb5ae6b5bcef23029a01a86c2">addUIWidget</a> (<a class="el" href="classCTree.html">Tree</a> path, <a class="el" href="classCTree.html">Tree</a> widget)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a widget with a certain path to the user interface tree. <a href="#a4532f2ccb5ae6b5bcef23029a01a86c2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a04e71115fb646ad756b60a3169267863">generateWidgetCode</a> (<a class="el" href="classCTree.html">Tree</a> fulllabel, <a class="el" href="classCTree.html">Tree</a> varname, <a class="el" href="classCTree.html">Tree</a> sig)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generate buildUserInterface C++ lines of code corresponding to user interface widget t. <a href="#a04e71115fb646ad756b60a3169267863"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#ae994f402a26a38796eab173a1028804e">generateUserInterfaceTree</a> (<a class="el" href="classCTree.html">Tree</a> t)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generate buildUserInterface C++ lines of code corresponding to user interface element t. <a href="#ae994f402a26a38796eab173a1028804e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a990c992c382168071403c21f31c117ee">generateUserInterfaceElements</a> (<a class="el" href="classCTree.html">Tree</a> elements)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Iterate generateUserInterfaceTree on a list of user interface elements. <a href="#a990c992c382168071403c21f31c117ee"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a4e6876486af1cf65dc633fd3b99aba85">prepareUserInterfaceTree</a> (<a class="el" href="classCTree.html">Tree</a> t)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Remove fake root folder if not needed (that is if the UI is completely enclosed in one folder. <a href="#a4e6876486af1cf65dc633fd3b99aba85"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a83bb12b7d930bd1b574e35202f5d3da6">generateMacroInterfaceTree</a> (const string &pathname, <a class="el" href="classCTree.html">Tree</a> t)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generate user interface macros corresponding to user interface element t. <a href="#a83bb12b7d930bd1b574e35202f5d3da6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a4904be552402fc21847bd5026cc23a62">generateMacroInterfaceElements</a> (const string &pathname, <a class="el" href="classCTree.html">Tree</a> elements)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Iterate generateMacroInterfaceTree on a list of user interface elements. <a href="#a4904be552402fc21847bd5026cc23a62"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#abafd4cec7ee4807031766e86f889e5d5">generateWidgetMacro</a> (const string &pathname, <a class="el" href="classCTree.html">Tree</a> fulllabel, <a class="el" href="classCTree.html">Tree</a> varname, <a class="el" href="classCTree.html">Tree</a> sig)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generate user interface macros corresponding to a user interface widget. <a href="#abafd4cec7ee4807031766e86f889e5d5"></a><br/></td></tr> <tr><td colspan="2"><h2>Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKlass.html">Klass</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a2a8d69c98d96b9015d861617a6faadcc">fNeedToDeleteClass</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a2b8004ea1fd5b86ded1a093e7c5eb70d">fUIRoot</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDescription.html">Description</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCompiler.html#a8a23c67dd7d72d5aa6353d29de84b711">fDescription</a></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Definition at line <a class="el" href="compile_8hh_source.html#l00050">50</a> of file <a class="el" href="compile_8hh_source.html">compile.hh</a>.</p> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a3ec4b139d880a9dd56656f072ba04687"></a><!-- doxytag: member="Compiler::Compiler" ref="a3ec4b139d880a9dd56656f072ba04687" args="(const string &name, const string &super, int numInputs, int numOutputs, bool vec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Compiler::Compiler </td> <td>(</td> <td class="paramtype">const string & </td> <td class="paramname"> <em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const string & </td> <td class="paramname"> <em>super</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>numInputs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>numOutputs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>vec</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="compile_8cpp_source.html#l00094">94</a> of file <a class="el" href="compile_8cpp_source.html">compile.cpp</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00095"></a>00095 : <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>(<span class="keyword">new</span> <a class="code" href="classKlass.html">Klass</a>(<a class="code" href="symbol_8hh.html#a8243134fbbd9d924ebbb3f833922e310" title="Returns the name of a symbol.">name</a>, super, numInputs, numOutputs, vec)), <a name="l00096"></a>00096 <a class="code" href="classCompiler.html#a2a8d69c98d96b9015d861617a6faadcc">fNeedToDeleteClass</a>(<span class="keyword">true</span>), <a name="l00097"></a>00097 <a class="code" href="classCompiler.html#a2b8004ea1fd5b86ded1a093e7c5eb70d">fUIRoot</a>(<a class="code" href="uitree_8cpp.html#a47f382e8177f7b9d6b9a315d9e033823">uiFolder</a>(<a class="code" href="list_8hh.html#ae1ed153946fcfc025009c6d9c9c40bee">cons</a>(<a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>(0), <a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"$0"</span>, <a class="code" href="compile_8cpp.html#ac8a7f14cf003853871e19ebab4cfaaf3">gMasterName</a>))))), <a name="l00098"></a>00098 <a class="code" href="classCompiler.html#a8a23c67dd7d72d5aa6353d29de84b711">fDescription</a>(0) <a name="l00099"></a>00099 {} </pre></div></p> </div> </div> <a class="anchor" id="a824976df0ad98e86df380bf3713ef37f"></a><!-- doxytag: member="Compiler::Compiler" ref="a824976df0ad98e86df380bf3713ef37f" args="(Klass *k)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Compiler::Compiler </td> <td>(</td> <td class="paramtype"><a class="el" href="classKlass.html">Klass</a> * </td> <td class="paramname"> <em>k</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="compile_8cpp_source.html#l00101">101</a> of file <a class="el" href="compile_8cpp_source.html">compile.cpp</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00102"></a>00102 : <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>(k), <a name="l00103"></a>00103 <a class="code" href="classCompiler.html#a2a8d69c98d96b9015d861617a6faadcc">fNeedToDeleteClass</a>(<span class="keyword">false</span>), <a name="l00104"></a>00104 <a class="code" href="classCompiler.html#a2b8004ea1fd5b86ded1a093e7c5eb70d">fUIRoot</a>(<a class="code" href="uitree_8cpp.html#a47f382e8177f7b9d6b9a315d9e033823">uiFolder</a>(<a class="code" href="list_8hh.html#ae1ed153946fcfc025009c6d9c9c40bee">cons</a>(<a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>(0), <a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"$0"</span>, <a class="code" href="compile_8cpp.html#ac8a7f14cf003853871e19ebab4cfaaf3">gMasterName</a>))))), <a name="l00105"></a>00105 <a class="code" href="classCompiler.html#a8a23c67dd7d72d5aa6353d29de84b711">fDescription</a>(0) <a name="l00106"></a>00106 {} </pre></div></p> </div> </div> <a class="anchor" id="ac06e6b6aa74c6da15efa3f0416df53b2"></a><!-- doxytag: member="Compiler::~Compiler" ref="ac06e6b6aa74c6da15efa3f0416df53b2" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Compiler::~Compiler </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="compile_8cpp_source.html#l00109">109</a> of file <a class="el" href="compile_8cpp_source.html">compile.cpp</a>.</p> <p>References <a class="el" href="compile_8hh_source.html#l00053">fClass</a>, and <a class="el" href="compile_8hh_source.html#l00054">fNeedToDeleteClass</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00110"></a>00110 { <a name="l00111"></a>00111 <span class="keywordflow">if</span> (<a class="code" href="classCompiler.html#a2a8d69c98d96b9015d861617a6faadcc">fNeedToDeleteClass</a>) <span class="keyword">delete</span> <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>; <a name="l00112"></a>00112 } </pre></div></p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a7682294288c38e7d56ef262052213779"></a><!-- doxytag: member="Compiler::addIncludeFile" ref="a7682294288c38e7d56ef262052213779" args="(const string &str)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Compiler::addIncludeFile </td> <td>(</td> <td class="paramtype">const string & </td> <td class="paramname"> <em>str</em></td> <td> ) </td> <td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="compile_8hh_source.html#l00077">77</a> of file <a class="el" href="compile_8hh_source.html">compile.hh</a>.</p> <p>References <a class="el" href="klass_8hh_source.html#l00122">Klass::addIncludeFile()</a>, and <a class="el" href="compile_8hh_source.html#l00053">fClass</a>.</p> <p>Referenced by <a class="el" href="compile__scal_8cpp_source.html#l00313">ScalarCompiler::generateFConst()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00379">ScalarCompiler::generateFFun()</a>, and <a class="el" href="compile__scal_8cpp_source.html#l00332">ScalarCompiler::generateFVar()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00077"></a>00077 { <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a84e4e28d9af7ec06773f66f2a1ce218f">addIncludeFile</a>(str); } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a5a2cfd7e795a98e66b31543e2b5225b5"></a><!-- doxytag: member="Compiler::addLibrary" ref="a5a2cfd7e795a98e66b31543e2b5225b5" args="(const string &str)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Compiler::addLibrary </td> <td>(</td> <td class="paramtype">const string & </td> <td class="paramname"> <em>str</em></td> <td> ) </td> <td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="compile_8hh_source.html#l00078">78</a> of file <a class="el" href="compile_8hh_source.html">compile.hh</a>.</p> <p>References <a class="el" href="klass_8hh_source.html#l00124">Klass::addLibrary()</a>, and <a class="el" href="compile_8hh_source.html#l00053">fClass</a>.</p> <p>Referenced by <a class="el" href="compile__scal_8cpp_source.html#l00379">ScalarCompiler::generateFFun()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00078"></a>00078 { <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#afff14e4a4d2d46dda0259e1423636539">addLibrary</a>(str); } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a4532f2ccb5ae6b5bcef23029a01a86c2"></a><!-- doxytag: member="Compiler::addUIWidget" ref="a4532f2ccb5ae6b5bcef23029a01a86c2" args="(Tree path, Tree widget)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Compiler::addUIWidget </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>widget</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Add a widget with a certain path to the user interface tree. </p> <p>Definition at line <a class="el" href="compile_8cpp_source.html#l00123">123</a> of file <a class="el" href="compile_8cpp_source.html">compile.cpp</a>.</p> <p>References <a class="el" href="compile_8hh_source.html#l00055">fUIRoot</a>, and <a class="el" href="uitree_8cpp_source.html#l00186">putSubFolder()</a>.</p> <p>Referenced by <a class="el" href="compile__scal_8cpp_source.html#l00498">ScalarCompiler::generateButton()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00507">ScalarCompiler::generateCheckbox()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00572">ScalarCompiler::generateHBargraph()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00526">ScalarCompiler::generateHSlider()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00535">ScalarCompiler::generateNumEntry()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00545">ScalarCompiler::generateVBargraph()</a>, and <a class="el" href="compile__scal_8cpp_source.html#l00517">ScalarCompiler::generateVSlider()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00124"></a>00124 { <a name="l00125"></a>00125 <a class="code" href="classCompiler.html#a2b8004ea1fd5b86ded1a093e7c5eb70d">fUIRoot</a> = <a class="code" href="uitree_8cpp.html#ad53d2cd2df3266b315182623682b5111">putSubFolder</a>(<a class="code" href="classCompiler.html#a2b8004ea1fd5b86ded1a093e7c5eb70d">fUIRoot</a>, path, widget); <a name="l00126"></a>00126 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="ad090565a1a134ba2d9ccab6fccfb6acc"></a><!-- doxytag: member="Compiler::compileMultiSignal" ref="ad090565a1a134ba2d9ccab6fccfb6acc" args="(Tree lsig)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Compiler::compileMultiSignal </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>lsig</em></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Implemented in <a class="el" href="classScalarCompiler.html#a3870aba6cb3a4ba4092a6fd1f1e01bb3">ScalarCompiler</a>, and <a class="el" href="classVectorCompiler.html#aed983c23776dfd40264a14ee750f2c4c">VectorCompiler</a>.</p> <p>Referenced by <a class="el" href="main_8cpp_source.html#l00475">main()</a>.</p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a0a282f00285b51971d41a6b7e3bd5f7c"></a><!-- doxytag: member="Compiler::compileSingleSignal" ref="a0a282f00285b51971d41a6b7e3bd5f7c" args="(Tree lsig)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Compiler::compileSingleSignal </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>lsig</em></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Implemented in <a class="el" href="classScalarCompiler.html#a3590109641b7970c68ea20d033471a41">ScalarCompiler</a>.</p> </div> </div> <a class="anchor" id="a4904be552402fc21847bd5026cc23a62"></a><!-- doxytag: member="Compiler::generateMacroInterfaceElements" ref="a4904be552402fc21847bd5026cc23a62" args="(const string &pathname, Tree elements)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Compiler::generateMacroInterfaceElements </td> <td>(</td> <td class="paramtype">const string & </td> <td class="paramname"> <em>pathname</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>elements</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Iterate generateMacroInterfaceTree on a list of user interface elements. </p> <p>Definition at line <a class="el" href="compile_8cpp_source.html#l00437">437</a> of file <a class="el" href="compile_8cpp_source.html">compile.cpp</a>.</p> <p>References <a class="el" href="compile_8cpp_source.html#l00410">generateMacroInterfaceTree()</a>, <a class="el" href="list_8hh_source.html#l00133">hd()</a>, <a class="el" href="list_8hh_source.html#l00137">isNil()</a>, <a class="el" href="list_8hh_source.html#l00171">right()</a>, and <a class="el" href="list_8hh_source.html#l00134">tl()</a>.</p> <p>Referenced by <a class="el" href="compile_8cpp_source.html#l00410">generateMacroInterfaceTree()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00438"></a>00438 { <a name="l00439"></a>00439 <span class="keywordflow">while</span> (!<a class="code" href="list_8hh.html#a2569c3a07bbbfa55e0afde62de62aeec">isNil</a>(elements)) { <a name="l00440"></a>00440 <a class="code" href="classCompiler.html#a83bb12b7d930bd1b574e35202f5d3da6" title="Generate user interface macros corresponding to user interface element t.">generateMacroInterfaceTree</a>(pathname, <a class="code" href="list_8hh.html#a098460d0916242eebda50610e2a86e39">right</a>(<a class="code" href="list_8hh.html#a067ad6f83087b420a1c44e48e56be389">hd</a>(elements))); <a name="l00441"></a>00441 elements = <a class="code" href="list_8hh.html#a4075748f5c7156306ec898795313a2e0">tl</a>(elements); <a name="l00442"></a>00442 } <a name="l00443"></a>00443 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a83bb12b7d930bd1b574e35202f5d3da6"></a><!-- doxytag: member="Compiler::generateMacroInterfaceTree" ref="a83bb12b7d930bd1b574e35202f5d3da6" args="(const string &pathname, Tree t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Compiler::generateMacroInterfaceTree </td> <td>(</td> <td class="paramtype">const string & </td> <td class="paramname"> <em>pathname</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Generate user interface macros corresponding to user interface element t. </p> <p>Definition at line <a class="el" href="compile_8cpp_source.html#l00410">410</a> of file <a class="el" href="compile_8cpp_source.html">compile.cpp</a>.</p> <p>References <a class="el" href="compile_8cpp_source.html#l00437">generateMacroInterfaceElements()</a>, <a class="el" href="compile_8cpp_source.html#l00450">generateWidgetMacro()</a>, <a class="el" href="uitree_8cpp_source.html#l00136">isUiFolder()</a>, <a class="el" href="uitree_8cpp_source.html#l00141">isUiWidget()</a>, <a class="el" href="list_8hh_source.html#l00171">right()</a>, and <a class="el" href="tree_8cpp_source.html#l00292">tree2str()</a>.</p> <p>Referenced by <a class="el" href="compile__vect_8cpp_source.html#l00032">VectorCompiler::compileMultiSignal()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00129">ScalarCompiler::compileMultiSignal()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00157">ScalarCompiler::compileSingleSignal()</a>, and <a class="el" href="compile_8cpp_source.html#l00437">generateMacroInterfaceElements()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00411"></a>00411 { <a name="l00412"></a>00412 <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> label, elements, varname, sig; <a name="l00413"></a>00413 <a name="l00414"></a>00414 <span class="keywordflow">if</span> (<a class="code" href="uitree_8cpp.html#a56c557491c86ba3875400908b273669d">isUiFolder</a>(t, label, elements)) { <a name="l00415"></a>00415 <span class="keywordtype">string</span> pathname2 = pathname; <a name="l00416"></a>00416 <span class="comment">//string str = unquote(tree2str(right(label)));</span> <a name="l00417"></a>00417 <span class="keywordtype">string</span> str = <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(<a class="code" href="list_8hh.html#a098460d0916242eebda50610e2a86e39">right</a>(label)); <a name="l00418"></a>00418 <span class="keywordflow">if</span> (str.length()>0) pathname2 += str + <span class="stringliteral">"/"</span>; <a name="l00419"></a>00419 <a class="code" href="classCompiler.html#a4904be552402fc21847bd5026cc23a62" title="Iterate generateMacroInterfaceTree on a list of user interface elements.">generateMacroInterfaceElements</a>(pathname2, elements); <a name="l00420"></a>00420 <a name="l00421"></a>00421 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="uitree_8cpp.html#abfe657a3e623626aeecd89b4415c3dc5">isUiWidget</a>(t, label, varname, sig)) { <a name="l00422"></a>00422 <a name="l00423"></a>00423 <a class="code" href="classCompiler.html#abafd4cec7ee4807031766e86f889e5d5" title="Generate user interface macros corresponding to a user interface widget.">generateWidgetMacro</a>(pathname, label, varname, sig); <a name="l00424"></a>00424 <a name="l00425"></a>00425 } <span class="keywordflow">else</span> { <a name="l00426"></a>00426 <a name="l00427"></a>00427 fprintf(stderr, <span class="stringliteral">"error in user interface macro generation 2\n"</span>); <a name="l00428"></a>00428 exit(1); <a name="l00429"></a>00429 <a name="l00430"></a>00430 } <a name="l00431"></a>00431 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a990c992c382168071403c21f31c117ee"></a><!-- doxytag: member="Compiler::generateUserInterfaceElements" ref="a990c992c382168071403c21f31c117ee" args="(Tree elements)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Compiler::generateUserInterfaceElements </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>elements</em></td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Iterate generateUserInterfaceTree on a list of user interface elements. </p> <p>Definition at line <a class="el" href="compile_8cpp_source.html#l00315">315</a> of file <a class="el" href="compile_8cpp_source.html">compile.cpp</a>.</p> <p>References <a class="el" href="compile_8cpp_source.html#l00279">generateUserInterfaceTree()</a>, <a class="el" href="list_8hh_source.html#l00133">hd()</a>, <a class="el" href="list_8hh_source.html#l00137">isNil()</a>, <a class="el" href="list_8hh_source.html#l00171">right()</a>, and <a class="el" href="list_8hh_source.html#l00134">tl()</a>.</p> <p>Referenced by <a class="el" href="compile_8cpp_source.html#l00279">generateUserInterfaceTree()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00316"></a>00316 { <a name="l00317"></a>00317 <span class="keywordflow">while</span> (!<a class="code" href="list_8hh.html#a2569c3a07bbbfa55e0afde62de62aeec">isNil</a>(elements)) { <a name="l00318"></a>00318 <a class="code" href="classCompiler.html#ae994f402a26a38796eab173a1028804e" title="Generate buildUserInterface C++ lines of code corresponding to user interface element...">generateUserInterfaceTree</a>(<a class="code" href="list_8hh.html#a098460d0916242eebda50610e2a86e39">right</a>(<a class="code" href="list_8hh.html#a067ad6f83087b420a1c44e48e56be389">hd</a>(elements))); <a name="l00319"></a>00319 elements = <a class="code" href="list_8hh.html#a4075748f5c7156306ec898795313a2e0">tl</a>(elements); <a name="l00320"></a>00320 } <a name="l00321"></a>00321 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="ae994f402a26a38796eab173a1028804e"></a><!-- doxytag: member="Compiler::generateUserInterfaceTree" ref="ae994f402a26a38796eab173a1028804e" args="(Tree t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Compiler::generateUserInterfaceTree </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em></td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Generate buildUserInterface C++ lines of code corresponding to user interface element t. </p> <p>Definition at line <a class="el" href="compile_8cpp_source.html#l00279">279</a> of file <a class="el" href="compile_8cpp_source.html">compile.cpp</a>.</p> <p>References <a class="el" href="klass_8hh_source.html#l00140">Klass::addUICode()</a>, <a class="el" href="compile_8hh_source.html#l00053">fClass</a>, <a class="el" href="compile_8cpp_source.html#l00315">generateUserInterfaceElements()</a>, <a class="el" href="compile_8cpp_source.html#l00327">generateWidgetCode()</a>, <a class="el" href="uitree_8cpp_source.html#l00136">isUiFolder()</a>, <a class="el" href="uitree_8cpp_source.html#l00141">isUiWidget()</a>, <a class="el" href="list_8hh_source.html#l00170">left()</a>, <a class="el" href="list_8hh_source.html#l00171">right()</a>, <a class="el" href="Text_8cpp_source.html#l00060">subst()</a>, <a class="el" href="tree_8cpp_source.html#l00244">tree2int()</a>, and <a class="el" href="tree_8cpp_source.html#l00292">tree2str()</a>.</p> <p>Referenced by <a class="el" href="compile__vect_8cpp_source.html#l00032">VectorCompiler::compileMultiSignal()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00129">ScalarCompiler::compileMultiSignal()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00157">ScalarCompiler::compileSingleSignal()</a>, and <a class="el" href="compile_8cpp_source.html#l00315">generateUserInterfaceElements()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00280"></a>00280 { <a name="l00281"></a>00281 <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> label, elements, varname, sig; <a name="l00282"></a>00282 <a name="l00283"></a>00283 <span class="keywordflow">if</span> (<a class="code" href="uitree_8cpp.html#a56c557491c86ba3875400908b273669d">isUiFolder</a>(t, label, elements)) { <a name="l00284"></a>00284 <span class="keyword">const</span> <span class="keywordtype">int</span> orient = <a class="code" href="tree_8cpp.html#a523bce65e2a281fe678f2362496061cf" title="if t has a node of type int, return it otherwise error">tree2int</a>(<a class="code" href="list_8hh.html#a626356b3c8f3e0130d0e043a1dd8547c">left</a>(label)); <a name="l00285"></a>00285 <span class="keyword">const</span> <span class="keywordtype">char</span> * str = <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(<a class="code" href="list_8hh.html#a098460d0916242eebda50610e2a86e39">right</a>(label)); <a name="l00286"></a>00286 <span class="keyword">const</span> <span class="keywordtype">char</span> * model; <a name="l00287"></a>00287 <a name="l00288"></a>00288 <span class="keywordflow">switch</span> (orient) { <a name="l00289"></a>00289 <span class="keywordflow">case</span> 0 : model = <span class="stringliteral">"interface->openVerticalBox(\"$0\");"</span>; <span class="keywordflow">break</span>; <a name="l00290"></a>00290 <span class="keywordflow">case</span> 1 : model = <span class="stringliteral">"interface->openHorizontalBox(\"$0\");"</span>; <span class="keywordflow">break</span>; <a name="l00291"></a>00291 <span class="keywordflow">case</span> 2 : model = <span class="stringliteral">"interface->openTabBox(\"$0\");"</span>; <span class="keywordflow">break</span>; <a name="l00292"></a>00292 <span class="keywordflow">default</span> : <a name="l00293"></a>00293 fprintf(stderr, <span class="stringliteral">"error in user interface generation 1\n"</span>); <a name="l00294"></a>00294 exit(1); <a name="l00295"></a>00295 } <a name="l00296"></a>00296 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a4ab1f4a7350e8aacbe405359a10ae6eb">addUICode</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(model, str)); <a name="l00297"></a>00297 <a class="code" href="classCompiler.html#a990c992c382168071403c21f31c117ee" title="Iterate generateUserInterfaceTree on a list of user interface elements.">generateUserInterfaceElements</a>(elements); <a name="l00298"></a>00298 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a4ab1f4a7350e8aacbe405359a10ae6eb">addUICode</a>(<span class="stringliteral">"interface->closeBox();"</span>); <a name="l00299"></a>00299 <a name="l00300"></a>00300 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="uitree_8cpp.html#abfe657a3e623626aeecd89b4415c3dc5">isUiWidget</a>(t, label, varname, sig)) { <a name="l00301"></a>00301 <a name="l00302"></a>00302 <a class="code" href="classCompiler.html#a04e71115fb646ad756b60a3169267863" title="Generate buildUserInterface C++ lines of code corresponding to user interface widget...">generateWidgetCode</a>(label, varname, sig); <a name="l00303"></a>00303 <a name="l00304"></a>00304 } <span class="keywordflow">else</span> { <a name="l00305"></a>00305 <a name="l00306"></a>00306 fprintf(stderr, <span class="stringliteral">"error in user interface generation 2\n"</span>); <a name="l00307"></a>00307 exit(1); <a name="l00308"></a>00308 <a name="l00309"></a>00309 } <a name="l00310"></a>00310 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a04e71115fb646ad756b60a3169267863"></a><!-- doxytag: member="Compiler::generateWidgetCode" ref="a04e71115fb646ad756b60a3169267863" args="(Tree fulllabel, Tree varname, Tree sig)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Compiler::generateWidgetCode </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>fulllabel</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>varname</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>sig</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Generate buildUserInterface C++ lines of code corresponding to user interface widget t. </p> <p>Definition at line <a class="el" href="compile_8cpp_source.html#l00327">327</a> of file <a class="el" href="compile_8cpp_source.html">compile.cpp</a>.</p> <p>References <a class="el" href="klass_8hh_source.html#l00140">Klass::addUICode()</a>, <a class="el" href="compile_8cpp_source.html#l00178">extractMetadata()</a>, <a class="el" href="compile_8hh_source.html#l00053">fClass</a>, <a class="el" href="klass_8hh_source.html#l00144">Klass::incUIActiveCount()</a>, <a class="el" href="klass_8hh_source.html#l00145">Klass::incUIPassiveCount()</a>, <a class="el" href="signals_8cpp_source.html#l00199">isSigButton()</a>, <a class="el" href="signals_8cpp_source.html#l00205">isSigCheckbox()</a>, <a class="el" href="signals_8cpp_source.html#l00274">isSigHBargraph()</a>, <a class="el" href="signals_8cpp_source.html#l00212">isSigHSlider()</a>, <a class="el" href="signals_8cpp_source.html#l00252">isSigNumEntry()</a>, <a class="el" href="signals_8cpp_source.html#l00280">isSigVBargraph()</a>, <a class="el" href="signals_8cpp_source.html#l00232">isSigVSlider()</a>, <a class="el" href="Text_8cpp_source.html#l00060">subst()</a>, <a class="el" href="Text_8cpp_source.html#l00163">T()</a>, <a class="el" href="tree_8cpp_source.html#l00260">tree2float()</a>, <a class="el" href="tree_8cpp_source.html#l00292">tree2str()</a>, and <a class="el" href="compile_8cpp_source.html#l00148">wdel()</a>.</p> <p>Referenced by <a class="el" href="compile_8cpp_source.html#l00279">generateUserInterfaceTree()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00328"></a>00328 { <a name="l00329"></a>00329 <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> path, c, x, y, z; <a name="l00330"></a>00330 <span class="keywordtype">string</span> label; <a name="l00331"></a>00331 map<string, set<string> > metadata; <a name="l00332"></a>00332 <a name="l00333"></a>00333 <a class="code" href="compile_8cpp.html#af40d9db717982956ede067d6eeab6105" title="Extracts metdata from a label : &#39;vol [unit: dB]&#39; -&gt; &#39;vol&#39; + metadata...">extractMetadata</a>(<a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(fulllabel), label, metadata); <a name="l00334"></a>00334 <a name="l00335"></a>00335 <span class="comment">// add metadata if any</span> <a name="l00336"></a>00336 <span class="keywordflow">for</span> (map<<span class="keywordtype">string</span>, set<string> >::iterator i = metadata.begin(); i != metadata.end(); i++) { <a name="l00337"></a>00337 <span class="keyword">const</span> <span class="keywordtype">string</span>& key = i->first; <a name="l00338"></a>00338 <span class="keyword">const</span> set<string>& values = i->second; <a name="l00339"></a>00339 <span class="keywordflow">for</span> (set<string>::iterator j = values.begin(); j != values.end(); j++) { <a name="l00340"></a>00340 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a4ab1f4a7350e8aacbe405359a10ae6eb">addUICode</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"interface->declare(&$0, \"$1\", \"$2\");"</span>, <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname), <a class="code" href="compile_8cpp.html#ae01701676fb3301fa2a53fccac7d87f9" title="Removes enclosing whitespaces : &#39; toto &#39; -&gt; &#39;toto&#39;.">wdel</a>(key) ,<a class="code" href="compile_8cpp.html#ae01701676fb3301fa2a53fccac7d87f9" title="Removes enclosing whitespaces : &#39; toto &#39; -&gt; &#39;toto&#39;.">wdel</a>(*j))); <a name="l00341"></a>00341 } <a name="l00342"></a>00342 } <a name="l00343"></a>00343 <a name="l00344"></a>00344 <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a9cb8af593289d910a1f8ec8a9c8d880f">isSigButton</a>(sig, path) ) { <a name="l00345"></a>00345 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a0ef0ecb4122ff38337b37b4238c13346">incUIActiveCount</a>(); <a name="l00346"></a>00346 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a4ab1f4a7350e8aacbe405359a10ae6eb">addUICode</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"interface->addButton(\"$0\", &$1);"</span>, label, <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname))); <a name="l00347"></a>00347 <a name="l00348"></a>00348 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a48996c1ce74258d499baae3d267078bc">isSigCheckbox</a>(sig, path) ) { <a name="l00349"></a>00349 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a0ef0ecb4122ff38337b37b4238c13346">incUIActiveCount</a>(); <a name="l00350"></a>00350 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a4ab1f4a7350e8aacbe405359a10ae6eb">addUICode</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"interface->addCheckButton(\"$0\", &$1);"</span>, label, <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname))); <a name="l00351"></a>00351 <a name="l00352"></a>00352 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#aac990f39e6a1d50e8e1de3b6f7701cfe">isSigVSlider</a>(sig, path,c,x,y,z) ) { <a name="l00353"></a>00353 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a0ef0ecb4122ff38337b37b4238c13346">incUIActiveCount</a>(); <a name="l00354"></a>00354 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a4ab1f4a7350e8aacbe405359a10ae6eb">addUICode</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"interface->addVerticalSlider(\"$0\", &$1, $2, $3, $4, $5);"</span>, <a name="l00355"></a>00355 label, <a name="l00356"></a>00356 <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname), <a name="l00357"></a>00357 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(c)), <a name="l00358"></a>00358 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(x)), <a name="l00359"></a>00359 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(y)), <a name="l00360"></a>00360 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(z)))); <a name="l00361"></a>00361 <a name="l00362"></a>00362 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#aaa72c718314a1ba2cee25a95c153e37d">isSigHSlider</a>(sig, path,c,x,y,z) ) { <a name="l00363"></a>00363 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a0ef0ecb4122ff38337b37b4238c13346">incUIActiveCount</a>(); <a name="l00364"></a>00364 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a4ab1f4a7350e8aacbe405359a10ae6eb">addUICode</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"interface->addHorizontalSlider(\"$0\", &$1, $2, $3, $4, $5);"</span>, <a name="l00365"></a>00365 label, <a name="l00366"></a>00366 <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname), <a name="l00367"></a>00367 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(c)), <a name="l00368"></a>00368 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(x)), <a name="l00369"></a>00369 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(y)), <a name="l00370"></a>00370 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(z)))); <a name="l00371"></a>00371 <a name="l00372"></a>00372 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#aa8476971aba67dfc3af7b5d11f974ef3">isSigNumEntry</a>(sig, path,c,x,y,z) ) { <a name="l00373"></a>00373 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a0ef0ecb4122ff38337b37b4238c13346">incUIActiveCount</a>(); <a name="l00374"></a>00374 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a4ab1f4a7350e8aacbe405359a10ae6eb">addUICode</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"interface->addNumEntry(\"$0\", &$1, $2, $3, $4, $5);"</span>, <a name="l00375"></a>00375 label, <a name="l00376"></a>00376 <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname), <a name="l00377"></a>00377 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(c)), <a name="l00378"></a>00378 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(x)), <a name="l00379"></a>00379 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(y)), <a name="l00380"></a>00380 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(z)))); <a name="l00381"></a>00381 <a name="l00382"></a>00382 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a667a345cf4efcba00fce5a06bc1e8299">isSigVBargraph</a>(sig, path,x,y,z) ) { <a name="l00383"></a>00383 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#acf8af34f07cac9b20bd3bb17e2e8c1f9">incUIPassiveCount</a>(); <a name="l00384"></a>00384 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a4ab1f4a7350e8aacbe405359a10ae6eb">addUICode</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"interface->addVerticalBargraph(\"$0\", &$1, $2, $3);"</span>, <a name="l00385"></a>00385 label, <a name="l00386"></a>00386 <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname), <a name="l00387"></a>00387 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(x)), <a name="l00388"></a>00388 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(y)))); <a name="l00389"></a>00389 <a name="l00390"></a>00390 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a5acf9dd03d1d0032e9486867876f1806">isSigHBargraph</a>(sig, path,x,y,z) ) { <a name="l00391"></a>00391 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#acf8af34f07cac9b20bd3bb17e2e8c1f9">incUIPassiveCount</a>(); <a name="l00392"></a>00392 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#a4ab1f4a7350e8aacbe405359a10ae6eb">addUICode</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"interface->addHorizontalBargraph(\"$0\", &$1, $2, $3);"</span>, <a name="l00393"></a>00393 label, <a name="l00394"></a>00394 <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname), <a name="l00395"></a>00395 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(x)), <a name="l00396"></a>00396 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(y)))); <a name="l00397"></a>00397 <a name="l00398"></a>00398 } <span class="keywordflow">else</span> { <a name="l00399"></a>00399 fprintf(stderr, <span class="stringliteral">"Error in generating widget code\n"</span>); <a name="l00400"></a>00400 exit(1); <a name="l00401"></a>00401 } <a name="l00402"></a>00402 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="abafd4cec7ee4807031766e86f889e5d5"></a><!-- doxytag: member="Compiler::generateWidgetMacro" ref="abafd4cec7ee4807031766e86f889e5d5" args="(const string &pathname, Tree fulllabel, Tree varname, Tree sig)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Compiler::generateWidgetMacro </td> <td>(</td> <td class="paramtype">const string & </td> <td class="paramname"> <em>pathname</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>fulllabel</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>varname</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>sig</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Generate user interface macros corresponding to a user interface widget. </p> <p>Definition at line <a class="el" href="compile_8cpp_source.html#l00450">450</a> of file <a class="el" href="compile_8cpp_source.html">compile.cpp</a>.</p> <p>References <a class="el" href="klass_8hh_source.html#l00142">Klass::addUIMacro()</a>, <a class="el" href="compile_8cpp_source.html#l00178">extractMetadata()</a>, <a class="el" href="compile_8hh_source.html#l00053">fClass</a>, <a class="el" href="signals_8cpp_source.html#l00199">isSigButton()</a>, <a class="el" href="signals_8cpp_source.html#l00205">isSigCheckbox()</a>, <a class="el" href="signals_8cpp_source.html#l00274">isSigHBargraph()</a>, <a class="el" href="signals_8cpp_source.html#l00212">isSigHSlider()</a>, <a class="el" href="signals_8cpp_source.html#l00252">isSigNumEntry()</a>, <a class="el" href="signals_8cpp_source.html#l00280">isSigVBargraph()</a>, <a class="el" href="signals_8cpp_source.html#l00232">isSigVSlider()</a>, <a class="el" href="Text_8cpp_source.html#l00060">subst()</a>, <a class="el" href="Text_8cpp_source.html#l00163">T()</a>, <a class="el" href="tree_8cpp_source.html#l00260">tree2float()</a>, and <a class="el" href="tree_8cpp_source.html#l00292">tree2str()</a>.</p> <p>Referenced by <a class="el" href="compile_8cpp_source.html#l00410">generateMacroInterfaceTree()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00451"></a>00451 { <a name="l00452"></a>00452 <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> path, c, x, y, z; <a name="l00453"></a>00453 <span class="keywordtype">string</span> label; <a name="l00454"></a>00454 map<string, set<string> > metadata; <a name="l00455"></a>00455 <a name="l00456"></a>00456 <a class="code" href="compile_8cpp.html#af40d9db717982956ede067d6eeab6105" title="Extracts metdata from a label : &#39;vol [unit: dB]&#39; -&gt; &#39;vol&#39; + metadata...">extractMetadata</a>(<a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(fulllabel), label, metadata); <a name="l00457"></a>00457 <a name="l00458"></a>00458 <span class="comment">//string pathlabel = pathname+unquote(label);</span> <a name="l00459"></a>00459 <span class="keywordtype">string</span> pathlabel = pathname+label; <a name="l00460"></a>00460 <a name="l00461"></a>00461 <a name="l00462"></a>00462 <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a9cb8af593289d910a1f8ec8a9c8d880f">isSigButton</a>(sig, path) ) { <a name="l00463"></a>00463 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#aecbcf0553366bd13201f92a9a1b94ecd">addUIMacro</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"FAUST_ADDBUTTON(\"$0\", $1);"</span>, pathlabel, <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname))); <a name="l00464"></a>00464 <a name="l00465"></a>00465 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a48996c1ce74258d499baae3d267078bc">isSigCheckbox</a>(sig, path) ) { <a name="l00466"></a>00466 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#aecbcf0553366bd13201f92a9a1b94ecd">addUIMacro</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"FAUST_ADDCHECKBOX(\"$0\", $1);"</span>, pathlabel, <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname))); <a name="l00467"></a>00467 <a name="l00468"></a>00468 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#aac990f39e6a1d50e8e1de3b6f7701cfe">isSigVSlider</a>(sig, path,c,x,y,z) ) { <a name="l00469"></a>00469 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#aecbcf0553366bd13201f92a9a1b94ecd">addUIMacro</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"FAUST_ADDVERTICALSLIDER(\"$0\", $1, $2, $3, $4, $5);"</span>, <a name="l00470"></a>00470 pathlabel, <a name="l00471"></a>00471 <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname), <a name="l00472"></a>00472 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(c)), <a name="l00473"></a>00473 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(x)), <a name="l00474"></a>00474 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(y)), <a name="l00475"></a>00475 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(z)))); <a name="l00476"></a>00476 <a name="l00477"></a>00477 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#aaa72c718314a1ba2cee25a95c153e37d">isSigHSlider</a>(sig, path,c,x,y,z) ) { <a name="l00478"></a>00478 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#aecbcf0553366bd13201f92a9a1b94ecd">addUIMacro</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"FAUST_ADDHORIZONTALSLIDER(\"$0\", $1, $2, $3, $4, $5);"</span>, <a name="l00479"></a>00479 pathlabel, <a name="l00480"></a>00480 <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname), <a name="l00481"></a>00481 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(c)), <a name="l00482"></a>00482 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(x)), <a name="l00483"></a>00483 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(y)), <a name="l00484"></a>00484 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(z)))); <a name="l00485"></a>00485 <a name="l00486"></a>00486 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#aa8476971aba67dfc3af7b5d11f974ef3">isSigNumEntry</a>(sig, path,c,x,y,z) ) { <a name="l00487"></a>00487 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#aecbcf0553366bd13201f92a9a1b94ecd">addUIMacro</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"FAUST_ADDNUMENTRY(\"$0\", $1, $2, $3, $4, $5);"</span>, <a name="l00488"></a>00488 pathlabel, <a name="l00489"></a>00489 <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname), <a name="l00490"></a>00490 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(c)), <a name="l00491"></a>00491 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(x)), <a name="l00492"></a>00492 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(y)), <a name="l00493"></a>00493 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(z)))); <a name="l00494"></a>00494 <a name="l00495"></a>00495 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a667a345cf4efcba00fce5a06bc1e8299">isSigVBargraph</a>(sig, path,x,y,z) ) { <a name="l00496"></a>00496 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#aecbcf0553366bd13201f92a9a1b94ecd">addUIMacro</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"FAUST_ADDVERTICALBARGRAPH(\"$0\", $1, $2, $3);"</span>, <a name="l00497"></a>00497 pathlabel, <a name="l00498"></a>00498 <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname), <a name="l00499"></a>00499 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(x)), <a name="l00500"></a>00500 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(y)))); <a name="l00501"></a>00501 <a name="l00502"></a>00502 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a5acf9dd03d1d0032e9486867876f1806">isSigHBargraph</a>(sig, path,x,y,z) ) { <a name="l00503"></a>00503 <a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>-><a class="code" href="classKlass.html#aecbcf0553366bd13201f92a9a1b94ecd">addUIMacro</a>(<a class="code" href="Text_8cpp.html#af50e951c134c2c98c4c75d687f8fca7a">subst</a>(<span class="stringliteral">"FAUST_ADDHORIZONTALBARGRAPH(\"$0\", $1, $2, $3);"</span>, <a name="l00504"></a>00504 pathlabel, <a name="l00505"></a>00505 <a class="code" href="tree_8cpp.html#ac753d60778175e30a86cba647db017ad" title="if t has a node of type symbol, return its name otherwise error">tree2str</a>(varname), <a name="l00506"></a>00506 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(x)), <a name="l00507"></a>00507 <a class="code" href="Text_8cpp.html#a16bacb907294be37af81cdf9aff4449a">T</a>(<a class="code" href="tree_8cpp.html#ad01262fc04f661b162d36b786419a849" title="if t has a node of type float, return it otherwise error">tree2float</a>(y)))); <a name="l00508"></a>00508 <a name="l00509"></a>00509 } <span class="keywordflow">else</span> { <a name="l00510"></a>00510 fprintf(stderr, <span class="stringliteral">"Error in generating widget code\n"</span>); <a name="l00511"></a>00511 exit(1); <a name="l00512"></a>00512 } <a name="l00513"></a>00513 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="acbc0eb4c3a063b96a0fe2c38014ee131"></a><!-- doxytag: member="Compiler::getClass" ref="acbc0eb4c3a063b96a0fe2c38014ee131" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classKlass.html">Klass</a>* Compiler::getClass </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="compile_8hh_source.html#l00067">67</a> of file <a class="el" href="compile_8hh_source.html">compile.hh</a>.</p> <p>References <a class="el" href="compile_8hh_source.html#l00053">fClass</a>.</p> <p>Referenced by <a class="el" href="main_8cpp_source.html#l00475">main()</a>, and <a class="el" href="compile__scal_8cpp_source.html#l00056">signal2klass()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00067"></a>00067 { <span class="keywordflow">return</span> (<a class="code" href="classKlass.html">Klass</a>*)<a class="code" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">fClass</a>; } </pre></div></p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a495eb177be64e12faf4c24cd7239d0e9"></a><!-- doxytag: member="Compiler::getDescription" ref="a495eb177be64e12faf4c24cd7239d0e9" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classDescription.html">Description</a>* Compiler::getDescription </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="compile_8hh_source.html#l00070">70</a> of file <a class="el" href="compile_8hh_source.html">compile.hh</a>.</p> <p>References <a class="el" href="compile_8hh_source.html#l00056">fDescription</a>.</p> <p>Referenced by <a class="el" href="main_8cpp_source.html#l00475">main()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00070"></a>00070 { <span class="keywordflow">return</span> <a class="code" href="classCompiler.html#a8a23c67dd7d72d5aa6353d29de84b711">fDescription</a>; } </pre></div></p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a825249700edc26eac7eaa52790186f70"></a><!-- doxytag: member="Compiler::prepare" ref="a825249700edc26eac7eaa52790186f70" args="(Tree L0)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="classCTree.html">Tree</a> Compiler::prepare </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>L0</em></td> <td> ) </td> <td><code> [protected, pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Implemented in <a class="el" href="classScalarCompiler.html#a7144aea17822337a175d660cd6def014">ScalarCompiler</a>.</p> </div> </div> <a class="anchor" id="a07c227f3f0e6751545c3c0af3b299d5d"></a><!-- doxytag: member="Compiler::prepare2" ref="a07c227f3f0e6751545c3c0af3b299d5d" args="(Tree L0)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="classCTree.html">Tree</a> Compiler::prepare2 </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>L0</em></td> <td> ) </td> <td><code> [protected, pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Implemented in <a class="el" href="classScalarCompiler.html#a38de9ca99a78eb0e82f149bbf4e03783">ScalarCompiler</a>.</p> </div> </div> <a class="anchor" id="a4e6876486af1cf65dc633fd3b99aba85"></a><!-- doxytag: member="Compiler::prepareUserInterfaceTree" ref="a4e6876486af1cf65dc633fd3b99aba85" args="(Tree t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCTree.html">Tree</a> Compiler::prepareUserInterfaceTree </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em></td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Remove fake root folder if not needed (that is if the UI is completely enclosed in one folder. </p> <p>Definition at line <a class="el" href="compile_8cpp_source.html#l00133">133</a> of file <a class="el" href="compile_8cpp_source.html">compile.cpp</a>.</p> <p>References <a class="el" href="list_8hh_source.html#l00133">hd()</a>, <a class="el" href="list_8hh_source.html#l00138">isList()</a>, <a class="el" href="list_8hh_source.html#l00137">isNil()</a>, <a class="el" href="uitree_8cpp_source.html#l00136">isUiFolder()</a>, <a class="el" href="list_8hh_source.html#l00171">right()</a>, and <a class="el" href="list_8hh_source.html#l00134">tl()</a>.</p> <p>Referenced by <a class="el" href="compile__vect_8cpp_source.html#l00032">VectorCompiler::compileMultiSignal()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00129">ScalarCompiler::compileMultiSignal()</a>, and <a class="el" href="compile__scal_8cpp_source.html#l00157">ScalarCompiler::compileSingleSignal()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00134"></a>00134 { <a name="l00135"></a>00135 <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> root, elems; <a name="l00136"></a>00136 <span class="keywordflow">if</span> (<a class="code" href="uitree_8cpp.html#a56c557491c86ba3875400908b273669d">isUiFolder</a>(t, root, elems) && <a class="code" href="list_8hh.html#a8bdd73641276e0c0f999f504348eacc1">isList</a>(elems) && <a class="code" href="list_8hh.html#a2569c3a07bbbfa55e0afde62de62aeec">isNil</a>(<a class="code" href="list_8hh.html#a4075748f5c7156306ec898795313a2e0">tl</a>(elems)) ) { <a name="l00137"></a>00137 <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> folder = <a class="code" href="list_8hh.html#a098460d0916242eebda50610e2a86e39">right</a>(<a class="code" href="list_8hh.html#a067ad6f83087b420a1c44e48e56be389">hd</a>(elems)); <a name="l00138"></a>00138 <span class="keywordflow">return</span> (<a class="code" href="uitree_8cpp.html#a56c557491c86ba3875400908b273669d">isUiFolder</a>(folder)) ? folder : t; <a name="l00139"></a>00139 } <a name="l00140"></a>00140 <span class="keywordflow">return</span> t; <a name="l00141"></a>00141 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a5c7a151a77ef3d9c22ba11b52017d6c5"></a><!-- doxytag: member="Compiler::setDescription" ref="a5c7a151a77ef3d9c22ba11b52017d6c5" args="(Description *descr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Compiler::setDescription </td> <td>(</td> <td class="paramtype"><a class="el" href="classDescription.html">Description</a> * </td> <td class="paramname"> <em>descr</em></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="compile_8hh_source.html#l00069">69</a> of file <a class="el" href="compile_8hh_source.html">compile.hh</a>.</p> <p>References <a class="el" href="compile_8hh_source.html#l00056">fDescription</a>.</p> <p>Referenced by <a class="el" href="main_8cpp_source.html#l00475">main()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00069"></a>00069 { <a class="code" href="classCompiler.html#a8a23c67dd7d72d5aa6353d29de84b711">fDescription</a>= descr; } </pre></div></p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="abd99a780b9c082000158f15f20439a20"></a><!-- doxytag: member="Compiler::fClass" ref="abd99a780b9c082000158f15f20439a20" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classKlass.html">Klass</a>* <a class="el" href="classCompiler.html#abd99a780b9c082000158f15f20439a20">Compiler::fClass</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="compile_8hh_source.html#l00053">53</a> of file <a class="el" href="compile_8hh_source.html">compile.hh</a>.</p> <p>Referenced by <a class="el" href="compile_8hh_source.html#l00077">addIncludeFile()</a>, <a class="el" href="compile_8hh_source.html#l00078">addLibrary()</a>, <a class="el" href="compile__vect_8cpp_source.html#l00032">VectorCompiler::compileMultiSignal()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00129">ScalarCompiler::compileMultiSignal()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00157">ScalarCompiler::compileSingleSignal()</a>, <a class="el" href="compile__vect_8cpp_source.html#l00081">VectorCompiler::CS()</a>, <a class="el" href="compile__scal_8cpp_source.html#l01245">ScalarCompiler::ensureIotaCode()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00498">ScalarCompiler::generateButton()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00507">ScalarCompiler::generateCheckbox()</a>, <a class="el" href="compile__vect_8cpp_source.html#l00113">VectorCompiler::generateCode()</a>, <a class="el" href="compile__vect_8cpp_source.html#l00258">VectorCompiler::generateDelayLine()</a>, <a class="el" href="compile__scal_8cpp_source.html#l01199">ScalarCompiler::generateDelayLine()</a>, <a class="el" href="compile__scal_8cpp_source.html#l01151">ScalarCompiler::generateDelayVecNoTemp()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00572">ScalarCompiler::generateHBargraph()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00526">ScalarCompiler::generateHSlider()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00847">ScalarCompiler::generateIota()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00535">ScalarCompiler::generateNumEntry()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00357">ScalarCompiler::generateOutput()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00821">ScalarCompiler::generatePrefix()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00874">ScalarCompiler::generateSelect2()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00933">ScalarCompiler::generateSelect3()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00611">ScalarCompiler::generateSigGen()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00622">ScalarCompiler::generateStaticSigGen()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00674">ScalarCompiler::generateStaticTable()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00638">ScalarCompiler::generateTable()</a>, <a class="el" href="compile_8cpp_source.html#l00279">generateUserInterfaceTree()</a>, <a class="el" href="compile__vect_8cpp_source.html#l00268">VectorCompiler::generateVariableStore()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00448">ScalarCompiler::generateVariableStore()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00545">ScalarCompiler::generateVBargraph()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00517">ScalarCompiler::generateVSlider()</a>, <a class="el" href="compile_8cpp_source.html#l00327">generateWidgetCode()</a>, <a class="el" href="compile_8cpp_source.html#l00450">generateWidgetMacro()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00723">ScalarCompiler::generateWRTbl()</a>, <a class="el" href="compile__scal_8cpp_source.html#l01007">ScalarCompiler::generateXtended()</a>, <a class="el" href="compile_8hh_source.html#l00067">getClass()</a>, and <a class="el" href="compile_8cpp_source.html#l00109">~Compiler()</a>.</p> </div> </div> <a class="anchor" id="a8a23c67dd7d72d5aa6353d29de84b711"></a><!-- doxytag: member="Compiler::fDescription" ref="a8a23c67dd7d72d5aa6353d29de84b711" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classDescription.html">Description</a>* <a class="el" href="classCompiler.html#a8a23c67dd7d72d5aa6353d29de84b711">Compiler::fDescription</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="compile_8hh_source.html#l00056">56</a> of file <a class="el" href="compile_8hh_source.html">compile.hh</a>.</p> <p>Referenced by <a class="el" href="compile__vect_8cpp_source.html#l00032">VectorCompiler::compileMultiSignal()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00129">ScalarCompiler::compileMultiSignal()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00157">ScalarCompiler::compileSingleSignal()</a>, <a class="el" href="compile_8hh_source.html#l00070">getDescription()</a>, and <a class="el" href="compile_8hh_source.html#l00069">setDescription()</a>.</p> </div> </div> <a class="anchor" id="a2a8d69c98d96b9015d861617a6faadcc"></a><!-- doxytag: member="Compiler::fNeedToDeleteClass" ref="a2a8d69c98d96b9015d861617a6faadcc" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classCompiler.html#a2a8d69c98d96b9015d861617a6faadcc">Compiler::fNeedToDeleteClass</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="compile_8hh_source.html#l00054">54</a> of file <a class="el" href="compile_8hh_source.html">compile.hh</a>.</p> <p>Referenced by <a class="el" href="compile_8cpp_source.html#l00109">~Compiler()</a>.</p> </div> </div> <a class="anchor" id="a2b8004ea1fd5b86ded1a093e7c5eb70d"></a><!-- doxytag: member="Compiler::fUIRoot" ref="a2b8004ea1fd5b86ded1a093e7c5eb70d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCTree.html">Tree</a> <a class="el" href="classCompiler.html#a2b8004ea1fd5b86ded1a093e7c5eb70d">Compiler::fUIRoot</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="compile_8hh_source.html#l00055">55</a> of file <a class="el" href="compile_8hh_source.html">compile.hh</a>.</p> <p>Referenced by <a class="el" href="compile_8cpp_source.html#l00123">addUIWidget()</a>, <a class="el" href="compile__vect_8cpp_source.html#l00032">VectorCompiler::compileMultiSignal()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00129">ScalarCompiler::compileMultiSignal()</a>, and <a class="el" href="compile__scal_8cpp_source.html#l00157">ScalarCompiler::compileSingleSignal()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="compile_8hh_source.html">compile.hh</a></li> <li><a class="el" href="compile_8cpp_source.html">compile.cpp</a></li> </ul> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Thu Apr 29 00:00:18 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>