<!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: CMacro Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td width="180"><a href="index.html"><img src="vrq.png" width="150" height="100" border="0" alt="vrq"></a></td> <td background="top_bg.png" align="right" width="100%"> <img src="glyth.png" width="500" height="100" border="0" alt=""> </td> </tr> <tr> <td background="#FFFFFF" align="right" width="50" height="4"></td> </tr> </table> </head><body> <!-- Generated by Doxygen 1.7.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> </div> <div class="headertitle"> <h1>CMacro Class Reference</h1> </div> </div> <div class="contents"> <!-- doxytag: class="CMacro" --><!-- doxytag: inherits="CDecl" --> <p>Declaration object for preprocessor macros. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="cmacro_8h_source.html">cmacro.h</a>></code></p> <div class="dynheader"> Inheritance diagram for CMacro:</div> <div class="dyncontent"> <div class="center"> <img src="classCMacro.png" usemap="#CMacro_map" alt=""/> <map id="CMacro_map" name="CMacro_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="classCMacro-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="classCMacro.html#a7f9760c55590ce32d00ae57c32a660d8">CMacro</a> (<a class="el" href="classCSymbol.html">CSymbol</a> *aSymbol, <a class="el" href="structCoord__t.html">Coord_t</a> *aLoc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a macro declaration object. <a href="#a7f9760c55590ce32d00ae57c32a660d8"></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="classCMacro.html#a00332e1c229c81aac60651a5caae9d7b">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="#a00332e1c229c81aac60651a5caae9d7b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCMacro.html#aa959d0806eaf336be216b04e37dcdfae">GetBody</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get body of macro. <a href="#aa959d0806eaf336be216b04e37dcdfae"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCMacro.html#a4cd4c47aed7e839fd78f8a83fa13d522">SetBody</a> (char *aBody)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set body of macro. <a href="#a4cd4c47aed7e839fd78f8a83fa13d522"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCMacro.html#ad55b44a161c6953981cec374490e94cb">GetZone</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get preprocessor zone number for last macro definition. <a href="#ad55b44a161c6953981cec374490e94cb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCMacro.html#a29d7a058603a9771ce6aa5c84aaf5f55">SetZone</a> (int aZone)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set preprocessor zone number. <a href="#a29d7a058603a9771ce6aa5c84aaf5f55"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCMacro.html#a28b3d3348d68104d5739294e1d0f54f4">SetComplex</a> (int aComplex)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set complex flag. <a href="#a28b3d3348d68104d5739294e1d0f54f4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCMacro.html#a545fea7c40d1062efec66f4e98b13125">IsComplex</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get complex flag. <a href="#a545fea7c40d1062efec66f4e98b13125"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">char ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classCMacro.html#a4dd57b604919829e5220148cf839499c">GetArgList</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get macro arguments. <a href="#a4dd57b604919829e5220148cf839499c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCMacro.html#accd38519e893a5866064195b1e7aeb09">SetArgList</a> (char **argList)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set macro arguments. <a href="#accd38519e893a5866064195b1e7aeb09"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCMacro.html#a0d2a8d9cf11068aada5de8c34c1f2481">Dump</a> (FILE *f)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Dump macro info to file descriptor. <a href="#a0d2a8d9cf11068aada5de8c34c1f2481"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCMacro.html#a1b8388200fbffa56ee1f5858e7778d52">IsDefined</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get defined flag. <a href="#a1b8388200fbffa56ee1f5858e7778d52"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCMacro.html#a9fc41806dbbb9b8eb85c0665c600d32b">SetDefined</a> (int aDefined)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set defined flag. <a href="#a9fc41806dbbb9b8eb85c0665c600d32b"></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 <a class="el" href="classCMacro.html">CMacro</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCMacro.html#a9739bb197c6db14c1f9e8ab2a156935f">LookupMacro</a> (const char *aName)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Find macro definition. <a href="#a9739bb197c6db14c1f9e8ab2a156935f"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCMacro.html#a8f7c66eaa42f7ad5c2c8586f11266df4">Copy</a> (<a class="el" href="classCObstack.html">CObstack</a> *heap, <a class="el" href="classCMacro.html">CMacro</a> &d)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Deep copy of declaration. <a href="#a8f7c66eaa42f7ad5c2c8586f11266df4"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Declaration object for preprocessor macros. </p> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a7f9760c55590ce32d00ae57c32a660d8"></a><!-- doxytag: member="CMacro::CMacro" ref="a7f9760c55590ce32d00ae57c32a660d8" args="(CSymbol *aSymbol, Coord_t *aLoc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CMacro::CMacro </td> <td>(</td> <td class="paramtype"><a class="el" href="classCSymbol.html">CSymbol</a> * </td> <td class="paramname"> <em>aSymbol</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 macro 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>aSymbol</em> </td><td>name of macro. </td></tr> <tr><td valign="top"></td><td valign="top"><em>aLoc</em> </td><td>file coordinate of definition. </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a00332e1c229c81aac60651a5caae9d7b"></a><!-- doxytag: member="CMacro::Clone" ref="a00332e1c229c81aac60651a5caae9d7b" 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>* CMacro::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> [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="a8f7c66eaa42f7ad5c2c8586f11266df4"></a><!-- doxytag: member="CMacro::Copy" ref="a8f7c66eaa42f7ad5c2c8586f11266df4" args="(CObstack *heap, CMacro &d)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CMacro::Copy </td> <td>(</td> <td class="paramtype"><a class="el" href="classCObstack.html">CObstack</a> * </td> <td class="paramname"> <em>heap</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCMacro.html">CMacro</a> & </td> <td class="paramname"> <em>d</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Deep copy 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>heap</em> </td><td>heap to use for allocation. </td></tr> <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>declaration to copy. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a0d2a8d9cf11068aada5de8c34c1f2481"></a><!-- doxytag: member="CMacro::Dump" ref="a0d2a8d9cf11068aada5de8c34c1f2481" args="(FILE *f)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void CMacro::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 macro 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="a4dd57b604919829e5220148cf839499c"></a><!-- doxytag: member="CMacro::GetArgList" ref="a4dd57b604919829e5220148cf839499c" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char** CMacro::GetArgList </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get macro arguments. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to array of macro arguments. </dd></dl> </div> </div> <a class="anchor" id="aa959d0806eaf336be216b04e37dcdfae"></a><!-- doxytag: member="CMacro::GetBody" ref="aa959d0806eaf336be216b04e37dcdfae" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* CMacro::GetBody </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get body of macro. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>macro body. </dd></dl> </div> </div> <a class="anchor" id="ad55b44a161c6953981cec374490e94cb"></a><!-- doxytag: member="CMacro::GetZone" ref="ad55b44a161c6953981cec374490e94cb" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int CMacro::GetZone </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Get preprocessor zone number for last macro definition. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>preprocessor zone number. </dd></dl> </div> </div> <a class="anchor" id="a545fea7c40d1062efec66f4e98b13125"></a><!-- doxytag: member="CMacro::IsComplex" ref="a545fea7c40d1062efec66f4e98b13125" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int CMacro::IsComplex </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get complex flag. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>non-zero if macro has arguments. </dd></dl> </div> </div> <a class="anchor" id="a1b8388200fbffa56ee1f5858e7778d52"></a><!-- doxytag: member="CMacro::IsDefined" ref="a1b8388200fbffa56ee1f5858e7778d52" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int CMacro::IsDefined </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get defined flag. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>non-zero if macro has been defined. </dd></dl> </div> </div> <a class="anchor" id="a9739bb197c6db14c1f9e8ab2a156935f"></a><!-- doxytag: member="CMacro::LookupMacro" ref="a9739bb197c6db14c1f9e8ab2a156935f" args="(const char *aName)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classCMacro.html">CMacro</a>* CMacro::LookupMacro </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>aName</em></td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Find macro definition. </p> <p>Create an undefined entry if it doesn't exist. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>aName</em> </td><td>char pointer to macro name. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>macro object. </dd></dl> </div> </div> <a class="anchor" id="accd38519e893a5866064195b1e7aeb09"></a><!-- doxytag: member="CMacro::SetArgList" ref="accd38519e893a5866064195b1e7aeb09" args="(char **argList)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CMacro::SetArgList </td> <td>(</td> <td class="paramtype">char ** </td> <td class="paramname"> <em>argList</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Set macro arguments. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>argList</em> </td><td>pointer to array of macro arguments. Array is not copied. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a4cd4c47aed7e839fd78f8a83fa13d522"></a><!-- doxytag: member="CMacro::SetBody" ref="a4cd4c47aed7e839fd78f8a83fa13d522" args="(char *aBody)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CMacro::SetBody </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>aBody</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Set body of macro. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>aBody</em> </td><td>body of macro. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a28b3d3348d68104d5739294e1d0f54f4"></a><!-- doxytag: member="CMacro::SetComplex" ref="a28b3d3348d68104d5739294e1d0f54f4" args="(int aComplex)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CMacro::SetComplex </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>aComplex</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Set complex 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>aComplex</em> </td><td>non-zero if macro has arguments. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a9fc41806dbbb9b8eb85c0665c600d32b"></a><!-- doxytag: member="CMacro::SetDefined" ref="a9fc41806dbbb9b8eb85c0665c600d32b" args="(int aDefined)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CMacro::SetDefined </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>aDefined</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Set defined 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>aDefined</em> </td><td>non-zero if macro has been defined. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a29d7a058603a9771ce6aa5c84aaf5f55"></a><!-- doxytag: member="CMacro::SetZone" ref="a29d7a058603a9771ce6aa5c84aaf5f55" args="(int aZone)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CMacro::SetZone </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>aZone</em></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set preprocessor zone number. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>aZone</em> </td><td>preprocessor zone number. </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="cmacro_8h_source.html">cmacro.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>