Sophie

Sophie

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

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: CFref 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>  </div>
  <div class="headertitle">
<h1>CFref Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="CFref" --><!-- doxytag: inherits="CDecl" -->
<p>Forward reference declaration.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="cfref_8h_source.html">cfref.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for CFref:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classCFref.png" usemap="#CFref_map" alt=""/>
  <map id="CFref_map" name="CFref_map">
<area href="classCDecl.html" alt="CDecl" shape="rect" coords="0,56,58,80"/>
<area href="classCObject.html" alt="CObject" shape="rect" coords="0,0,58,24"/>
</map>
</div>

<p><a href="classCFref-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="classCFref.html#ab1717c71fa161d2a9f33846651e274fe">CFref</a> (<a class="el" href="classCSymbol.html">CSymbol</a> *symbol, <a class="el" href="structCoord__t.html">Coord_t</a> *aLoc)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a forward reference.  <a href="#ab1717c71fa161d2a9f33846651e274fe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCDecl.html">CDecl</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#adf04fc24f49a30d3bc9f7f4cbfaae743">Clone</a> (<a class="el" href="classCObstack.html">CObstack</a> *heap)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a clone of this declaration.  <a href="#adf04fc24f49a30d3bc9f7f4cbfaae743"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a334567cdaa476c2f94fd6be81ace6495">SetDecl</a> (<a class="el" href="classCDecl.html">CDecl</a> *aDecl)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set forward declaration's actual declaration.  <a href="#a334567cdaa476c2f94fd6be81ace6495"></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="classCFref.html#a750fbb10834851d2945e1d76840c1906">GetDecl</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get forward reference's actual declaration.  <a href="#a750fbb10834851d2945e1d76840c1906"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a22835da38d41e7e38cbd74b573538ee4">SetRangeInfo</a> (int isArray, <a class="el" href="classCNode.html">CNode</a> *range)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set range info for declaration.  <a href="#a22835da38d41e7e38cbd74b573538ee4"></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="classCFref.html#a1c8968945fc45fee2e6995ae3f05621a">GetMsb</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get msb of vector range.  <a href="#a1c8968945fc45fee2e6995ae3f05621a"></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="classCFref.html#acaaea868bc33b35aade7e2528bb84af0">GetLsb</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get lsb of vector range.  <a href="#acaaea868bc33b35aade7e2528bb84af0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#af77e3cdcd1fa93897a9bdd69a2f50874">DisableWidthInferencing</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disable width inferencing.  <a href="#af77e3cdcd1fa93897a9bdd69a2f50874"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a05113068dffd7ec73231fdbdb2ca4f34">IsWidthConstant</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if packed width of declaration is constant, ie dependent upon only constants and parameters.  <a href="#a05113068dffd7ec73231fdbdb2ca4f34"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#ac7a4efe063766f4afdcf0f76fb446f9b">IsWidthVolatile</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if packed width of declaration is volatile, ie depend upon parameters or variables.  <a href="#ac7a4efe063766f4afdcf0f76fb446f9b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a69e765f6dd740de738df00c36aebf14c">IsWidthEvaluateable</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if packed width of declaration can be evaluated.  <a href="#a69e765f6dd740de738df00c36aebf14c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="glue_8h.html#a0cb58e7e6f0bad369840a52e54a56ae0">INT32</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a6a0540f0324d13488bfde6f6961d0a6d">GetWidth</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluate packed width of declaration.  <a href="#a6a0540f0324d13488bfde6f6961d0a6d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCNode.html">CNode</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a134a47825719a0175ce11ef0d65b220d">GetRange</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get expression for declaration's range (msb/lsb).  <a href="#a134a47825719a0175ce11ef0d65b220d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="cdecl_8h.html#a2079c5562904beb3c6648c13117153a0">Decl_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a9c996cda0d9e5921d74dd2fd35b9129a">Direction</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get direction of declaration.  <a href="#a9c996cda0d9e5921d74dd2fd35b9129a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a4f2d28d61f8c17ce145b63a5c7314e78">Direction</a> (<a class="el" href="cdecl_8h.html#a2079c5562904beb3c6648c13117153a0">Decl_t</a> d)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set direction of declaration.  <a href="#a4f2d28d61f8c17ce145b63a5c7314e78"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#ac9213bc88315ad6ae7a7b537e7da1bd0">Lval</a> (int aLval)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set lval flag.  <a href="#ac9213bc88315ad6ae7a7b537e7da1bd0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a7476be9d38887a113f0c81189e466b8c">Lval</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get lval flag.  <a href="#a7476be9d38887a113f0c81189e466b8c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#aa89f087c18e51e18dc8cb66749d3233b">IsArray</a> (int v)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set array flag.  <a href="#aa89f087c18e51e18dc8cb66749d3233b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a2e90a6cfc997bd3217d1133bd0881b6c">IsArray</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get array flag.  <a href="#a2e90a6cfc997bd3217d1133bd0881b6c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a7677b4b9fbbbbc28b7e344c9a6b8e19a">IndicesRangeValid</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if range can be inferred.  <a href="#a7677b4b9fbbbbc28b7e344c9a6b8e19a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#ad6acebb1ccb01ee0ff422d8dfc6fea6b">ConstrainTypes</a> (const list&lt; <a class="el" href="cdecl_8h.html#a2079c5562904beb3c6648c13117153a0">Decl_t</a> &gt; &amp;aTypes)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a constraint on valid types for this declaration.  <a href="#ad6acebb1ccb01ee0ff422d8dfc6fea6b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a7ad3519d63756731949b1ff907acaebb">IsTypeValid</a> (<a class="el" href="cdecl_8h.html#a2079c5562904beb3c6648c13117153a0">Decl_t</a> t)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if a give declaration type is valid for this reference.  <a href="#a7ad3519d63756731949b1ff907acaebb"></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="classCFref.html#ae42560b26c97d4db9b0201076f653f49">Dump</a> (FILE *f)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dump declaration info to file descriptor.  <a href="#ae42560b26c97d4db9b0201076f653f49"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Forward reference declaration. </p>
<p>This class should only be used by the parser and should never appear in or be created by plugins. </p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ab1717c71fa161d2a9f33846651e274fe"></a><!-- doxytag: member="CFref::CFref" ref="ab1717c71fa161d2a9f33846651e274fe" args="(CSymbol *symbol, Coord_t *aLoc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CFref::CFref </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><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a forward reference. </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>declarations symbol. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>aLoc</em>&nbsp;</td><td>file coordinates. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="adf04fc24f49a30d3bc9f7f4cbfaae743"></a><!-- doxytag: member="CFref::Clone" ref="adf04fc24f49a30d3bc9f7f4cbfaae743" args="(CObstack *heap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCDecl.html">CDecl</a>* CFref::Clone </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCObstack.html">CObstack</a> *&nbsp;</td>
          <td class="paramname"> <em>heap</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a clone of this declaration. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>heap</em>&nbsp;</td><td>heap to use for allocation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>new declaration. </dd></dl>

<p>Implements <a class="el" href="classCDecl.html#a3d992b7f070ff86395c5eda30e0c4043">CDecl</a>.</p>

</div>
</div>
<a class="anchor" id="ad6acebb1ccb01ee0ff422d8dfc6fea6b"></a><!-- doxytag: member="CFref::ConstrainTypes" ref="ad6acebb1ccb01ee0ff422d8dfc6fea6b" args="(const list&lt; Decl_t &gt; &amp;aTypes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CFref::ConstrainTypes </td>
          <td>(</td>
          <td class="paramtype">const list&lt; <a class="el" href="cdecl_8h.html#a2079c5562904beb3c6648c13117153a0">Decl_t</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>aTypes</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a constraint on valid types for this declaration. </p>
<p>Note eNONE must always be in type 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>aTypes</em>&nbsp;</td><td>list of valid types (must incude eNONE). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9c996cda0d9e5921d74dd2fd35b9129a"></a><!-- doxytag: member="CFref::Direction" ref="a9c996cda0d9e5921d74dd2fd35b9129a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="cdecl_8h.html#a2079c5562904beb3c6648c13117153a0">Decl_t</a> CFref::Direction </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get direction of declaration. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>d direction type. </dd></dl>

</div>
</div>
<a class="anchor" id="a4f2d28d61f8c17ce145b63a5c7314e78"></a><!-- doxytag: member="CFref::Direction" ref="a4f2d28d61f8c17ce145b63a5c7314e78" args="(Decl_t d)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CFref::Direction </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="cdecl_8h.html#a2079c5562904beb3c6648c13117153a0">Decl_t</a>&nbsp;</td>
          <td class="paramname"> <em>d</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set direction of declaration. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>d</em>&nbsp;</td><td>direction type. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af77e3cdcd1fa93897a9bdd69a2f50874"></a><!-- doxytag: member="CFref::DisableWidthInferencing" ref="af77e3cdcd1fa93897a9bdd69a2f50874" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CFref::DisableWidthInferencing </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Disable width inferencing. </p>

</div>
</div>
<a class="anchor" id="ae42560b26c97d4db9b0201076f653f49"></a><!-- doxytag: member="CFref::Dump" ref="ae42560b26c97d4db9b0201076f653f49" args="(FILE *f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CFref::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 declaration 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="classCDecl.html#abf20508e80db983fc69f3bf5e3901af4">CDecl</a>.</p>

</div>
</div>
<a class="anchor" id="a750fbb10834851d2945e1d76840c1906"></a><!-- doxytag: member="CFref::GetDecl" ref="a750fbb10834851d2945e1d76840c1906" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCDecl.html">CDecl</a>* CFref::GetDecl </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get forward reference's actual declaration. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>actual declaration, NULL if not assigned. </dd></dl>

</div>
</div>
<a class="anchor" id="acaaea868bc33b35aade7e2528bb84af0"></a><!-- doxytag: member="CFref::GetLsb" ref="acaaea868bc33b35aade7e2528bb84af0" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCNode.html">CNode</a>* CFref::GetLsb </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get lsb of vector range. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>lsb expression, NULL if scalar. </dd></dl>

<p>Reimplemented from <a class="el" href="classCDecl.html#aa3d9858289d9398da2b82bf13b33c98e">CDecl</a>.</p>

</div>
</div>
<a class="anchor" id="a1c8968945fc45fee2e6995ae3f05621a"></a><!-- doxytag: member="CFref::GetMsb" ref="a1c8968945fc45fee2e6995ae3f05621a" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCNode.html">CNode</a>* CFref::GetMsb </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get msb of vector range. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>msb expression, NULL if scalar. </dd></dl>

<p>Reimplemented from <a class="el" href="classCDecl.html#af4e424f35d76dc27fa631aa896b086af">CDecl</a>.</p>

</div>
</div>
<a class="anchor" id="a134a47825719a0175ce11ef0d65b220d"></a><!-- doxytag: member="CFref::GetRange" ref="a134a47825719a0175ce11ef0d65b220d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCNode.html">CNode</a>* CFref::GetRange </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get expression for declaration's range (msb/lsb). </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>range expression, NULL if scalar. </dd></dl>

</div>
</div>
<a class="anchor" id="a6a0540f0324d13488bfde6f6961d0a6d"></a><!-- doxytag: member="CFref::GetWidth" ref="a6a0540f0324d13488bfde6f6961d0a6d" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="glue_8h.html#a0cb58e7e6f0bad369840a52e54a56ae0">INT32</a> CFref::GetWidth </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Evaluate packed width of declaration. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>packed width of declaration. </dd></dl>

</div>
</div>
<a class="anchor" id="a7677b4b9fbbbbc28b7e344c9a6b8e19a"></a><!-- doxytag: member="CFref::IndicesRangeValid" ref="a7677b4b9fbbbbc28b7e344c9a6b8e19a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int CFref::IndicesRangeValid </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Determine if range can be inferred. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>non-zero if range can be inferred. </dd></dl>

</div>
</div>
<a class="anchor" id="aa89f087c18e51e18dc8cb66749d3233b"></a><!-- doxytag: member="CFref::IsArray" ref="aa89f087c18e51e18dc8cb66749d3233b" args="(int v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CFref::IsArray </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 array flag. </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 decl is an array. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2e90a6cfc997bd3217d1133bd0881b6c"></a><!-- doxytag: member="CFref::IsArray" ref="a2e90a6cfc997bd3217d1133bd0881b6c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int CFref::IsArray </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get array flag. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>non-zero if decl is an array. </dd></dl>

</div>
</div>
<a class="anchor" id="a7ad3519d63756731949b1ff907acaebb"></a><!-- doxytag: member="CFref::IsTypeValid" ref="a7ad3519d63756731949b1ff907acaebb" args="(Decl_t t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int CFref::IsTypeValid </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="cdecl_8h.html#a2079c5562904beb3c6648c13117153a0">Decl_t</a>&nbsp;</td>
          <td class="paramname"> <em>t</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test if a give declaration type is valid for this reference. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>declaration type to test for. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>non-zero if type is compatable with constraints. </dd></dl>

</div>
</div>
<a class="anchor" id="a05113068dffd7ec73231fdbdb2ca4f34"></a><!-- doxytag: member="CFref::IsWidthConstant" ref="a05113068dffd7ec73231fdbdb2ca4f34" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int CFref::IsWidthConstant </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Determine if packed width of declaration is constant, ie dependent upon only constants and parameters. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>non-zero of packed width of declaration is constant. </dd></dl>

</div>
</div>
<a class="anchor" id="a69e765f6dd740de738df00c36aebf14c"></a><!-- doxytag: member="CFref::IsWidthEvaluateable" ref="a69e765f6dd740de738df00c36aebf14c" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int CFref::IsWidthEvaluateable </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Determine if packed width of declaration can be evaluated. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>non-zero of packed width of declaration can be evaluated. </dd></dl>

</div>
</div>
<a class="anchor" id="ac7a4efe063766f4afdcf0f76fb446f9b"></a><!-- doxytag: member="CFref::IsWidthVolatile" ref="ac7a4efe063766f4afdcf0f76fb446f9b" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int CFref::IsWidthVolatile </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Determine if packed width of declaration is volatile, ie depend upon parameters or variables. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>non-zero of packed width of declaration is volatile. </dd></dl>

</div>
</div>
<a class="anchor" id="ac9213bc88315ad6ae7a7b537e7da1bd0"></a><!-- doxytag: member="CFref::Lval" ref="ac9213bc88315ad6ae7a7b537e7da1bd0" args="(int aLval)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CFref::Lval </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>aLval</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set lval flag. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>aLval</em>&nbsp;</td><td>non-zero means decl has been used as an lval. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7476be9d38887a113f0c81189e466b8c"></a><!-- doxytag: member="CFref::Lval" ref="a7476be9d38887a113f0c81189e466b8c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int CFref::Lval </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get lval flag. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>non-zero if decl has been used as an lval. </dd></dl>

</div>
</div>
<a class="anchor" id="a334567cdaa476c2f94fd6be81ace6495"></a><!-- doxytag: member="CFref::SetDecl" ref="a334567cdaa476c2f94fd6be81ace6495" args="(CDecl *aDecl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CFref::SetDecl </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCDecl.html">CDecl</a> *&nbsp;</td>
          <td class="paramname"> <em>aDecl</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set forward declaration's actual declaration. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>aDecl</em>&nbsp;</td><td>actual declaration for forward reference. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a22835da38d41e7e38cbd74b573538ee4"></a><!-- doxytag: member="CFref::SetRangeInfo" ref="a22835da38d41e7e38cbd74b573538ee4" args="(int isArray, CNode *range)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CFref::SetRangeInfo </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>isArray</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>range</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set range info for declaration. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>isArray</em>&nbsp;</td><td>non-zero if declaration is an array. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>range</em>&nbsp;</td><td>vector range expression. </td></tr>
  </table>
  </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="cfref_8h_source.html">cfref.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>