Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > ffa1e6f5ad04360808fe8840fe3ba036 > files > 133

vrq-devel-1.0.88-1.fc14.i686.rpm

<!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&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;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&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<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 &lt;<a class="el" href="cfunction_8h_source.html">cfunction.h</a>&gt;</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">&nbsp;</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">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#aafea245e0699a0363c831f7ea46438cb">Dump</a> (FILE *f)</td></tr>
<tr><td class="mdescLeft">&nbsp;</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&lt; <a class="el" href="classCPortDir.html">CPortDir</a> * &gt; *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a1214e9670ff2f0ca7f2541f22066820b">GetPortDirList</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</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&nbsp;</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">&nbsp;</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> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a8c5db14dd978dc6c90ca92c9f6c1ccfb">GetTrailingLabel</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get trailing function label.  <a href="#a8c5db14dd978dc6c90ca92c9f6c1ccfb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</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">&nbsp;</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> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a7d0b799712a074763ba10f66bd420c9c">GetPorts</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get function port list.  <a href="#a7d0b799712a074763ba10f66bd420c9c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a8ea1a02abde1158271f989fbf8c7fc30">InlinePortDecls</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get inline declaration attribute.  <a href="#a8ea1a02abde1158271f989fbf8c7fc30"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a43fea2024c6487383331e989c2e8ca96">InlinePortDecls</a> (int v)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set inline declaration attribute.  <a href="#a43fea2024c6487383331e989c2e8ca96"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</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">&nbsp;</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> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a1a5157064faa0a689f565a6ca8e6c62a">GetOutput</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get output declaration.  <a href="#a1a5157064faa0a689f565a6ca8e6c62a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#a3be0735af164825c32d7b2ce0a6a6bbf">GetAutomatic</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</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&nbsp;</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">&nbsp;</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> *&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFunction.html#ad9acb3e7ca70b3dca5a230c6e30d3818">EvalVector</a> (<a class="el" href="classCVector.html">CVector</a> &amp;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">&nbsp;</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&nbsp;</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">&nbsp;</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 &amp; 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> *&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>aLoc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>automatic</em></td><td>&nbsp;</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>&nbsp;</td><td>name of function/task. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>aLoc</em>&nbsp;</td><td>file coordinates of declaration. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>automatic</em>&nbsp;</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 *&nbsp;</td>
          <td class="paramname"> <em>f</em></td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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> *&nbsp;</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> *&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>block</em></td><td>&nbsp;</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>&nbsp;</td><td>name of function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>function argument list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>block</em>&nbsp;</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> *&nbsp;</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> *&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>block</em></td><td>&nbsp;</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>&nbsp;</td><td>name of function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>function argument list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>block</em>&nbsp;</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 &amp;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> &amp;&nbsp;</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> *&nbsp;</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> *&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>block</em></td><td>&nbsp;</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>&nbsp;</td><td>container for result </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>symbol</em>&nbsp;</td><td>name of function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>function argument list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>block</em>&nbsp;</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>&nbsp;)&nbsp;</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>&nbsp;)&nbsp;</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&lt;<a class="el" href="classCPortDir.html">CPortDir</a>*&gt;* CFunction::GetPortDirList </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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>&nbsp;)&nbsp;</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>&nbsp;)&nbsp;</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&nbsp;</td>
          <td class="paramname"> <em>v</em></td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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>&nbsp;)&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>output</em></td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>n</em></td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>label</em></td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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> *&nbsp;</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> *&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>block</em></td><td>&nbsp;</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>&nbsp;</td><td>name of function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>function argument list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>block</em>&nbsp;</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> *&nbsp;</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> *&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>block</em></td><td>&nbsp;</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>&nbsp;</td><td>name of function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>function argument list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>block</em>&nbsp;</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> *&nbsp;</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> *&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>block</em></td><td>&nbsp;</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>&nbsp;</td><td>name of function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>function argument list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>block</em>&nbsp;</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> *&nbsp;</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> *&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>block</em></td><td>&nbsp;</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>&nbsp;</td><td>name of function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>function argument list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>block</em>&nbsp;</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> *&nbsp;</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> *&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>block</em></td><td>&nbsp;</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>&nbsp;</td><td>name of function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>function argument list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>block</em>&nbsp;</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> *&nbsp;</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> *&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>block</em></td><td>&nbsp;</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>&nbsp;</td><td>name of function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>function argument list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>block</em>&nbsp;</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&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>