Sophie

Sophie

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

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: CDataType 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="#pro-methods">Protected Member Functions</a>  </div>
  <div class="headertitle">
<h1>CDataType Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="CDataType" --><!-- doxytag: inherits="CObject" -->
<p>Base class for describing data types.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="cdatatype_8h_source.html">cdatatype.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for CDataType:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classCDataType.png" usemap="#CDataType_map" alt=""/>
  <map id="CDataType_map" name="CDataType_map">
<area href="classCObject.html" alt="CObject" shape="rect" coords="0,0,86,24"/>
<area href="classCSimpleType.html" alt="CSimpleType" shape="rect" coords="0,112,86,136"/>
</map>
</div>

<p><a href="classCDataType-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="classCDataType.html#a2f06f72000f839b55421c5c8655e17b0">CDataType</a> (<a class="el" href="cdatatype_8h.html#adfd781749f7a9fe2df00a9bc5938efa3">VarDataType_t</a> t)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create data type instance.  <a href="#a2f06f72000f839b55421c5c8655e17b0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCDataType.html#a0ae79544693244d0277da11b113bfb6b">CDataType</a> (<a class="el" href="cdatatype_8h.html#adfd781749f7a9fe2df00a9bc5938efa3">VarDataType_t</a> t, list&lt; <a class="el" href="classCNode.html">CNode</a> * &gt; packedList)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create data type instance.  <a href="#a0ae79544693244d0277da11b113bfb6b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCDataType.html">CDataType</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCDataType.html#a7948a601d3674deeb99110cf90754591">Clone</a> (<a class="el" href="classCObstack.html">CObstack</a> *heap)=0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new copy with a deep copy.  <a href="#a7948a601d3674deeb99110cf90754591"></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="classCDataType.html#a638c60423053f8e049b5c0bbaf9c961e">SetVarDataType</a> (<a class="el" href="cdatatype_8h.html#adfd781749f7a9fe2df00a9bc5938efa3">VarDataType_t</a> v)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set declaration's variable data type.  <a href="#a638c60423053f8e049b5c0bbaf9c961e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="cdatatype_8h.html#adfd781749f7a9fe2df00a9bc5938efa3">VarDataType_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCDataType.html#acbfb13c71bde4a4e2cc2240470a3c1ae">GetVarDataType</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get declaration's variable data type.  <a href="#acbfb13c71bde4a4e2cc2240470a3c1ae"></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="classCDataType.html#ab8f546aedd3be8df55ad56dbb83d627c">SetConst</a> (int v)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set declaration's const property.  <a href="#ab8f546aedd3be8df55ad56dbb83d627c"></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="classCDataType.html#a977ae3fb34fa0a64a36d521ca1d0a3cc">GetConst</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get declaration's const property.  <a href="#a977ae3fb34fa0a64a36d521ca1d0a3cc"></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="classCDataType.html#a76cb34f7850f8e5755ebd9355c18be3d">GetTwoState</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get declaration's 2 state property.  <a href="#a76cb34f7850f8e5755ebd9355c18be3d"></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="classCDataType.html#a2a351dfb3473cce09109c4d01f792ad2">GetSigned</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get declartion's signed property.  <a href="#a2a351dfb3473cce09109c4d01f792ad2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="cdatatype_8h.html#aff499c00c9873bf3fcf1c46bf2652790">NodeType_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCDataType.html#a57461302c7fcae3f01c90b46029f27b4">GetNodeType</a> (void) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get data type.  <a href="#a57461302c7fcae3f01c90b46029f27b4"></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="classCDataType.html#aefd07b178e91517f770ab1b17415c4f9">IsBaseWidthConstant</a> (void) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if base width (sans packed dimensions) of declaration is constant, ie dependent upon only constants and parameters.  <a href="#aefd07b178e91517f770ab1b17415c4f9"></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="classCDataType.html#a9e35d055ee454f93fd7d6a656adfa0c3">IsBaseWidthVolatile</a> (void) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if base width (sans packed dimensions) of declaration is volatile, ie depend upon parameters or variables.  <a href="#a9e35d055ee454f93fd7d6a656adfa0c3"></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="classCDataType.html#ae2d5bb2774882cd7c54bc2aecf1dda27">IsBaseWidthEvaluateable</a> (void) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if base width (sans packed dimensions) of declaration can be evaluated.  <a href="#ae2d5bb2774882cd7c54bc2aecf1dda27"></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="classCDataType.html#a1862bc0efabf6c777c6d789c0efe4664">GetBaseWidth</a> (void) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluate base width (sans packed dimensions) of declaration.  <a href="#a1862bc0efabf6c777c6d789c0efe4664"></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="classCDataType.html#a60c4ff7ca5f188d0fdcb1506502b1984">GetBaseWidthExp</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get expression for datatype's base width (sans packed dimensions).  <a href="#a60c4ff7ca5f188d0fdcb1506502b1984"></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="classCDataType.html#ae0a3b9004bf75d9149b6bbec7149fc8d">IsScalar</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if complete data structure is a scalar.  <a href="#ae0a3b9004bf75d9149b6bbec7149fc8d"></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="classCDataType.html#a88613fc39d24537ca1b9aa3d8810ec06">IsVector</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if complete data structure is a vector.  <a href="#a88613fc39d24537ca1b9aa3d8810ec06"></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="classCDataType.html#a1f33f248b84008d6bfabb22c0edc9d51">IsPacked</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if complete data structure is packed.  <a href="#a1f33f248b84008d6bfabb22c0edc9d51"></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="classCDataType.html#a2ba795a18846f2d5f59c9ac1d29b672a">IsPackedWidthConstant</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if packed or vector width of declaration is constant, ie dependent upon only constants and parameters.  <a href="#a2ba795a18846f2d5f59c9ac1d29b672a"></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="classCDataType.html#ad762de71ab8056a9f8c166863e2fa570">IsPackedWidthVolatile</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if packed or vector width of declaration is volatile, ie depend upon parameters or variables.  <a href="#ad762de71ab8056a9f8c166863e2fa570"></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="classCDataType.html#ad318d2ad41c7b2cb3d6e81244e6fb396">IsPackedWidthEvaluateable</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if packed or vector width of declaration can be evaluated.  <a href="#ad318d2ad41c7b2cb3d6e81244e6fb396"></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="classCDataType.html#a775620de875072faaeed32f192b11748">GetPackedMsb</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get expression for declaration's msb.  <a href="#a775620de875072faaeed32f192b11748"></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="classCDataType.html#a624a2f58465e80c0e77f6855901020be">GetPackedLsb</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get expression for declaration's lsb.  <a href="#a624a2f58465e80c0e77f6855901020be"></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="classCDataType.html#a2199f10cd56c978fefbd4a80290c22a8">GetPackedRange</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get expression for datatype's overall packed or vector range (msb/lsb).  <a href="#a2199f10cd56c978fefbd4a80290c22a8"></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="classCDataType.html#a849cc93a732b36072f58855432f0a486">GetPackedWidth</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluate packed or vector width of declaration.  <a href="#a849cc93a732b36072f58855432f0a486"></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="classCDataType.html#a3148cd00d38e023b0773f103841100c4">GetPackedWidthExp</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get expression for datatype's overall packed or vector width.  <a href="#a3148cd00d38e023b0773f103841100c4"></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="classCDataType.html#ad76bef34f1228366dd0baafd0c47fc10">PackedWidthDirection</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluate current decl width direction.  <a href="#ad76bef34f1228366dd0baafd0c47fc10"></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="classCDataType.html#a7622414ff23229f80fca51a9067c63fa">GetNumberOfPackedDimensions</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get number of packed dimensions of declaration.  <a href="#a7622414ff23229f80fca51a9067c63fa"></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="classCDataType.html#a9e58c31ec3c4e3ebf002f2c4b44a74d0">GetPackedMsi</a> (<a class="el" href="glue_8h.html#a0cb58e7e6f0bad369840a52e54a56ae0">INT32</a> dim) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get expression tree for upper limit of given packed array dimension.  <a href="#a9e58c31ec3c4e3ebf002f2c4b44a74d0"></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="classCDataType.html#abdf6b985ea0f73622f24293ace7c3607">GetPackedLsi</a> (<a class="el" href="glue_8h.html#a0cb58e7e6f0bad369840a52e54a56ae0">INT32</a> dim) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get expression tree for lower limit of packed array dimension.  <a href="#abdf6b985ea0f73622f24293ace7c3607"></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="classCDataType.html#a1bc2c13ea265858af2b9518493a0b50f">GetPackedRange</a> (<a class="el" href="glue_8h.html#a0cb58e7e6f0bad369840a52e54a56ae0">INT32</a> dim) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get expression for range of packed array for dimension.  <a href="#a1bc2c13ea265858af2b9518493a0b50f"></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="classCDataType.html#ac87a05eaba3e858db16987b7f599f345">Dump</a> (FILE *f) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dump data type info to file descriptor.  <a href="#ac87a05eaba3e858db16987b7f599f345"></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="classCDataType.html#a8a8a008cd57f5869d0af73dadfa8b3c4">PreVisit1</a> (int(*callback)(<a class="el" href="classCNode.html">CNode</a> *, void *), void *data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Walk tree invoking callback on each node before children have been visited.  <a href="#a8a8a008cd57f5869d0af73dadfa8b3c4"></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="classCDataType.html#a510f0b9bb9256197e11873f5d9ab801f">PostVisit1</a> (void(*callback)(<a class="el" href="classCNode.html">CNode</a> *, void *), void *data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Walk tree invoking callback on each node after children have been visited.  <a href="#a510f0b9bb9256197e11873f5d9ab801f"></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="classCDataType.html#a2a83ea33a7d6582955fadecea7d61669">PostSubVisit1</a> (<a class="el" href="classCNode.html">CNode</a> *(*callback)(<a class="el" href="classCNode.html">CNode</a> *, void *), void *data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Walk tree invoking callback on each node after children have been visited.  <a href="#a2a83ea33a7d6582955fadecea7d61669"></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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCDataType.html#a1ae671e209cdb0d123b4349eff1a9db0">Copy</a> (<a class="el" href="classCObstack.html">CObstack</a> *heap, const <a class="el" href="classCDataType.html">CDataType</a> &amp;o)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform deep copy of given object to this one This should never be call directly, only by subclasses.  <a href="#a1ae671e209cdb0d123b4349eff1a9db0"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Base class for describing data types. </p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a2f06f72000f839b55421c5c8655e17b0"></a><!-- doxytag: member="CDataType::CDataType" ref="a2f06f72000f839b55421c5c8655e17b0" args="(VarDataType_t t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CDataType::CDataType </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="cdatatype_8h.html#adfd781749f7a9fe2df00a9bc5938efa3">VarDataType_t</a>&nbsp;</td>
          <td class="paramname"> <em>t</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create data type instance. </p>

</div>
</div>
<a class="anchor" id="a0ae79544693244d0277da11b113bfb6b"></a><!-- doxytag: member="CDataType::CDataType" ref="a0ae79544693244d0277da11b113bfb6b" args="(VarDataType_t t, list&lt; CNode * &gt; packedList)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CDataType::CDataType </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="cdatatype_8h.html#adfd781749f7a9fe2df00a9bc5938efa3">VarDataType_t</a>&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">list&lt; <a class="el" href="classCNode.html">CNode</a> * &gt;&nbsp;</td>
          <td class="paramname"> <em>packedList</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 data type instance. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a7948a601d3674deeb99110cf90754591"></a><!-- doxytag: member="CDataType::Clone" ref="a7948a601d3674deeb99110cf90754591" args="(CObstack *heap)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCDataType.html">CDataType</a>* CDataType::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> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new copy with a deep copy. </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>

<p>Implemented in <a class="el" href="classCSimpleType.html#ade9c543a6b0fa94d97c9a58954c7eab5">CSimpleType</a>.</p>

</div>
</div>
<a class="anchor" id="a1ae671e209cdb0d123b4349eff1a9db0"></a><!-- doxytag: member="CDataType::Copy" ref="a1ae671e209cdb0d123b4349eff1a9db0" args="(CObstack *heap, const CDataType &amp;o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CDataType::Copy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCObstack.html">CObstack</a> *&nbsp;</td>
          <td class="paramname"> <em>heap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classCDataType.html">CDataType</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>o</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Perform deep copy of given object to this one This should never be call directly, only by subclasses. </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>
    <tr><td valign="top"></td><td valign="top"><em>o</em>&nbsp;</td><td>declaration to copy. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac87a05eaba3e858db16987b7f599f345"></a><!-- doxytag: member="CDataType::Dump" ref="ac87a05eaba3e858db16987b7f599f345" args="(FILE *f) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CDataType::Dump </td>
          <td>(</td>
          <td class="paramtype">FILE *&nbsp;</td>
          <td class="paramname"> <em>f</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Dump data type 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>Implemented in <a class="el" href="classCSimpleType.html#a8a1f444feb242ecb87a224fd4ef3f5bd">CSimpleType</a>.</p>

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

<p>Evaluate base width (sans packed dimensions) of declaration. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>packed or vector width of declaration. </dd></dl>

<p>Implemented in <a class="el" href="classCSimpleType.html#aebfb935bc371476943959a2041eae708">CSimpleType</a>.</p>

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

<p>Get expression for datatype's base width (sans packed dimensions). </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>width expression </dd></dl>

<p>Implemented in <a class="el" href="classCSimpleType.html#a0e2b1f61b27fff788bf7440c773c72e4">CSimpleType</a>.</p>

</div>
</div>
<a class="anchor" id="a977ae3fb34fa0a64a36d521ca1d0a3cc"></a><!-- doxytag: member="CDataType::GetConst" ref="a977ae3fb34fa0a64a36d521ca1d0a3cc" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int CDataType::GetConst </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get declaration's const property. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>value of const property. </dd></dl>

</div>
</div>
<a class="anchor" id="a57461302c7fcae3f01c90b46029f27b4"></a><!-- doxytag: member="CDataType::GetNodeType" ref="a57461302c7fcae3f01c90b46029f27b4" args="(void) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="cdatatype_8h.html#aff499c00c9873bf3fcf1c46bf2652790">NodeType_t</a> CDataType::GetNodeType </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get data type. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>node type </dd></dl>

<p>Implemented in <a class="el" href="classCSimpleType.html#a2aedc229651f502d8886e60d85f095fb">CSimpleType</a>.</p>

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

<p>Get number of packed dimensions of declaration. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of dimensions, 0 if non-array. </dd></dl>

<p>Reimplemented in <a class="el" href="classCSimpleType.html#a453a9d05129278bff37907d05c590fe7">CSimpleType</a>.</p>

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

<p>Get expression for declaration's lsb. </p>
<p>Valid only for Packed and Vector declarations. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>lsb expression, NULL if scalar. </dd></dl>

<p>Reimplemented in <a class="el" href="classCSimpleType.html#abc0e4798cecbc5889095f83e3c0d75b6">CSimpleType</a>.</p>

</div>
</div>
<a class="anchor" id="abdf6b985ea0f73622f24293ace7c3607"></a><!-- doxytag: member="CDataType::GetPackedLsi" ref="abdf6b985ea0f73622f24293ace7c3607" args="(INT32 dim) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCNode.html">CNode</a>* CDataType::GetPackedLsi </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="glue_8h.html#a0cb58e7e6f0bad369840a52e54a56ae0">INT32</a>&nbsp;</td>
          <td class="paramname"> <em>dim</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get expression tree for lower limit of packed array dimension. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dim</em>&nbsp;</td><td>dimension. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>expression tree for packed lower limit. </dd></dl>

<p>Reimplemented in <a class="el" href="classCSimpleType.html#aa68de410b6e37a9726dd623098edcca2">CSimpleType</a>.</p>

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

<p>Get expression for declaration's msb. </p>
<p>Valid only for Packed and Vector declarations. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>msb expression, NULL if scalar. </dd></dl>

<p>Reimplemented in <a class="el" href="classCSimpleType.html#a67a36f98ed19afd5313c1498ea1d5698">CSimpleType</a>.</p>

</div>
</div>
<a class="anchor" id="a9e58c31ec3c4e3ebf002f2c4b44a74d0"></a><!-- doxytag: member="CDataType::GetPackedMsi" ref="a9e58c31ec3c4e3ebf002f2c4b44a74d0" args="(INT32 dim) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCNode.html">CNode</a>* CDataType::GetPackedMsi </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="glue_8h.html#a0cb58e7e6f0bad369840a52e54a56ae0">INT32</a>&nbsp;</td>
          <td class="paramname"> <em>dim</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get expression tree for upper limit of given packed array dimension. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dim</em>&nbsp;</td><td>dimension. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>expression tree for packed upper limit. </dd></dl>

<p>Reimplemented in <a class="el" href="classCSimpleType.html#a23a46265e1664b702ec732b255d555f3">CSimpleType</a>.</p>

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

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

<p>Reimplemented in <a class="el" href="classCSimpleType.html#ad47efebd24a3adea2350b98681660cae">CSimpleType</a>.</p>

</div>
</div>
<a class="anchor" id="a1bc2c13ea265858af2b9518493a0b50f"></a><!-- doxytag: member="CDataType::GetPackedRange" ref="a1bc2c13ea265858af2b9518493a0b50f" args="(INT32 dim) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCNode.html">CNode</a>* CDataType::GetPackedRange </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="glue_8h.html#a0cb58e7e6f0bad369840a52e54a56ae0">INT32</a>&nbsp;</td>
          <td class="paramname"> <em>dim</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get expression for range of packed array for dimension. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dim</em>&nbsp;</td><td>dimension to get. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>range expression for limit. </dd></dl>

<p>Reimplemented in <a class="el" href="classCSimpleType.html#aef9843286c04d3c5ccfb7df37587e194">CSimpleType</a>.</p>

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

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

<p>Reimplemented in <a class="el" href="classCSimpleType.html#a6808daa0db3a131ffd24fd2d4faf86f9">CSimpleType</a>.</p>

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

<p>Get expression for datatype's overall packed or vector width. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>width expression </dd></dl>

<p>Reimplemented in <a class="el" href="classCSimpleType.html#aee2d15724fe9a1c8a900e1b4260e3018">CSimpleType</a>.</p>

</div>
</div>
<a class="anchor" id="a2a351dfb3473cce09109c4d01f792ad2"></a><!-- doxytag: member="CDataType::GetSigned" ref="a2a351dfb3473cce09109c4d01f792ad2" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int CDataType::GetSigned </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get declartion's signed property. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>value of signed property. </dd></dl>

<p>Implemented in <a class="el" href="classCSimpleType.html#a84c0423c0c5097c9670e36826c0df514">CSimpleType</a>.</p>

</div>
</div>
<a class="anchor" id="a76cb34f7850f8e5755ebd9355c18be3d"></a><!-- doxytag: member="CDataType::GetTwoState" ref="a76cb34f7850f8e5755ebd9355c18be3d" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int CDataType::GetTwoState </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get declaration's 2 state property. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>value of 2 state property. </dd></dl>

<p>Implemented in <a class="el" href="classCSimpleType.html#a0efeb29d6371c8ba5da2106db0d7dc77">CSimpleType</a>.</p>

</div>
</div>
<a class="anchor" id="acbfb13c71bde4a4e2cc2240470a3c1ae"></a><!-- doxytag: member="CDataType::GetVarDataType" ref="acbfb13c71bde4a4e2cc2240470a3c1ae" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="cdatatype_8h.html#adfd781749f7a9fe2df00a9bc5938efa3">VarDataType_t</a> CDataType::GetVarDataType </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get declaration's variable data type. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>value of signed property. </dd></dl>

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

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

<p>Implemented in <a class="el" href="classCSimpleType.html#aac00eb41ddb410165a6220f3ec180928">CSimpleType</a>.</p>

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

<p>Determine if base width (sans packed dimensions) of declaration can be evaluated. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>non-zero of packed or vector width of declaration can be evaluated. </dd></dl>

<p>Implemented in <a class="el" href="classCSimpleType.html#a6b40e48f786638995588421ebca157ce">CSimpleType</a>.</p>

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

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

<p>Implemented in <a class="el" href="classCSimpleType.html#a3d2bdc7c7795aab52092ba3d7bc4e8d8">CSimpleType</a>.</p>

</div>
</div>
<a class="anchor" id="a1f33f248b84008d6bfabb22c0edc9d51"></a><!-- doxytag: member="CDataType::IsPacked" ref="a1f33f248b84008d6bfabb22c0edc9d51" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int CDataType::IsPacked </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Determine if complete data structure is packed. </p>
<p>Packed data structures can be treated as a single vector. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>non-zero if complete data structure is packed. </dd></dl>

<p>Implemented in <a class="el" href="classCSimpleType.html#a70a60916d208235393b20fa16df45cce">CSimpleType</a>.</p>

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

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

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

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

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

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

</div>
</div>
<a class="anchor" id="ae0a3b9004bf75d9149b6bbec7149fc8d"></a><!-- doxytag: member="CDataType::IsScalar" ref="ae0a3b9004bf75d9149b6bbec7149fc8d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int CDataType::IsScalar </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Determine if complete data structure is a scalar. </p>
<p>Scalars are single-bit intergal types. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>non-zero if complete data structure is a vector. </dd></dl>

</div>
</div>
<a class="anchor" id="a88613fc39d24537ca1b9aa3d8810ec06"></a><!-- doxytag: member="CDataType::IsVector" ref="a88613fc39d24537ca1b9aa3d8810ec06" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int CDataType::IsVector </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Determine if complete data structure is a vector. </p>
<p>Vectors are multi-bit intergal types. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>non-zero if complete data structure is a vector. </dd></dl>

<p>Implemented in <a class="el" href="classCSimpleType.html#a675a68657bcf98e747bc68d4d7d7946b">CSimpleType</a>.</p>

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

<p>Evaluate current decl width direction. </p>
<p>Expression must be constant. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 - big endian, -1 - little endian, 0 - cannot be determined </dd></dl>

<p>Reimplemented in <a class="el" href="classCSimpleType.html#a92f8b946b500bfddd3debda07d814246">CSimpleType</a>.</p>

</div>
</div>
<a class="anchor" id="a2a83ea33a7d6582955fadecea7d61669"></a><!-- doxytag: member="CDataType::PostSubVisit1" ref="a2a83ea33a7d6582955fadecea7d61669" args="(CNode *(*callback)(CNode *, void *), void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CDataType::PostSubVisit1 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCNode.html">CNode</a> *(*)(<a class="el" href="classCNode.html">CNode</a> *, void *)&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Walk tree invoking callback on each node after children have been visited. </p>
<p>callback may modify tree and return a modified subtree. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>function to be called for each node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>opaque argument passed to callback function </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>modified child subtree. </dd></dl>

</div>
</div>
<a class="anchor" id="a510f0b9bb9256197e11873f5d9ab801f"></a><!-- doxytag: member="CDataType::PostVisit1" ref="a510f0b9bb9256197e11873f5d9ab801f" args="(void(*callback)(CNode *, void *), void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CDataType::PostVisit1 </td>
          <td>(</td>
          <td class="paramtype">void(*)(<a class="el" href="classCNode.html">CNode</a> *, void *)&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Walk tree invoking callback on each node after children have been visited. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>function to be called for each node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>opaque argument passed to callback function </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8a8a008cd57f5869d0af73dadfa8b3c4"></a><!-- doxytag: member="CDataType::PreVisit1" ref="a8a8a008cd57f5869d0af73dadfa8b3c4" args="(int(*callback)(CNode *, void *), void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CDataType::PreVisit1 </td>
          <td>(</td>
          <td class="paramtype">int(*)(<a class="el" href="classCNode.html">CNode</a> *, void *)&nbsp;</td>
          <td class="paramname"> <em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Walk tree invoking callback on each node before children have been visited. </p>
<p>callback can terminate transversal early. callback returns 0 to terminate transversal early. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callback</em>&nbsp;</td><td>function to be called for each node </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>opaque argument passed to callback function </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab8f546aedd3be8df55ad56dbb83d627c"></a><!-- doxytag: member="CDataType::SetConst" ref="ab8f546aedd3be8df55ad56dbb83d627c" args="(int v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CDataType::SetConst </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>v</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set declaration's const property. </p>
<p>Use to indicate type is a constant variable. </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>value to const property. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a638c60423053f8e049b5c0bbaf9c961e"></a><!-- doxytag: member="CDataType::SetVarDataType" ref="a638c60423053f8e049b5c0bbaf9c961e" args="(VarDataType_t v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CDataType::SetVarDataType </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="cdatatype_8h.html#adfd781749f7a9fe2df00a9bc5938efa3">VarDataType_t</a>&nbsp;</td>
          <td class="paramname"> <em>v</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set declaration's variable data type. </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>variable data type </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="cdatatype_8h_source.html">cdatatype.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>