Sophie

Sophie

distrib > Mageia > 7 > i586 > media > core-release > by-pkgid > da565b63a5fc04f7d71d08b821cb0a46 > files > 384

antlr-C++-doc-2.7.7-43.mga7.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ANTLR Support Libraries 2.7.1+: ASTFactory Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ANTLR Support Libraries 2.7.1+
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="classASTFactory-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ASTFactory Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="ASTFactory_8hpp_source.html">ASTFactory.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ab1f4d9a4164b3fdbc108cd80c4a90c91"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="ASTFactory_8hpp.html#a46308aec6ca268fe522df4903cd52db9">factory_type_</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#ab1f4d9a4164b3fdbc108cd80c4a90c91">factory_type</a></td></tr>
<tr class="separator:ab1f4d9a4164b3fdbc108cd80c4a90c91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c97858a3e774830ff79786df5e7eeb8"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="ASTFactory_8hpp.html#a3b00832dfc56df44016c8e4a2fa859d9">factory_descriptor_</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a9c97858a3e774830ff79786df5e7eeb8">factory_descriptor</a></td></tr>
<tr class="separator:a9c97858a3e774830ff79786df5e7eeb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dd9db29bc09513ee1b8d669cd47177d"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="ASTFactory_8hpp.html#ad238d646f2cb061795ebb1781b5bd0b1">factory_descriptor_list_</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a5dd9db29bc09513ee1b8d669cd47177d">factory_descriptor_list</a></td></tr>
<tr class="separator:a5dd9db29bc09513ee1b8d669cd47177d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:afd7f65cf43db744f2d702c6e7f6f2442"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#afd7f65cf43db744f2d702c6e7f6f2442">ASTFactory</a> ()</td></tr>
<tr class="memdesc:afd7f65cf43db744f2d702c6e7f6f2442"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make new factory. Per default (Ref)<a class="el" href="classCommonAST.html">CommonAST</a> instances are generated.  <a href="#afd7f65cf43db744f2d702c6e7f6f2442">More...</a><br /></td></tr>
<tr class="separator:afd7f65cf43db744f2d702c6e7f6f2442"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00f1b0f6666c42d4524458d26898b4ed"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a00f1b0f6666c42d4524458d26898b4ed">ASTFactory</a> (const char *factory_node_name, <a class="el" href="classASTFactory.html#ab1f4d9a4164b3fdbc108cd80c4a90c91">factory_type</a> factory)</td></tr>
<tr class="separator:a00f1b0f6666c42d4524458d26898b4ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdf5532a1a16457623335fffcd8ff96e"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#acdf5532a1a16457623335fffcd8ff96e">~ASTFactory</a> ()</td></tr>
<tr class="memdesc:acdf5532a1a16457623335fffcd8ff96e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy factory.  <a href="#acdf5532a1a16457623335fffcd8ff96e">More...</a><br /></td></tr>
<tr class="separator:acdf5532a1a16457623335fffcd8ff96e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e7fb1eefd7138f4766f7bd73683acef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a0e7fb1eefd7138f4766f7bd73683acef">registerFactory</a> (int type, const char *ast_name, <a class="el" href="classASTFactory.html#ab1f4d9a4164b3fdbc108cd80c4a90c91">factory_type</a> factory)</td></tr>
<tr class="memdesc:a0e7fb1eefd7138f4766f7bd73683acef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a node factory for the node type type with name ast_name.  <a href="#a0e7fb1eefd7138f4766f7bd73683acef">More...</a><br /></td></tr>
<tr class="separator:a0e7fb1eefd7138f4766f7bd73683acef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add369568ba81b66258154baf6a5997f3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#add369568ba81b66258154baf6a5997f3">setMaxNodeType</a> (int type)</td></tr>
<tr class="memdesc:add369568ba81b66258154baf6a5997f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum node (<a class="el" href="classAST.html">AST</a>) type this factory may encounter.  <a href="#add369568ba81b66258154baf6a5997f3">More...</a><br /></td></tr>
<tr class="separator:add369568ba81b66258154baf6a5997f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb0d6c6064f96da88e4d757dfb8ad2d9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#abb0d6c6064f96da88e4d757dfb8ad2d9">addASTChild</a> (<a class="el" href="classASTPair.html">ASTPair</a> &amp;currentAST, <a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> child)</td></tr>
<tr class="memdesc:abb0d6c6064f96da88e4d757dfb8ad2d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a child to the current <a class="el" href="classAST.html">AST</a>.  <a href="#abb0d6c6064f96da88e4d757dfb8ad2d9">More...</a><br /></td></tr>
<tr class="separator:abb0d6c6064f96da88e4d757dfb8ad2d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd0c8fa258d0419b230c7b146d8abb67"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#acd0c8fa258d0419b230c7b146d8abb67">create</a> ()</td></tr>
<tr class="memdesc:acd0c8fa258d0419b230c7b146d8abb67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new empty <a class="el" href="classAST.html">AST</a> node. The right default type shou.  <a href="#acd0c8fa258d0419b230c7b146d8abb67">More...</a><br /></td></tr>
<tr class="separator:acd0c8fa258d0419b230c7b146d8abb67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8298a8ad3504ef55fb0fd49d9156b02f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a8298a8ad3504ef55fb0fd49d9156b02f">create</a> (int type)</td></tr>
<tr class="memdesc:a8298a8ad3504ef55fb0fd49d9156b02f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classAST.html">AST</a> node of the right type for 'type'.  <a href="#a8298a8ad3504ef55fb0fd49d9156b02f">More...</a><br /></td></tr>
<tr class="separator:a8298a8ad3504ef55fb0fd49d9156b02f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a204bfcd8e71701315e4974cc1833f0ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a204bfcd8e71701315e4974cc1833f0ea">create</a> (int type, const std ::string &amp;txt)</td></tr>
<tr class="memdesc:a204bfcd8e71701315e4974cc1833f0ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classAST.html">AST</a> node of the right type for 'type' and initialize with txt.  <a href="#a204bfcd8e71701315e4974cc1833f0ea">More...</a><br /></td></tr>
<tr class="separator:a204bfcd8e71701315e4974cc1833f0ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b1a67e507c5d7ee83414ab03b854346"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a8b1a67e507c5d7ee83414ab03b854346">create</a> (<a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> tr)</td></tr>
<tr class="memdesc:a8b1a67e507c5d7ee83414ab03b854346"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create duplicate of tr.  <a href="#a8b1a67e507c5d7ee83414ab03b854346">More...</a><br /></td></tr>
<tr class="separator:a8b1a67e507c5d7ee83414ab03b854346"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac12973204add38802871896f0e0a60c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#ac12973204add38802871896f0e0a60c7">create</a> (<a class="el" href="TokenRefCount_8hpp.html#a90bf433b9f39606e6bf39757f6910ac7">RefToken</a> tok)</td></tr>
<tr class="memdesc:ac12973204add38802871896f0e0a60c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new <a class="el" href="classAST.html">AST</a> node and initialize contents from a token.  <a href="#ac12973204add38802871896f0e0a60c7">More...</a><br /></td></tr>
<tr class="separator:ac12973204add38802871896f0e0a60c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d0748ca13951d8e3f7baa9c7921a06e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a0d0748ca13951d8e3f7baa9c7921a06e">create</a> (const std ::string &amp;txt, std ::istream &amp;infile)</td></tr>
<tr class="memdesc:a0d0748ca13951d8e3f7baa9c7921a06e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new <a class="el" href="classAST.html">AST</a> node and initialize contents from a stream.  <a href="#a0d0748ca13951d8e3f7baa9c7921a06e">More...</a><br /></td></tr>
<tr class="separator:a0d0748ca13951d8e3f7baa9c7921a06e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af81063ee8ba6928502bc726f09d3049f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#af81063ee8ba6928502bc726f09d3049f">dup</a> (<a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> t)</td></tr>
<tr class="separator:af81063ee8ba6928502bc726f09d3049f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78a74353746ce9196baf5bfab7a21c71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a78a74353746ce9196baf5bfab7a21c71">dupList</a> (<a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> t)</td></tr>
<tr class="memdesc:a78a74353746ce9196baf5bfab7a21c71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate tree including siblings of root.  <a href="#a78a74353746ce9196baf5bfab7a21c71">More...</a><br /></td></tr>
<tr class="separator:a78a74353746ce9196baf5bfab7a21c71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb94f89c2233918b2f8db2e89740b5c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#afb94f89c2233918b2f8db2e89740b5c0">dupTree</a> (<a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> t)</td></tr>
<tr class="separator:afb94f89c2233918b2f8db2e89740b5c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8eafc95367507e30bad8821fdc8fabb2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a8eafc95367507e30bad8821fdc8fabb2">make</a> (std ::vector&lt; <a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> &gt; &amp;nodes)</td></tr>
<tr class="separator:a8eafc95367507e30bad8821fdc8fabb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a186ad4df82551cde470a4fca863d5f9e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a186ad4df82551cde470a4fca863d5f9e">make</a> (<a class="el" href="classASTArray.html">ASTArray</a> *nodes)</td></tr>
<tr class="separator:a186ad4df82551cde470a4fca863d5f9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9634c6fbd0a07454214fc68ec1a1973"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#ac9634c6fbd0a07454214fc68ec1a1973">makeASTRoot</a> (<a class="el" href="classASTPair.html">ASTPair</a> &amp;currentAST, <a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> root)</td></tr>
<tr class="memdesc:ac9634c6fbd0a07454214fc68ec1a1973"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make an <a class="el" href="classAST.html">AST</a> the root of current <a class="el" href="classAST.html">AST</a>.  <a href="#ac9634c6fbd0a07454214fc68ec1a1973">More...</a><br /></td></tr>
<tr class="separator:ac9634c6fbd0a07454214fc68ec1a1973"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8f467998ab767e0aee88a3b736b0fa7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#ab8f467998ab767e0aee88a3b736b0fa7">setASTNodeFactory</a> (const char *factory_node_name, <a class="el" href="classASTFactory.html#ab1f4d9a4164b3fdbc108cd80c4a90c91">factory_type</a> factory)</td></tr>
<tr class="separator:ab8f467998ab767e0aee88a3b736b0fa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a9c2ccd8a45a386b46519c0a37786b588"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a9c2ccd8a45a386b46519c0a37786b588">loadChildren</a> (std ::istream &amp;infile, <a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> current)</td></tr>
<tr class="separator:a9c2ccd8a45a386b46519c0a37786b588"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1445003d52d1f636d057dd8d3a06a72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#af1445003d52d1f636d057dd8d3a06a72">loadSiblings</a> (std ::istream &amp;infile, <a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> current)</td></tr>
<tr class="separator:af1445003d52d1f636d057dd8d3a06a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4f1d8cfd24031cb3808c1718c14c8a7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#ac4f1d8cfd24031cb3808c1718c14c8a7">checkCloseTag</a> (std ::istream &amp;infile)</td></tr>
<tr class="separator:ac4f1d8cfd24031cb3808c1718c14c8a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab52e3f4268d49df3bb1b00a913abbca6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#ab52e3f4268d49df3bb1b00a913abbca6">getNodeOfType</a> (unsigned int type)</td></tr>
<tr class="separator:ab52e3f4268d49df3bb1b00a913abbca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a636d3e54488e7308577da8efd8c36214"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a636d3e54488e7308577da8efd8c36214">getASTNodeType</a> (unsigned int type)</td></tr>
<tr class="memdesc:a636d3e54488e7308577da8efd8c36214"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the name of the node 'type'  <a href="#a636d3e54488e7308577da8efd8c36214">More...</a><br /></td></tr>
<tr class="separator:a636d3e54488e7308577da8efd8c36214"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f9a2eb1a3c134a9ad2f28c12e91a676"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classASTFactory.html#ab1f4d9a4164b3fdbc108cd80c4a90c91">factory_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a6f9a2eb1a3c134a9ad2f28c12e91a676">getASTNodeFactory</a> (unsigned int type)</td></tr>
<tr class="separator:a6f9a2eb1a3c134a9ad2f28c12e91a676"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a803fa045e14e331920a509f5a8dc84f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classASTFactory.html#a9c97858a3e774830ff79786df5e7eeb8">factory_descriptor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a803fa045e14e331920a509f5a8dc84f1">default_factory_descriptor</a></td></tr>
<tr class="separator:a803fa045e14e331920a509f5a8dc84f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a853cf94e2d67392314cbba6d1118b22c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classASTFactory.html#a5dd9db29bc09513ee1b8d669cd47177d">factory_descriptor_list</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a853cf94e2d67392314cbba6d1118b22c">nodeFactories</a></td></tr>
<tr class="separator:a853cf94e2d67392314cbba6d1118b22c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:ad7faba28b1da373a3270aabb3d2c3d36"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#ad7faba28b1da373a3270aabb3d2c3d36">ASTFactory</a> (const <a class="el" href="classASTFactory.html">ASTFactory</a> &amp;)</td></tr>
<tr class="separator:ad7faba28b1da373a3270aabb3d2c3d36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5607adf1c02048930cb94cb6265bde13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classASTFactory.html">ASTFactory</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classASTFactory.html#a5607adf1c02048930cb94cb6265bde13">operator=</a> (const <a class="el" href="classASTFactory.html">ASTFactory</a> &amp;)</td></tr>
<tr class="separator:a5607adf1c02048930cb94cb6265bde13"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classAST.html">AST</a> Super Factory shared by <a class="el" href="classTreeParser.html">TreeParser</a> and <a class="el" href="classParser.html">Parser</a>. This super factory maintains a map of all <a class="el" href="classAST.html">AST</a> node types to their respective <a class="el" href="classAST.html">AST</a> factories. One instance should be shared among a parser/treeparser chain.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>check all this code for possible use of references in stead of RefAST's. </dd></dl>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a9c97858a3e774830ff79786df5e7eeb8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c97858a3e774830ff79786df5e7eeb8">&#9670;&nbsp;</a></span>factory_descriptor</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="ASTFactory_8hpp.html#a3b00832dfc56df44016c8e4a2fa859d9">factory_descriptor_</a> <a class="el" href="classASTFactory.html#a9c97858a3e774830ff79786df5e7eeb8">ASTFactory::factory_descriptor</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a5dd9db29bc09513ee1b8d669cd47177d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5dd9db29bc09513ee1b8d669cd47177d">&#9670;&nbsp;</a></span>factory_descriptor_list</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="ASTFactory_8hpp.html#ad238d646f2cb061795ebb1781b5bd0b1">factory_descriptor_list_</a> <a class="el" href="classASTFactory.html#a5dd9db29bc09513ee1b8d669cd47177d">ASTFactory::factory_descriptor_list</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ab1f4d9a4164b3fdbc108cd80c4a90c91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1f4d9a4164b3fdbc108cd80c4a90c91">&#9670;&nbsp;</a></span>factory_type</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="ASTFactory_8hpp.html#a46308aec6ca268fe522df4903cd52db9">factory_type_</a> <a class="el" href="classASTFactory.html#ab1f4d9a4164b3fdbc108cd80c4a90c91">ASTFactory::factory_type</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="afd7f65cf43db744f2d702c6e7f6f2442"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd7f65cf43db744f2d702c6e7f6f2442">&#9670;&nbsp;</a></span>ASTFactory() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ASTFactory::ASTFactory </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Make new factory. Per default (Ref)<a class="el" href="classCommonAST.html">CommonAST</a> instances are generated. </p>
<p>Initialize factory.</p>
<p><a class="el" href="classAST.html">AST</a> Support code shared by <a class="el" href="classTreeParser.html">TreeParser</a> and <a class="el" href="classParser.html">Parser</a>. We use delegation to share code (and have only one bit of code to maintain) rather than subclassing or superclassing (forces <a class="el" href="classAST.html">AST</a> support code to be loaded even when you don't want to do <a class="el" href="classAST.html">AST</a> stuff).</p>
<p>This class collects all factories of <a class="el" href="classAST.html">AST</a> types used inside the code. New <a class="el" href="classAST.html">AST</a> node types are registered with the registerFactory method. On creation of an <a class="el" href="classASTFactory.html">ASTFactory</a> object a default <a class="el" href="classAST.html">AST</a> node factory may be specified.</p>
<p>When registering types gaps between different types are filled with entries for the default factory. </p>

</div>
</div>
<a id="a00f1b0f6666c42d4524458d26898b4ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00f1b0f6666c42d4524458d26898b4ed">&#9670;&nbsp;</a></span>ASTFactory() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ASTFactory::ASTFactory </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>factory_node_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classASTFactory.html#ab1f4d9a4164b3fdbc108cd80c4a90c91">factory_type</a>&#160;</td>
          <td class="paramname"><em>fact</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Initialize factory with a non default node type. factory_node_name should be the name of the <a class="el" href="classAST.html">AST</a> node type the factory generates. (should exist during the existance of this <a class="el" href="classASTFactory.html">ASTFactory</a> instance) </p>

</div>
</div>
<a id="acdf5532a1a16457623335fffcd8ff96e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acdf5532a1a16457623335fffcd8ff96e">&#9670;&nbsp;</a></span>~ASTFactory()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ASTFactory::~ASTFactory </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destroy factory. </p>
<p>Delete <a class="el" href="classASTFactory.html">ASTFactory</a>. </p>

</div>
</div>
<a id="ad7faba28b1da373a3270aabb3d2c3d36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7faba28b1da373a3270aabb3d2c3d36">&#9670;&nbsp;</a></span>ASTFactory() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ASTFactory::ASTFactory </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classASTFactory.html">ASTFactory</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="abb0d6c6064f96da88e4d757dfb8ad2d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb0d6c6064f96da88e4d757dfb8ad2d9">&#9670;&nbsp;</a></span>addASTChild()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ASTFactory::addASTChild </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classASTPair.html">ASTPair</a> &amp;&#160;</td>
          <td class="paramname"><em>currentAST</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td>
          <td class="paramname"><em>child</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a child to the current <a class="el" href="classAST.html">AST</a>. </p>
<p>Add a child to the current <a class="el" href="classAST.html">AST</a> </p>

</div>
</div>
<a id="ac4f1d8cfd24031cb3808c1718c14c8a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4f1d8cfd24031cb3808c1718c14c8a7">&#9670;&nbsp;</a></span>checkCloseTag()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ASTFactory::checkCloseTag </td>
          <td>(</td>
          <td class="paramtype">std ::istream &amp;&#160;</td>
          <td class="paramname"><em>infile</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="acd0c8fa258d0419b230c7b146d8abb67"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd0c8fa258d0419b230c7b146d8abb67">&#9670;&nbsp;</a></span>create() <span class="overload">[1/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> ASTFactory::create </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create new empty <a class="el" href="classAST.html">AST</a> node. The right default type shou. </p>
<p>Create a new empty <a class="el" href="classAST.html">AST</a> node; if the user did not specify an <a class="el" href="classAST.html">AST</a> node type, then create a default one: <a class="el" href="classCommonAST.html">CommonAST</a>. </p>

</div>
</div>
<a id="a8298a8ad3504ef55fb0fd49d9156b02f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8298a8ad3504ef55fb0fd49d9156b02f">&#9670;&nbsp;</a></span>create() <span class="overload">[2/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> ASTFactory::create </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create <a class="el" href="classAST.html">AST</a> node of the right type for 'type'. </p>

</div>
</div>
<a id="a204bfcd8e71701315e4974cc1833f0ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a204bfcd8e71701315e4974cc1833f0ea">&#9670;&nbsp;</a></span>create() <span class="overload">[3/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> ASTFactory::create </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std ::string &amp;&#160;</td>
          <td class="paramname"><em>txt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create <a class="el" href="classAST.html">AST</a> node of the right type for 'type' and initialize with txt. </p>

</div>
</div>
<a id="a8b1a67e507c5d7ee83414ab03b854346"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b1a67e507c5d7ee83414ab03b854346">&#9670;&nbsp;</a></span>create() <span class="overload">[4/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> ASTFactory::create </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td>
          <td class="paramname"><em>tr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create duplicate of tr. </p>
<p>Create a new empty <a class="el" href="classAST.html">AST</a> node; if the user did not specify an <a class="el" href="classAST.html">AST</a> node type, then create a default one: <a class="el" href="classCommonAST.html">CommonAST</a>. </p>

</div>
</div>
<a id="ac12973204add38802871896f0e0a60c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac12973204add38802871896f0e0a60c7">&#9670;&nbsp;</a></span>create() <span class="overload">[5/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> ASTFactory::create </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="TokenRefCount_8hpp.html#a90bf433b9f39606e6bf39757f6910ac7">RefToken</a>&#160;</td>
          <td class="paramname"><em>tok</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create new <a class="el" href="classAST.html">AST</a> node and initialize contents from a token. </p>

</div>
</div>
<a id="a0d0748ca13951d8e3f7baa9c7921a06e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d0748ca13951d8e3f7baa9c7921a06e">&#9670;&nbsp;</a></span>create() <span class="overload">[6/6]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> ASTFactory::create </td>
          <td>(</td>
          <td class="paramtype">const std ::string &amp;&#160;</td>
          <td class="paramname"><em>txt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std ::istream &amp;&#160;</td>
          <td class="paramname"><em>infile</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create new <a class="el" href="classAST.html">AST</a> node and initialize contents from a stream. </p>

</div>
</div>
<a id="af81063ee8ba6928502bc726f09d3049f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af81063ee8ba6928502bc726f09d3049f">&#9670;&nbsp;</a></span>dup()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> ASTFactory::dup </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Deep copy a single node. This function the new clone() methods in the <a class="el" href="classAST.html">AST</a> interface. Returns a new RefAST(nullASTptr) if t is null.</p>
<p>Deep copy a single node. This function the new clone() methods in the <a class="el" href="classAST.html">AST</a> interface. Returns nullAST if t is null. </p>

</div>
</div>
<a id="a78a74353746ce9196baf5bfab7a21c71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78a74353746ce9196baf5bfab7a21c71">&#9670;&nbsp;</a></span>dupList()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> ASTFactory::dupList </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Duplicate tree including siblings of root. </p>
<p>Duplicate tree including siblings of root. </p>

</div>
</div>
<a id="afb94f89c2233918b2f8db2e89740b5c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb94f89c2233918b2f8db2e89740b5c0">&#9670;&nbsp;</a></span>dupTree()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> ASTFactory::dupTree </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Duplicate a tree, assuming this is a root node of a tree&ndash; duplicate that node and what's below; ignore siblings of root node.</p>
<p>Duplicate a tree, assuming this is a root node of a tree duplicate that node and what's below; ignore siblings of root node. </p>

</div>
</div>
<a id="a6f9a2eb1a3c134a9ad2f28c12e91a676"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f9a2eb1a3c134a9ad2f28c12e91a676">&#9670;&nbsp;</a></span>getASTNodeFactory()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classASTFactory.html#ab1f4d9a4164b3fdbc108cd80c4a90c91">factory_type</a> ASTFactory::getASTNodeFactory </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a636d3e54488e7308577da8efd8c36214"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a636d3e54488e7308577da8efd8c36214">&#9670;&nbsp;</a></span>getASTNodeType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char* ASTFactory::getASTNodeType </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>get the name of the node 'type' </p>

</div>
</div>
<a id="ab52e3f4268d49df3bb1b00a913abbca6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab52e3f4268d49df3bb1b00a913abbca6">&#9670;&nbsp;</a></span>getNodeOfType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> ASTFactory::getNodeOfType </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a9c2ccd8a45a386b46519c0a37786b588"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c2ccd8a45a386b46519c0a37786b588">&#9670;&nbsp;</a></span>loadChildren()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ASTFactory::loadChildren </td>
          <td>(</td>
          <td class="paramtype">std ::istream &amp;&#160;</td>
          <td class="paramname"><em>infile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td>
          <td class="paramname"><em>current</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="af1445003d52d1f636d057dd8d3a06a72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1445003d52d1f636d057dd8d3a06a72">&#9670;&nbsp;</a></span>loadSiblings()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ASTFactory::loadSiblings </td>
          <td>(</td>
          <td class="paramtype">std ::istream &amp;&#160;</td>
          <td class="paramname"><em>infile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td>
          <td class="paramname"><em>current</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a8eafc95367507e30bad8821fdc8fabb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8eafc95367507e30bad8821fdc8fabb2">&#9670;&nbsp;</a></span>make() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> ASTFactory::make </td>
          <td>(</td>
          <td class="paramtype">std ::vector&lt; <a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>nodes</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Make a tree from a list of nodes. The first element in the array is the root. If the root is null, then the tree is a simple list not a tree. Handles null children nodes correctly. For example, make(a, b, null, c) yields tree (a b c). make(null,a,b) yields tree (nil a b). </p>

</div>
</div>
<a id="a186ad4df82551cde470a4fca863d5f9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a186ad4df82551cde470a4fca863d5f9e">&#9670;&nbsp;</a></span>make() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a> ASTFactory::make </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classASTArray.html">ASTArray</a> *&#160;</td>
          <td class="paramname"><em>nodes</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Make a tree from a list of nodes, where the nodes are contained in an <a class="el" href="classASTArray.html">ASTArray</a> object. The <a class="el" href="classASTArray.html">ASTArray</a> is deleted after use. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd>FIXME! I have a feeling we can get rid of this ugly <a class="el" href="classASTArray.html">ASTArray</a> thing </dd></dl>
<p>Make a tree from a list of nodes, where the nodes are contained in an <a class="el" href="classASTArray.html">ASTArray</a> object </p>

</div>
</div>
<a id="ac9634c6fbd0a07454214fc68ec1a1973"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9634c6fbd0a07454214fc68ec1a1973">&#9670;&nbsp;</a></span>makeASTRoot()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ASTFactory::makeASTRoot </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classASTPair.html">ASTPair</a> &amp;&#160;</td>
          <td class="paramname"><em>currentAST</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ASTRefCount_8hpp.html#a25b300faa8730e33c35b83c55afd2596">RefAST</a>&#160;</td>
          <td class="paramname"><em>root</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Make an <a class="el" href="classAST.html">AST</a> the root of current <a class="el" href="classAST.html">AST</a>. </p>

</div>
</div>
<a id="a5607adf1c02048930cb94cb6265bde13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5607adf1c02048930cb94cb6265bde13">&#9670;&nbsp;</a></span>operator=()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classASTFactory.html">ASTFactory</a>&amp; ASTFactory::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classASTFactory.html">ASTFactory</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a0e7fb1eefd7138f4766f7bd73683acef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e7fb1eefd7138f4766f7bd73683acef">&#9670;&nbsp;</a></span>registerFactory()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ASTFactory::registerFactory </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>ast_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classASTFactory.html#ab1f4d9a4164b3fdbc108cd80c4a90c91">factory_type</a>&#160;</td>
          <td class="paramname"><em>factory</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a node factory for the node type type with name ast_name. </p>
<p>Register a factory for a given <a class="el" href="classAST.html">AST</a> type. </p>

</div>
</div>
<a id="ab8f467998ab767e0aee88a3b736b0fa7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8f467998ab767e0aee88a3b736b0fa7">&#9670;&nbsp;</a></span>setASTNodeFactory()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ASTFactory::setASTNodeFactory </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>factory_node_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classASTFactory.html#ab1f4d9a4164b3fdbc108cd80c4a90c91">factory_type</a>&#160;</td>
          <td class="paramname"><em>factory</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set a new default <a class="el" href="classAST.html">AST</a> type. factory_node_name should be the name of the <a class="el" href="classAST.html">AST</a> node type the factory generates. (should exist during the existance of this <a class="el" href="classASTFactory.html">ASTFactory</a> instance). Only change factory between parser runs. You might get unexpected results otherwise. </p>

</div>
</div>
<a id="add369568ba81b66258154baf6a5997f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add369568ba81b66258154baf6a5997f3">&#9670;&nbsp;</a></span>setMaxNodeType()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ASTFactory::setMaxNodeType </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the maximum node (<a class="el" href="classAST.html">AST</a>) type this factory may encounter. </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a803fa045e14e331920a509f5a8dc84f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a803fa045e14e331920a509f5a8dc84f1">&#9670;&nbsp;</a></span>default_factory_descriptor</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classASTFactory.html#a9c97858a3e774830ff79786df5e7eeb8">factory_descriptor</a> ASTFactory::default_factory_descriptor</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a853cf94e2d67392314cbba6d1118b22c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a853cf94e2d67392314cbba6d1118b22c">&#9670;&nbsp;</a></span>nodeFactories</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classASTFactory.html#a5dd9db29bc09513ee1b8d669cd47177d">factory_descriptor_list</a> ASTFactory::nodeFactories</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>antlr/<a class="el" href="ASTFactory_8hpp_source.html">ASTFactory.hpp</a></li>
<li>src/<a class="el" href="ASTFactory_8cpp.html">ASTFactory.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>