<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>vrq: CFunction Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td width="180"><a href="index.html"><img src="vrq.png" width="150" height="100" border="0" alt="vrq"></a></td> <td background="top_bg.png" align="right" width="100%"> <img src="glyth.png" width="500" height="100" border="0" alt=""> </td> </tr> <tr> <td background="#FFFFFF" align="right" width="50" height="4"></td> </tr> </table> </head><body> <!-- Generated by Doxygen 1.7.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul class="tablist"> <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="modules.html"><span>Modules</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="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</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="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> </div> <div class="headertitle"> <h1>CFunction Class Reference</h1> </div> </div> <div class="contents"> <!-- doxytag: class="CFunction" --><!-- doxytag: inherits="CBlock" --> <p>Declaration object for functions and tasks. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="cfunction_8h_source.html">cfunction.h</a>></code></p> <div class="dynheader"> Inheritance diagram for CFunction:</div> <div class="dyncontent"> <div class="center"> <img src="classCFunction.png" usemap="#CFunction_map" alt=""/> <map id="CFunction_map" name="CFunction_map"> <area href="classCBlock.html" alt="CBlock" shape="rect" coords="0,112,70,136"/> <area href="classCDecl.html" alt="CDecl" shape="rect" coords="0,56,70,80"/> <area href="classCObject.html" alt="CObject" shape="rect" coords="0,0,70,24"/> </map> </div> <p><a href="classCFunction-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a453e7409a9b3bfb236c0c3b24e3e9aec">CFunction</a> (<a class="el" href="classCSymbol.html">CSymbol</a> *symbol, <a class="el" href="structCoord__t.html">Coord_t</a> *aLoc, int automatic)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create function/task declaration object. <a href="#a453e7409a9b3bfb236c0c3b24e3e9aec"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#aafea245e0699a0363c831f7ea46438cb">Dump</a> (FILE *f)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Dump function info to file descriptor. <a href="#aafea245e0699a0363c831f7ea46438cb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual vector< <a class="el" href="classCPortDir.html">CPortDir</a> * > * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a1214e9670ff2f0ca7f2541f22066820b">GetPortDirList</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get array of port declarations. <a href="#a1214e9670ff2f0ca7f2541f22066820b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a0c0cec27acd71d611befea2c9009c459">SetTrailingLabel</a> (<a class="el" href="classCSymbol.html">CSymbol</a> *label)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set trailing function label. <a href="#a0c0cec27acd71d611befea2c9009c459"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCSymbol.html">CSymbol</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a8c5db14dd978dc6c90ca92c9f6c1ccfb">GetTrailingLabel</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get trailing function label. <a href="#a8c5db14dd978dc6c90ca92c9f6c1ccfb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#aed9add9af44b974be4b4acd54b703ae0">SetPorts</a> (<a class="el" href="classCNode.html">CNode</a> *n)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set function port list. <a href="#aed9add9af44b974be4b4acd54b703ae0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCNode.html">CNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a7d0b799712a074763ba10f66bd420c9c">GetPorts</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get function port list. <a href="#a7d0b799712a074763ba10f66bd420c9c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a8ea1a02abde1158271f989fbf8c7fc30">InlinePortDecls</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get inline declaration attribute. <a href="#a8ea1a02abde1158271f989fbf8c7fc30"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a43fea2024c6487383331e989c2e8ca96">InlinePortDecls</a> (int v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set inline declaration attribute. <a href="#a43fea2024c6487383331e989c2e8ca96"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a37d6171dcb729998be94b4a87ac3a955">SetOutput</a> (<a class="el" href="classCDecl.html">CDecl</a> *output)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set output declaration for function. <a href="#a37d6171dcb729998be94b4a87ac3a955"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCDecl.html">CDecl</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a1a5157064faa0a689f565a6ca8e6c62a">GetOutput</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get output declaration. <a href="#a1a5157064faa0a689f565a6ca8e6c62a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a3be0735af164825c32d7b2ce0a6a6bbf">GetAutomatic</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get automatic attribute. <a href="#a3be0735af164825c32d7b2ce0a6a6bbf"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pub-static-methods"></a> Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a5ac6f247a337996728183b02ca494d1c">Width</a> (<a class="el" href="classCSymbol.html">CSymbol</a> *symbol, <a class="el" href="classCNode.html">CNode</a> *args, <a class="el" href="classCBlock.html">CBlock</a> *block)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get width of function. <a href="#a5ac6f247a337996728183b02ca494d1c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classCNode.html">CNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a1a3321ee388d91438a7b5d2e355abe78">WidthExp</a> (<a class="el" href="classCSymbol.html">CSymbol</a> *symbol, <a class="el" href="classCNode.html">CNode</a> *args, <a class="el" href="classCBlock.html">CBlock</a> *block)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get width of function as an expression. <a href="#a1a3321ee388d91438a7b5d2e355abe78"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a244fef07105e5a4326ca8e39026445e8">WidthConstant</a> (<a class="el" href="classCSymbol.html">CSymbol</a> *symbol, <a class="el" href="classCNode.html">CNode</a> *args, <a class="el" href="classCBlock.html">CBlock</a> *block)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Determine if width of function is constant. <a href="#a244fef07105e5a4326ca8e39026445e8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a31da656b8ec56842898b2acc7f75c386">WidthVolatile</a> (<a class="el" href="classCSymbol.html">CSymbol</a> *symbol, <a class="el" href="classCNode.html">CNode</a> *args, <a class="el" href="classCBlock.html">CBlock</a> *block)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Determine if width of function is volatile. <a href="#a31da656b8ec56842898b2acc7f75c386"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a77dee38daf65bc7fe628543e4cb842b4">WidthEvaluateable</a> (<a class="el" href="classCSymbol.html">CSymbol</a> *symbol, <a class="el" href="classCNode.html">CNode</a> *args, <a class="el" href="classCBlock.html">CBlock</a> *block)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Determine if width of function is evaluateable. <a href="#a77dee38daf65bc7fe628543e4cb842b4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="cdatatype_8h.html#aff499c00c9873bf3fcf1c46bf2652790">NodeType_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a545eda4c6b40749455a5adbfb157f8d6">Type</a> (<a class="el" href="classCSymbol.html">CSymbol</a> *symbol, <a class="el" href="classCNode.html">CNode</a> *args, <a class="el" href="classCBlock.html">CBlock</a> *block)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Determine if type of result of function. <a href="#a545eda4c6b40749455a5adbfb157f8d6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a2ded3f761d366fd4fbf23f286ed1a179">Evaluateable</a> (<a class="el" href="classCSymbol.html">CSymbol</a> *symbol, <a class="el" href="classCNode.html">CNode</a> *args, <a class="el" href="classCBlock.html">CBlock</a> *block)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Determine if function can be evaluated. <a href="#a2ded3f761d366fd4fbf23f286ed1a179"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#ad9acb3e7ca70b3dca5a230c6e30d3818">EvalVector</a> (<a class="el" href="classCVector.html">CVector</a> &v, <a class="el" href="classCSymbol.html">CSymbol</a> *symbol, <a class="el" href="classCNode.html">CNode</a> *args, <a class="el" href="classCBlock.html">CBlock</a> *block)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Evaluate function as a vector and return result. <a href="#ad9acb3e7ca70b3dca5a230c6e30d3818"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#add8a281d8c27e4a3fa58913646eae91a">EvalReal</a> (<a class="el" href="classCSymbol.html">CSymbol</a> *symbol, <a class="el" href="classCNode.html">CNode</a> *args, <a class="el" href="classCBlock.html">CBlock</a> *block)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Evaluate function as a real and return result. <a href="#add8a281d8c27e4a3fa58913646eae91a"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Declaration object for functions and tasks. </p> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a453e7409a9b3bfb236c0c3b24e3e9aec"></a><!-- doxytag: member="CFunction::CFunction" ref="a453e7409a9b3bfb236c0c3b24e3e9aec" args="(CSymbol *symbol, Coord_t *aLoc, int automatic)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CFunction::CFunction </td> <td>(</td> <td class="paramtype"><a class="el" href="classCSymbol.html">CSymbol</a> * </td> <td class="paramname"> <em>symbol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structCoord__t.html">Coord_t</a> * </td> <td class="paramname"> <em>aLoc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>automatic</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Create function/task declaration object. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>symbol</em> </td><td>name of function/task. </td></tr> <tr><td valign="top"></td><td valign="top"><em>aLoc</em> </td><td>file coordinates of declaration. </td></tr> <tr><td valign="top"></td><td valign="top"><em>automatic</em> </td><td>non-zero if function is automatic. </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="aafea245e0699a0363c831f7ea46438cb"></a><!-- doxytag: member="CFunction::Dump" ref="aafea245e0699a0363c831f7ea46438cb" args="(FILE *f)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void CFunction::Dump </td> <td>(</td> <td class="paramtype">FILE * </td> <td class="paramname"> <em>f</em></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Dump function info to file descriptor. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>f</em> </td><td>file descriptor. </td></tr> </table> </dd> </dl> <p>Reimplemented from <a class="el" href="classCBlock.html#a06c61b6d755889abb23a7de8e18a80c3">CBlock</a>.</p> </div> </div> <a class="anchor" id="add8a281d8c27e4a3fa58913646eae91a"></a><!-- doxytag: member="CFunction::EvalReal" ref="add8a281d8c27e4a3fa58913646eae91a" args="(CSymbol *symbol, CNode *args, CBlock *block)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static double CFunction::EvalReal </td> <td>(</td> <td class="paramtype"><a class="el" href="classCSymbol.html">CSymbol</a> * </td> <td class="paramname"> <em>symbol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCNode.html">CNode</a> * </td> <td class="paramname"> <em>args</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCBlock.html">CBlock</a> * </td> <td class="paramname"> <em>block</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Evaluate function as a real and return result. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>symbol</em> </td><td>name of function. </td></tr> <tr><td valign="top"></td><td valign="top"><em>args</em> </td><td>function argument list </td></tr> <tr><td valign="top"></td><td valign="top"><em>block</em> </td><td>scope of function instantation </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>result of function evaluation </dd></dl> </div> </div> <a class="anchor" id="a2ded3f761d366fd4fbf23f286ed1a179"></a><!-- doxytag: member="CFunction::Evaluateable" ref="a2ded3f761d366fd4fbf23f286ed1a179" args="(CSymbol *symbol, CNode *args, CBlock *block)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int CFunction::Evaluateable </td> <td>(</td> <td class="paramtype"><a class="el" href="classCSymbol.html">CSymbol</a> * </td> <td class="paramname"> <em>symbol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCNode.html">CNode</a> * </td> <td class="paramname"> <em>args</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCBlock.html">CBlock</a> * </td> <td class="paramname"> <em>block</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Determine if function can be evaluated. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>symbol</em> </td><td>name of function. </td></tr> <tr><td valign="top"></td><td valign="top"><em>args</em> </td><td>function argument list </td></tr> <tr><td valign="top"></td><td valign="top"><em>block</em> </td><td>scope of function instantation </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>non-zero if function can be evaluated </dd></dl> </div> </div> <a class="anchor" id="ad9acb3e7ca70b3dca5a230c6e30d3818"></a><!-- doxytag: member="CFunction::EvalVector" ref="ad9acb3e7ca70b3dca5a230c6e30d3818" args="(CVector &v, CSymbol *symbol, CNode *args, CBlock *block)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void CFunction::EvalVector </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVector.html">CVector</a> & </td> <td class="paramname"> <em>v</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCSymbol.html">CSymbol</a> * </td> <td class="paramname"> <em>symbol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCNode.html">CNode</a> * </td> <td class="paramname"> <em>args</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCBlock.html">CBlock</a> * </td> <td class="paramname"> <em>block</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Evaluate function as a vector and return result. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>v</em> </td><td>container for result </td></tr> <tr><td valign="top"></td><td valign="top"><em>symbol</em> </td><td>name of function. </td></tr> <tr><td valign="top"></td><td valign="top"><em>args</em> </td><td>function argument list </td></tr> <tr><td valign="top"></td><td valign="top"><em>block</em> </td><td>scope of function instantation </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a3be0735af164825c32d7b2ce0a6a6bbf"></a><!-- doxytag: member="CFunction::GetAutomatic" ref="a3be0735af164825c32d7b2ce0a6a6bbf" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int CFunction::GetAutomatic </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get automatic attribute. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>non-zero if function has been declare with automatic attribute. </dd></dl> <p>Reimplemented from <a class="el" href="classCDecl.html#a85380e813c8899f0bb5fe614af5c1b2d">CDecl</a>.</p> </div> </div> <a class="anchor" id="a1a5157064faa0a689f565a6ca8e6c62a"></a><!-- doxytag: member="CFunction::GetOutput" ref="a1a5157064faa0a689f565a6ca8e6c62a" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCDecl.html">CDecl</a>* CFunction::GetOutput </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get output declaration. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>output declaration. </dd></dl> </div> </div> <a class="anchor" id="a1214e9670ff2f0ca7f2541f22066820b"></a><!-- doxytag: member="CFunction::GetPortDirList" ref="a1214e9670ff2f0ca7f2541f22066820b" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual vector<<a class="el" href="classCPortDir.html">CPortDir</a>*>* CFunction::GetPortDirList </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get array of port declarations. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>vector of portdir declarations. </dd></dl> <p>Reimplemented from <a class="el" href="classCBlock.html#a6793d204098d1dbfd7d7acae2d44a150">CBlock</a>.</p> </div> </div> <a class="anchor" id="a7d0b799712a074763ba10f66bd420c9c"></a><!-- doxytag: member="CFunction::GetPorts" ref="a7d0b799712a074763ba10f66bd420c9c" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCNode.html">CNode</a>* CFunction::GetPorts </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get function port list. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>port list. </dd></dl> </div> </div> <a class="anchor" id="a8c5db14dd978dc6c90ca92c9f6c1ccfb"></a><!-- doxytag: member="CFunction::GetTrailingLabel" ref="a8c5db14dd978dc6c90ca92c9f6c1ccfb" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCSymbol.html">CSymbol</a>* CFunction::GetTrailingLabel </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get trailing function label. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>trail function label </dd></dl> </div> </div> <a class="anchor" id="a43fea2024c6487383331e989c2e8ca96"></a><!-- doxytag: member="CFunction::InlinePortDecls" ref="a43fea2024c6487383331e989c2e8ca96" args="(int v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CFunction::InlinePortDecls </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>v</em></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set inline declaration attribute. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>v</em> </td><td>non-zero if port declarations are inline. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a8ea1a02abde1158271f989fbf8c7fc30"></a><!-- doxytag: member="CFunction::InlinePortDecls" ref="a8ea1a02abde1158271f989fbf8c7fc30" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int CFunction::InlinePortDecls </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get inline declaration attribute. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>non-zero if port declarations are inline. </dd></dl> </div> </div> <a class="anchor" id="a37d6171dcb729998be94b4a87ac3a955"></a><!-- doxytag: member="CFunction::SetOutput" ref="a37d6171dcb729998be94b4a87ac3a955" args="(CDecl *output)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CFunction::SetOutput </td> <td>(</td> <td class="paramtype"><a class="el" href="classCDecl.html">CDecl</a> * </td> <td class="paramname"> <em>output</em></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set output declaration for function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>output</em> </td><td>output declaration. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="aed9add9af44b974be4b4acd54b703ae0"></a><!-- doxytag: member="CFunction::SetPorts" ref="aed9add9af44b974be4b4acd54b703ae0" args="(CNode *n)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CFunction::SetPorts </td> <td>(</td> <td class="paramtype"><a class="el" href="classCNode.html">CNode</a> * </td> <td class="paramname"> <em>n</em></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set function port list. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>port list. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a0c0cec27acd71d611befea2c9009c459"></a><!-- doxytag: member="CFunction::SetTrailingLabel" ref="a0c0cec27acd71d611befea2c9009c459" args="(CSymbol *label)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CFunction::SetTrailingLabel </td> <td>(</td> <td class="paramtype"><a class="el" href="classCSymbol.html">CSymbol</a> * </td> <td class="paramname"> <em>label</em></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set trailing function label. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>label</em> </td><td>trailing function label </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a545eda4c6b40749455a5adbfb157f8d6"></a><!-- doxytag: member="CFunction::Type" ref="a545eda4c6b40749455a5adbfb157f8d6" args="(CSymbol *symbol, CNode *args, CBlock *block)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="cdatatype_8h.html#aff499c00c9873bf3fcf1c46bf2652790">NodeType_t</a> CFunction::Type </td> <td>(</td> <td class="paramtype"><a class="el" href="classCSymbol.html">CSymbol</a> * </td> <td class="paramname"> <em>symbol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCNode.html">CNode</a> * </td> <td class="paramname"> <em>args</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCBlock.html">CBlock</a> * </td> <td class="paramname"> <em>block</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Determine if type of result of function. </p> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000026">Todo:</a></b></dt><dd>This routine needs to be implemented to support proper evaluation of constant functions. </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>symbol</em> </td><td>name of function. </td></tr> <tr><td valign="top"></td><td valign="top"><em>args</em> </td><td>function argument list </td></tr> <tr><td valign="top"></td><td valign="top"><em>block</em> </td><td>scope of function instantation </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>type of return result of function. </dd></dl> </div> </div> <a class="anchor" id="a5ac6f247a337996728183b02ca494d1c"></a><!-- doxytag: member="CFunction::Width" ref="a5ac6f247a337996728183b02ca494d1c" args="(CSymbol *symbol, CNode *args, CBlock *block)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int CFunction::Width </td> <td>(</td> <td class="paramtype"><a class="el" href="classCSymbol.html">CSymbol</a> * </td> <td class="paramname"> <em>symbol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCNode.html">CNode</a> * </td> <td class="paramname"> <em>args</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCBlock.html">CBlock</a> * </td> <td class="paramname"> <em>block</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get width of function. </p> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000021">Todo:</a></b></dt><dd>This routine needs to be implemented to support proper evaluation of constant functions. </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>symbol</em> </td><td>name of function. </td></tr> <tr><td valign="top"></td><td valign="top"><em>args</em> </td><td>function argument list </td></tr> <tr><td valign="top"></td><td valign="top"><em>block</em> </td><td>scope of function instantation </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>width of function. </dd></dl> </div> </div> <a class="anchor" id="a244fef07105e5a4326ca8e39026445e8"></a><!-- doxytag: member="CFunction::WidthConstant" ref="a244fef07105e5a4326ca8e39026445e8" args="(CSymbol *symbol, CNode *args, CBlock *block)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int CFunction::WidthConstant </td> <td>(</td> <td class="paramtype"><a class="el" href="classCSymbol.html">CSymbol</a> * </td> <td class="paramname"> <em>symbol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCNode.html">CNode</a> * </td> <td class="paramname"> <em>args</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCBlock.html">CBlock</a> * </td> <td class="paramname"> <em>block</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Determine if width of function is constant. </p> <p>ie dependent upon constants and parameters only. </p> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000023">Todo:</a></b></dt><dd>This routine needs to be implemented to support proper evaluation of constant functions. </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>symbol</em> </td><td>name of function. </td></tr> <tr><td valign="top"></td><td valign="top"><em>args</em> </td><td>function argument list </td></tr> <tr><td valign="top"></td><td valign="top"><em>block</em> </td><td>scope of function instantation </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>non-zero of function's width is constant. </dd></dl> </div> </div> <a class="anchor" id="a77dee38daf65bc7fe628543e4cb842b4"></a><!-- doxytag: member="CFunction::WidthEvaluateable" ref="a77dee38daf65bc7fe628543e4cb842b4" args="(CSymbol *symbol, CNode *args, CBlock *block)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int CFunction::WidthEvaluateable </td> <td>(</td> <td class="paramtype"><a class="el" href="classCSymbol.html">CSymbol</a> * </td> <td class="paramname"> <em>symbol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCNode.html">CNode</a> * </td> <td class="paramname"> <em>args</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCBlock.html">CBlock</a> * </td> <td class="paramname"> <em>block</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Determine if width of function is evaluateable. </p> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000025">Todo:</a></b></dt><dd>This routine needs to be implemented to support proper evaluation of constant functions. </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>symbol</em> </td><td>name of function. </td></tr> <tr><td valign="top"></td><td valign="top"><em>args</em> </td><td>function argument list </td></tr> <tr><td valign="top"></td><td valign="top"><em>block</em> </td><td>scope of function instantation </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>non-zero of function's width is evaluateable. </dd></dl> </div> </div> <a class="anchor" id="a1a3321ee388d91438a7b5d2e355abe78"></a><!-- doxytag: member="CFunction::WidthExp" ref="a1a3321ee388d91438a7b5d2e355abe78" args="(CSymbol *symbol, CNode *args, CBlock *block)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classCNode.html">CNode</a>* CFunction::WidthExp </td> <td>(</td> <td class="paramtype"><a class="el" href="classCSymbol.html">CSymbol</a> * </td> <td class="paramname"> <em>symbol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCNode.html">CNode</a> * </td> <td class="paramname"> <em>args</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCBlock.html">CBlock</a> * </td> <td class="paramname"> <em>block</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get width of function as an expression. </p> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000022">Todo:</a></b></dt><dd>This routine needs to be implemented to support proper evaluation of constant functions. </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>symbol</em> </td><td>name of function. </td></tr> <tr><td valign="top"></td><td valign="top"><em>args</em> </td><td>function argument list </td></tr> <tr><td valign="top"></td><td valign="top"><em>block</em> </td><td>scope of function instantation </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>width expression. </dd></dl> </div> </div> <a class="anchor" id="a31da656b8ec56842898b2acc7f75c386"></a><!-- doxytag: member="CFunction::WidthVolatile" ref="a31da656b8ec56842898b2acc7f75c386" args="(CSymbol *symbol, CNode *args, CBlock *block)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int CFunction::WidthVolatile </td> <td>(</td> <td class="paramtype"><a class="el" href="classCSymbol.html">CSymbol</a> * </td> <td class="paramname"> <em>symbol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCNode.html">CNode</a> * </td> <td class="paramname"> <em>args</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCBlock.html">CBlock</a> * </td> <td class="paramname"> <em>block</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Determine if width of function is volatile. </p> <p>ie dependent upon variables and parameters. </p> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000024">Todo:</a></b></dt><dd>This routine needs to be implemented to support proper evaluation of constant functions. </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>symbol</em> </td><td>name of function. </td></tr> <tr><td valign="top"></td><td valign="top"><em>args</em> </td><td>function argument list </td></tr> <tr><td valign="top"></td><td valign="top"><em>block</em> </td><td>scope of function instantation </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>non-zero of function's width is volatile. </dd></dl> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li>/net/fileserver/nas/home/mdh/vrq/src/<a class="el" href="cfunction_8h_source.html">cfunction.h</a></li> </ul> </div> <hr class="footer"/><address class="footer"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address> </body> </html>