<!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 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> </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 <<a class="el" href="cfref_8h_source.html">cfref.h</a>></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"> </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"> </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> * </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"> </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 </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"> </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> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a750fbb10834851d2945e1d76840c1906">GetDecl</a> (void)</td></tr> <tr><td class="mdescLeft"> </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 </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"> </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> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a1c8968945fc45fee2e6995ae3f05621a">GetMsb</a> (void)</td></tr> <tr><td class="mdescLeft"> </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> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#acaaea868bc33b35aade7e2528bb84af0">GetLsb</a> (void)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#af77e3cdcd1fa93897a9bdd69a2f50874">DisableWidthInferencing</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Disable width inferencing. <a href="#af77e3cdcd1fa93897a9bdd69a2f50874"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a05113068dffd7ec73231fdbdb2ca4f34">IsWidthConstant</a> (void)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#ac7a4efe063766f4afdcf0f76fb446f9b">IsWidthVolatile</a> (void)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a69e765f6dd740de738df00c36aebf14c">IsWidthEvaluateable</a> (void)</td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a6a0540f0324d13488bfde6f6961d0a6d">GetWidth</a> (void)</td></tr> <tr><td class="mdescLeft"> </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> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a134a47825719a0175ce11ef0d65b220d">GetRange</a> ()</td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a9c996cda0d9e5921d74dd2fd35b9129a">Direction</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get direction of declaration. <a href="#a9c996cda0d9e5921d74dd2fd35b9129a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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"> </td><td class="mdescRight">Set direction of declaration. <a href="#a4f2d28d61f8c17ce145b63a5c7314e78"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#ac9213bc88315ad6ae7a7b537e7da1bd0">Lval</a> (int aLval)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set lval flag. <a href="#ac9213bc88315ad6ae7a7b537e7da1bd0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a7476be9d38887a113f0c81189e466b8c">Lval</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get lval flag. <a href="#a7476be9d38887a113f0c81189e466b8c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#aa89f087c18e51e18dc8cb66749d3233b">IsArray</a> (int v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set array flag. <a href="#aa89f087c18e51e18dc8cb66749d3233b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a2e90a6cfc997bd3217d1133bd0881b6c">IsArray</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get array flag. <a href="#a2e90a6cfc997bd3217d1133bd0881b6c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#a7677b4b9fbbbbc28b7e344c9a6b8e19a">IndicesRangeValid</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#ad6acebb1ccb01ee0ff422d8dfc6fea6b">ConstrainTypes</a> (const list< <a class="el" href="cdecl_8h.html#a2079c5562904beb3c6648c13117153a0">Decl_t</a> > &aTypes)</td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classCFref.html#ae42560b26c97d4db9b0201076f653f49">Dump</a> (FILE *f)</td></tr> <tr><td class="mdescLeft"> </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 & 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> * </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><td> </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> </td><td>declarations symbol. </td></tr> <tr><td valign="top"></td><td valign="top"><em>aLoc</em> </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> * </td> <td class="paramname"> <em>heap</em></td> <td> ) </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> </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< Decl_t > &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< <a class="el" href="cdecl_8h.html#a2079c5562904beb3c6648c13117153a0">Decl_t</a> > & </td> <td class="paramname"> <em>aTypes</em></td> <td> ) </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> </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> ) </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> </td> <td class="paramname"> <em>d</em></td> <td> ) </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> </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> ) </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 * </td> <td class="paramname"> <em>f</em></td> <td> ) </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> </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 </td> <td class="paramname"></td> <td> ) </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 </td> <td class="paramname"></td> <td> ) </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 </td> <td class="paramname"></td> <td> ) </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> ) </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 </td> <td class="paramname"></td> <td> ) </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> ) </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 </td> <td class="paramname"> <em>v</em></td> <td> ) </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> </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> ) </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> </td> <td class="paramname"> <em>t</em></td> <td> ) </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> </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 </td> <td class="paramname"></td> <td> ) </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 </td> <td class="paramname"></td> <td> ) </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 </td> <td class="paramname"></td> <td> ) </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 </td> <td class="paramname"> <em>aLval</em></td> <td> ) </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> </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> ) </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> * </td> <td class="paramname"> <em>aDecl</em></td> <td> ) </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> </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 </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> * </td> <td class="paramname"> <em>range</em></td><td> </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> </td><td>non-zero if declaration is an array. </td></tr> <tr><td valign="top"></td><td valign="top"><em>range</em> </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 <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address> </body> </html>