Hazelnupp/docs/classHazelnp_1_1Hazelnupp.html
2021-06-04 02:30:58 +02:00

999 lines
81 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Leonetienne/Hazelnupp: Hazelnp::Hazelnupp 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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.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="projectlogo"><img alt="Logo" src="nupp_small.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Leonetienne/Hazelnupp
</div>
<div id="projectbrief">Simple, easy to use, command line parameter interface</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceHazelnp.html">Hazelnp</a></li><li class="navelem"><a class="el" href="classHazelnp_1_1Hazelnupp.html">Hazelnupp</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classHazelnp_1_1Hazelnupp-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Hazelnp::Hazelnupp Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>The main class to interface with.
<a href="classHazelnp_1_1Hazelnupp.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="Hazelnupp_8h_source.html">Hazelnupp.h</a>&gt;</code></p>
<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:a20ac0ebcfd4df7f320a7bbcaeed6e54d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a20ac0ebcfd4df7f320a7bbcaeed6e54d">Hazelnupp</a> ()</td></tr>
<tr class="separator:a20ac0ebcfd4df7f320a7bbcaeed6e54d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d14c60f03b571f5f794c3549e75e435"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a6d14c60f03b571f5f794c3549e75e435">Hazelnupp</a> (const int argc, const char *const *argv)</td></tr>
<tr class="separator:a6d14c60f03b571f5f794c3549e75e435"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25f8810d24d647b6a57e2dd00ead42be"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a25f8810d24d647b6a57e2dd00ead42be">~Hazelnupp</a> ()</td></tr>
<tr class="separator:a25f8810d24d647b6a57e2dd00ead42be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ccb88faca1a8deb77161888479c300b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a1ccb88faca1a8deb77161888479c300b">Parse</a> (const int argc, const char *const *argv)</td></tr>
<tr class="memdesc:a1ccb88faca1a8deb77161888479c300b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will parse command line arguments. <a href="classHazelnp_1_1Hazelnupp.html#a1ccb88faca1a8deb77161888479c300b">More...</a><br /></td></tr>
<tr class="separator:a1ccb88faca1a8deb77161888479c300b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6bb41fb079131f8b91fe981f63f7469"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#af6bb41fb079131f8b91fe981f63f7469">GetExecutableName</a> () const</td></tr>
<tr class="memdesc:af6bb41fb079131f8b91fe981f63f7469"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will return argv[0], the name of the executable. <a href="classHazelnp_1_1Hazelnupp.html#af6bb41fb079131f8b91fe981f63f7469">More...</a><br /></td></tr>
<tr class="separator:af6bb41fb079131f8b91fe981f63f7469"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a419ccdc6bad00b0fc3e17ed9b41f5dc5"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classHazelnp_1_1Value.html">Value</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a419ccdc6bad00b0fc3e17ed9b41f5dc5">operator[]</a> (const std::string &amp;key) const</td></tr>
<tr class="memdesc:a419ccdc6bad00b0fc3e17ed9b41f5dc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will return the value given a key. <a href="classHazelnp_1_1Hazelnupp.html#a419ccdc6bad00b0fc3e17ed9b41f5dc5">More...</a><br /></td></tr>
<tr class="separator:a419ccdc6bad00b0fc3e17ed9b41f5dc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b79a79d40420ae748c108c691111040"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a8b79a79d40420ae748c108c691111040">HasParam</a> (const std::string &amp;key) const</td></tr>
<tr class="memdesc:a8b79a79d40420ae748c108c691111040"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will check wether a parameter exists given a key, or not. <a href="classHazelnp_1_1Hazelnupp.html#a8b79a79d40420ae748c108c691111040">More...</a><br /></td></tr>
<tr class="separator:a8b79a79d40420ae748c108c691111040"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf1e0ebf0207ca2327fcde81f7372124"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#abf1e0ebf0207ca2327fcde81f7372124">RegisterAbbreviation</a> (const std::string &amp;abbrev, const std::string &amp;target)</td></tr>
<tr class="memdesc:abf1e0ebf0207ca2327fcde81f7372124"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will register an abbreviation (like -f for &ndash;force) <a href="classHazelnp_1_1Hazelnupp.html#abf1e0ebf0207ca2327fcde81f7372124">More...</a><br /></td></tr>
<tr class="separator:abf1e0ebf0207ca2327fcde81f7372124"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a579e78129f19cb9f17a6075366ababe5"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a579e78129f19cb9f17a6075366ababe5">GetAbbreviation</a> (const std::string &amp;abbrev) const</td></tr>
<tr class="memdesc:a579e78129f19cb9f17a6075366ababe5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will return the long form of an abbreviation (like &ndash;force for -f) <a href="classHazelnp_1_1Hazelnupp.html#a579e78129f19cb9f17a6075366ababe5">More...</a><br /></td></tr>
<tr class="separator:a579e78129f19cb9f17a6075366ababe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46df7d396fb56e30351c9a7308792200"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a46df7d396fb56e30351c9a7308792200">HasAbbreviation</a> (const std::string &amp;abbrev) const</td></tr>
<tr class="memdesc:a46df7d396fb56e30351c9a7308792200"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will check wether or not an abbreviation is registered. <a href="classHazelnp_1_1Hazelnupp.html#a46df7d396fb56e30351c9a7308792200">More...</a><br /></td></tr>
<tr class="separator:a46df7d396fb56e30351c9a7308792200"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5175869b025468324cefad487081e91d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a5175869b025468324cefad487081e91d">ClearAbbreviations</a> ()</td></tr>
<tr class="memdesc:a5175869b025468324cefad487081e91d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will delete all abbreviations. <a href="classHazelnp_1_1Hazelnupp.html#a5175869b025468324cefad487081e91d">More...</a><br /></td></tr>
<tr class="separator:a5175869b025468324cefad487081e91d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a3331836b9ea1f920e77f6d332019d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a8a3331836b9ea1f920e77f6d332019d5">RegisterConstraints</a> (const std::vector&lt; <a class="el" href="structHazelnp_1_1ParamConstraint.html">ParamConstraint</a> &gt; &amp;constraints)</td></tr>
<tr class="memdesc:a8a3331836b9ea1f920e77f6d332019d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will register parameter constraints. <a href="classHazelnp_1_1Hazelnupp.html#a8a3331836b9ea1f920e77f6d332019d5">More...</a><br /></td></tr>
<tr class="separator:a8a3331836b9ea1f920e77f6d332019d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3970b74583def49c6632fe08a4499809"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a3970b74583def49c6632fe08a4499809">ClearConstraints</a> ()</td></tr>
<tr class="memdesc:a3970b74583def49c6632fe08a4499809"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will delete all constraints. <a href="classHazelnp_1_1Hazelnupp.html#a3970b74583def49c6632fe08a4499809">More...</a><br /></td></tr>
<tr class="separator:a3970b74583def49c6632fe08a4499809"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17845623ca686caa51f3c8254e85551e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a17845623ca686caa51f3c8254e85551e">SetCrashOnFail</a> (bool crashOnFail)</td></tr>
<tr class="memdesc:a17845623ca686caa51f3c8254e85551e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether to crash the application, and print to stderr, when an exception is raised whilst parsing, or not. <a href="classHazelnp_1_1Hazelnupp.html#a17845623ca686caa51f3c8254e85551e">More...</a><br /></td></tr>
<tr class="separator:a17845623ca686caa51f3c8254e85551e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b810cc7db2cf64aecaa70c686b14bb7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a1b810cc7db2cf64aecaa70c686b14bb7">GetCrashOnFail</a> () const</td></tr>
<tr class="memdesc:a1b810cc7db2cf64aecaa70c686b14bb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets whether the application crashes on an exception whilst parsing, and prints to stderr. <a href="classHazelnp_1_1Hazelnupp.html#a1b810cc7db2cf64aecaa70c686b14bb7">More...</a><br /></td></tr>
<tr class="separator:a1b810cc7db2cf64aecaa70c686b14bb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60e0a51cd92014a87e44322158e45872"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a60e0a51cd92014a87e44322158e45872">SetCatchHelp</a> (bool catchHelp)</td></tr>
<tr class="memdesc:a60e0a51cd92014a87e44322158e45872"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether the <a class="el" href="classHazelnp_1_1Hazelnupp.html" title="The main class to interface with.">Hazelnupp</a> should automatically catch the &ndash;help parameter, print the parameter documentation to stdout, and exit or not. <a href="classHazelnp_1_1Hazelnupp.html#a60e0a51cd92014a87e44322158e45872">More...</a><br /></td></tr>
<tr class="separator:a60e0a51cd92014a87e44322158e45872"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05a3d112bcc00cdeade76f3643ba9e94"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a05a3d112bcc00cdeade76f3643ba9e94">GetCatchHelp</a> () const</td></tr>
<tr class="memdesc:a05a3d112bcc00cdeade76f3643ba9e94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retruns whether the <a class="el" href="classHazelnp_1_1Hazelnupp.html" title="The main class to interface with.">Hazelnupp</a> should automatically catch the &ndash;help parameter, print the parameter documentation to stdout, and exit or not. <a href="classHazelnp_1_1Hazelnupp.html#a05a3d112bcc00cdeade76f3643ba9e94">More...</a><br /></td></tr>
<tr class="separator:a05a3d112bcc00cdeade76f3643ba9e94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a037f84b32c7a2420c387dd46445291ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a037f84b32c7a2420c387dd46445291ac">SetBriefDescription</a> (const std::string &amp;description)</td></tr>
<tr class="memdesc:a037f84b32c7a2420c387dd46445291ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a brief description of the application to be automatically added to the documentation. <a href="classHazelnp_1_1Hazelnupp.html#a037f84b32c7a2420c387dd46445291ac">More...</a><br /></td></tr>
<tr class="separator:a037f84b32c7a2420c387dd46445291ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d32c3047a8c58650476d1ae7e9fb582"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a1d32c3047a8c58650476d1ae7e9fb582">GetBriefDescription</a> ()</td></tr>
<tr class="memdesc:a1d32c3047a8c58650476d1ae7e9fb582"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the brief description of the application to be automatically added to the documentation. <a href="classHazelnp_1_1Hazelnupp.html#a1d32c3047a8c58650476d1ae7e9fb582">More...</a><br /></td></tr>
<tr class="separator:a1d32c3047a8c58650476d1ae7e9fb582"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17883db87e97caad4a0f114f9f850f5e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a17883db87e97caad4a0f114f9f850f5e">RegisterDescription</a> (const std::string &amp;parameter, const std::string &amp;description)</td></tr>
<tr class="memdesc:a17883db87e97caad4a0f114f9f850f5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Willl register a short description for a parameter. <a href="classHazelnp_1_1Hazelnupp.html#a17883db87e97caad4a0f114f9f850f5e">More...</a><br /></td></tr>
<tr class="separator:a17883db87e97caad4a0f114f9f850f5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6637dc4b78871d7ecba1f2e1c8c28fb0"><td class="memItemLeft" align="right" valign="top">const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a6637dc4b78871d7ecba1f2e1c8c28fb0">GetDescription</a> (const std::string &amp;parameter) const</td></tr>
<tr class="memdesc:a6637dc4b78871d7ecba1f2e1c8c28fb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will return a short description for a parameter, if it exists. <a href="classHazelnp_1_1Hazelnupp.html#a6637dc4b78871d7ecba1f2e1c8c28fb0">More...</a><br /></td></tr>
<tr class="separator:a6637dc4b78871d7ecba1f2e1c8c28fb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8490e0b10feee0b815c043e7cad454cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a8490e0b10feee0b815c043e7cad454cb">ClearDescription</a> (const std::string &amp;parameter)</td></tr>
<tr class="memdesc:a8490e0b10feee0b815c043e7cad454cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will delete the description of a parameter if it exists. <a href="classHazelnp_1_1Hazelnupp.html#a8490e0b10feee0b815c043e7cad454cb">More...</a><br /></td></tr>
<tr class="separator:a8490e0b10feee0b815c043e7cad454cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b1bf5e700d8a0d8e90c5750e54749de"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHazelnp_1_1Hazelnupp.html#a7b1bf5e700d8a0d8e90c5750e54749de">GenerateDocumentation</a> () const</td></tr>
<tr class="memdesc:a7b1bf5e700d8a0d8e90c5750e54749de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will generate a text-based documentation suited to show the user, for example on &ndash;help. <a href="classHazelnp_1_1Hazelnupp.html#a7b1bf5e700d8a0d8e90c5750e54749de">More...</a><br /></td></tr>
<tr class="separator:a7b1bf5e700d8a0d8e90c5750e54749de"><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>The main class to interface with. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8h_source.html#l00011">11</a> of file <a class="el" href="Hazelnupp_8h_source.html">Hazelnupp.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a20ac0ebcfd4df7f320a7bbcaeed6e54d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20ac0ebcfd4df7f320a7bbcaeed6e54d">&#9670;&nbsp;</a></span>Hazelnupp() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Hazelnupp::Hazelnupp </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00014">14</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;{</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a6d14c60f03b571f5f794c3549e75e435"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d14c60f03b571f5f794c3549e75e435">&#9670;&nbsp;</a></span>Hazelnupp() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Hazelnupp::Hazelnupp </td>
<td>(</td>
<td class="paramtype">const int&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>argv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00019">19</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;{</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <a class="code" href="classHazelnp_1_1Hazelnupp.html#a1ccb88faca1a8deb77161888479c300b">Parse</a>(argc, argv);</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a25f8810d24d647b6a57e2dd00ead42be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25f8810d24d647b6a57e2dd00ead42be">&#9670;&nbsp;</a></span>~Hazelnupp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Hazelnupp::~Hazelnupp </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00025">25</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; it : parameters)</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">delete</span> it.second;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; parameters.clear();</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; </div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a5175869b025468324cefad487081e91d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5175869b025468324cefad487081e91d">&#9670;&nbsp;</a></span>ClearAbbreviations()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Hazelnupp::ClearAbbreviations </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Will delete all abbreviations. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00515">515</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;{</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; abbreviations.clear();</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a3970b74583def49c6632fe08a4499809"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3970b74583def49c6632fe08a4499809">&#9670;&nbsp;</a></span>ClearConstraints()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Hazelnupp::ClearConstraints </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Will delete all constraints. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00542">542</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;{</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; constraints.clear();</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a8490e0b10feee0b815c043e7cad454cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8490e0b10feee0b815c043e7cad454cb">&#9670;&nbsp;</a></span>ClearDescription()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Hazelnp::Hazelnupp::ClearDescription </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>parameter</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Will delete the description of a parameter if it exists. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00335">335</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;{</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="comment">// This will just do nothing if the entry does not exist</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; parameterDescriptions.erase(parameter);</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a7b1bf5e700d8a0d8e90c5750e54749de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b1bf5e700d8a0d8e90c5750e54749de">&#9670;&nbsp;</a></span>GenerateDocumentation()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string Hazelnupp::GenerateDocumentation </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Will generate a text-based documentation suited to show the user, for example on &ndash;help. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00342">342</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;{</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; std::stringstream ss;</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; </div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="comment">// Add brief, if available</span></div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">if</span> (briefDescription.length() &gt; 0)</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; ss &lt;&lt; briefDescription &lt;&lt; std::endl;</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; </div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="comment">// Collect parameter information</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">struct </span>ParamDocEntry</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; std::string abbreviation;</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; std::string description;</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; std::string type;</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordtype">bool</span> required = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordtype">bool</span> typeIsForced = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; std::string defaultVal;</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; };</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; std::unordered_map&lt;std::string, ParamDocEntry&gt; paramInfos;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; </div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="comment">// Collect descriptions</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it : parameterDescriptions)</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; {</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="comment">// Do we already have that param in the paramInfo set?</span></div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">if</span> (paramInfos.find(it.first) == paramInfos.end())</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="comment">// No? Create it.</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; paramInfos[it.first] = ParamDocEntry();</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; </div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; paramInfos[it.first].description = it.second;</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; }</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="comment">// Collect abbreviations</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="comment">// first value is abbreviation, second is long form</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it : abbreviations)</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; {</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="comment">// Do we already have that param in the paramInfo set?</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">if</span> (paramInfos.find(it.second) == paramInfos.end())</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="comment">// No? Create it.</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; paramInfos[it.second] = ParamDocEntry();</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; </div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; paramInfos[it.second].abbreviation = it.first;</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; </div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="comment">// Collect constraints</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it : constraints)</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; {</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="comment">// Do we already have that param in the paramInfo set?</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span> (paramInfos.find(it.first) == paramInfos.end())</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="comment">// No? Create it.</span></div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; paramInfos[it.first] = ParamDocEntry();</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; </div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; ParamDocEntry&amp; cached = paramInfos[it.first];</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; cached.required = it.second.required;</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; cached.typeIsForced = it.second.constrainType;</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; cached.type = <a class="code" href="namespaceHazelnp.html#a7fb1e5ad9e2ecb6c0025beb19f11621b">DataTypeToString</a>(it.second.wantedType);</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; </div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; std::stringstream defaultValueSs;</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> std::string&amp; s : it.second.defaultValue)</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; defaultValueSs &lt;&lt; <span class="charliteral">&#39;\&#39;&#39;</span> &lt;&lt; s &lt;&lt; <span class="charliteral">&#39;\&#39;&#39;</span>;</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; </div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// Add a space if we are not at the last entry</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">void</span>*)&amp;s != (<span class="keywordtype">void</span>*)&amp;it.second.defaultValue.back())</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; defaultValueSs &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; cached.defaultVal = defaultValueSs.str();</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; </div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="comment">// Now generate the documentatino body</span></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span> (paramInfos.size() &gt; 0)</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; {</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; ss &lt;&lt; std::endl </div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; &lt;&lt; <span class="stringliteral">&quot;==== AVAILABLE PARAMETERS ====&quot;</span> </div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; &lt;&lt; std::endl &lt;&lt; std::endl;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; </div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it : paramInfos)</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; {</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keyword">const</span> ParamDocEntry&amp; pde = it.second;</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; </div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="comment">// Put name</span></div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; ss &lt;&lt; it.first &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; </div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="comment">// Put abbreviation</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">if</span> (pde.abbreviation.length() &gt; 0)</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; ss &lt;&lt; pde.abbreviation &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; </div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="comment">// Put type</span></div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span> (pde.typeIsForced)</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; ss &lt;&lt; pde.type &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; </div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="comment">// Put default value</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">if</span> (pde.defaultVal.length() &gt; 0)</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; ss &lt;&lt; <span class="stringliteral">&quot;default=[&quot;</span> &lt;&lt; pde.defaultVal &lt;&lt; <span class="stringliteral">&quot;] &quot;</span>;</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; </div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="comment">// Put required tag, but only if no default value</span></div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">if</span> ((pde.required) &amp;&amp; (pde.defaultVal.length() == 0))</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; ss &lt;&lt; <span class="stringliteral">&quot;[[REQUIRED]] &quot;</span>;</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; </div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="comment">// Put brief description</span></div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">if</span> (pde.description.length() &gt; 0)</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; ss &lt;&lt; pde.description;</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; </div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; ss &lt;&lt; std::endl &lt;&lt; std::endl;</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; </div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">return</span> ss.str();</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a579e78129f19cb9f17a6075366ababe5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a579e78129f19cb9f17a6075366ababe5">&#9670;&nbsp;</a></span>GetAbbreviation()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const std::string &amp; Hazelnupp::GetAbbreviation </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>abbrev</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Will return the long form of an abbreviation (like &ndash;force for -f) </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00505">505</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;{</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">return</span> abbreviations.find(abbrev)-&gt;second;</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a1d32c3047a8c58650476d1ae7e9fb582"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d32c3047a8c58650476d1ae7e9fb582">&#9670;&nbsp;</a></span>GetBriefDescription()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const std::string &amp; Hazelnupp::GetBriefDescription </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the brief description of the application to be automatically added to the documentation. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00312">312</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;{</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">return</span> briefDescription;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a05a3d112bcc00cdeade76f3643ba9e94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05a3d112bcc00cdeade76f3643ba9e94">&#9670;&nbsp;</a></span>GetCatchHelp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool Hazelnupp::GetCatchHelp </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Retruns whether the <a class="el" href="classHazelnp_1_1Hazelnupp.html" title="The main class to interface with.">Hazelnupp</a> should automatically catch the &ndash;help parameter, print the parameter documentation to stdout, and exit or not. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00301">301</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;{</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> catchHelp;</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a1b810cc7db2cf64aecaa70c686b14bb7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b810cc7db2cf64aecaa70c686b14bb7">&#9670;&nbsp;</a></span>GetCrashOnFail()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool Hazelnupp::GetCrashOnFail </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets whether the application crashes on an exception whilst parsing, and prints to stderr. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00290">290</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;{</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">return</span> crashOnFail;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a6637dc4b78871d7ecba1f2e1c8c28fb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6637dc4b78871d7ecba1f2e1c8c28fb0">&#9670;&nbsp;</a></span>GetDescription()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const std::string Hazelnp::Hazelnupp::GetDescription </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>parameter</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Will return a short description for a parameter, if it exists. </p>
<p><br />
Empty string if it does not exist. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00323">323</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;{</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// Do we already have a description for this parameter?</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> par = parameterDescriptions.find(parameter);</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (par == parameterDescriptions.end())</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="comment">// No? Then return &quot;&quot;</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; </div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="comment">// We do? Then return it</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">return</span> par-&gt;second;</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="af6bb41fb079131f8b91fe981f63f7469"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6bb41fb079131f8b91fe981f63f7469">&#9670;&nbsp;</a></span>GetExecutableName()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const std::string &amp; Hazelnupp::GetExecutableName </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Will return argv[0], the name of the executable. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00485">485</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;{</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">return</span> executableName;</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a46df7d396fb56e30351c9a7308792200"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46df7d396fb56e30351c9a7308792200">&#9670;&nbsp;</a></span>HasAbbreviation()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool Hazelnupp::HasAbbreviation </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>abbrev</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Will check wether or not an abbreviation is registered. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00510">510</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;{</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">return</span> abbreviations.find(abbrev) != abbreviations.end();</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a8b79a79d40420ae748c108c691111040"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b79a79d40420ae748c108c691111040">&#9670;&nbsp;</a></span>HasParam()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool Hazelnupp::HasParam </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Will check wether a parameter exists given a key, or not. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00164">164</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;{</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> parameters.find(key) != parameters.end();</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a419ccdc6bad00b0fc3e17ed9b41f5dc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a419ccdc6bad00b0fc3e17ed9b41f5dc5">&#9670;&nbsp;</a></span>operator[]()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classHazelnp_1_1Value.html">Value</a> &amp; Hazelnupp::operator[] </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Will return the value given a key. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00490">490</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;{</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="comment">// Throw exception if param is unknown</span></div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classHazelnp_1_1Hazelnupp.html#a8b79a79d40420ae748c108c691111040">HasParam</a>(key))</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">throw</span> <a class="code" href="classHazelnp_1_1HazelnuppInvalidKeyException.html">HazelnuppInvalidKeyException</a>();</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; </div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">return</span> *parameters.find(key)-&gt;second-&gt;GetValue();</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a1ccb88faca1a8deb77161888479c300b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ccb88faca1a8deb77161888479c300b">&#9670;&nbsp;</a></span>Parse()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Hazelnupp::Parse </td>
<td>(</td>
<td class="paramtype">const int&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *const *&#160;</td>
<td class="paramname"><em>argv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Will parse command line arguments. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00035">35</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// Populate raw arguments</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; PopulateRawArgs(argc, argv);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// Expand abbreviations</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; ExpandAbbreviations();</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; executableName = std::string(rawArgs[0]);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; std::size_t i = 1;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">while</span> (i &lt; rawArgs.size())</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span> ((rawArgs[i].length() &gt; 2) &amp;&amp; (rawArgs[i].substr(0, 2) == <span class="stringliteral">&quot;--&quot;</span>))</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classHazelnp_1_1Parameter.html">Parameter</a>* param = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; i = ParseNextParameter(i, param);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; parameters.insert(std::pair&lt;std::string, Parameter*&gt;(param-&gt;<a class="code" href="classHazelnp_1_1Parameter.html#a7acd68ce06eec06ab286b1a062f9c8d6">Key</a>(), param));</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; i++;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// Apply constraints such as default values, and required parameters.</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// Types have already been enforced.</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Dont apply constraints when we are just printind the param docs</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> ((!catchHelp) || (!<a class="code" href="classHazelnp_1_1Hazelnupp.html#a8b79a79d40420ae748c108c691111040">HasParam</a>(<span class="stringliteral">&quot;--help&quot;</span>)))</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; ApplyConstraints();</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code" href="classHazelnp_1_1HazelnuppConstraintTypeMissmatch.html">HazelnuppConstraintTypeMissmatch</a>&amp; hctm)</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span> (crashOnFail)</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; std::cout &lt;&lt; <a class="code" href="classHazelnp_1_1Hazelnupp.html#a7b1bf5e700d8a0d8e90c5750e54749de">GenerateDocumentation</a>() &lt;&lt; std::endl;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; std::cerr &lt;&lt; <span class="stringliteral">&quot;Fatal error: Command-line parameter value-type mismatch at \&quot;&quot;</span> &lt;&lt; hctm.<a class="code" href="classHazelnp_1_1HazelnuppException.html#aa86c415a0f2b4ea5f11892145d1ea83e">What</a>() &lt;&lt; <span class="stringliteral">&quot;\&quot;!&quot;</span>;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; quick_exit(-1009);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">throw</span> hctm; <span class="comment">// yeet</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code" href="classHazelnp_1_1HazelnuppConstraintMissingValue.html">HazelnuppConstraintMissingValue</a>&amp; hctm)</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span> (crashOnFail)</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; std::cout &lt;&lt; <a class="code" href="classHazelnp_1_1Hazelnupp.html#a7b1bf5e700d8a0d8e90c5750e54749de">GenerateDocumentation</a>() &lt;&lt; std::endl;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; std::cerr &lt;&lt; <span class="stringliteral">&quot;Fatal error: Missing required command-line parameter \&quot;&quot;</span> &lt;&lt; hctm.<a class="code" href="classHazelnp_1_1HazelnuppException.html#aa86c415a0f2b4ea5f11892145d1ea83e">What</a>() &lt;&lt; <span class="stringliteral">&quot;\&quot;!&quot;</span>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; quick_exit(-1010);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">throw</span> hctm; <span class="comment">// yeet</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// Catch --help parameter</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span> ((catchHelp) &amp;&amp; (<a class="code" href="classHazelnp_1_1Hazelnupp.html#a8b79a79d40420ae748c108c691111040">HasParam</a>(<span class="stringliteral">&quot;--help&quot;</span>)))</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; std::cout &lt;&lt; <a class="code" href="classHazelnp_1_1Hazelnupp.html#a7b1bf5e700d8a0d8e90c5750e54749de">GenerateDocumentation</a>() &lt;&lt; std::endl;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; quick_exit(0);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="abf1e0ebf0207ca2327fcde81f7372124"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf1e0ebf0207ca2327fcde81f7372124">&#9670;&nbsp;</a></span>RegisterAbbreviation()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Hazelnupp::RegisterAbbreviation </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>abbrev</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>target</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Will register an abbreviation (like -f for &ndash;force) </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00499">499</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;{</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; abbreviations.insert(std::pair&lt;std::string, std::string&gt;(abbrev, target));</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a8a3331836b9ea1f920e77f6d332019d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a3331836b9ea1f920e77f6d332019d5">&#9670;&nbsp;</a></span>RegisterConstraints()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Hazelnupp::RegisterConstraints </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="structHazelnp_1_1ParamConstraint.html">ParamConstraint</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>constraints</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Will register parameter constraints. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00521">521</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;{</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="structHazelnp_1_1ParamConstraint.html">ParamConstraint</a>&amp; pc : constraints)</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; {</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="comment">// Does this constraint already exist?</span></div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> constraint = this-&gt;constraints.find(pc.key);</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="comment">// If yes, replace it.</span></div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">if</span> (constraint != this-&gt;constraints.end())</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; constraint-&gt;second = pc;</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; </div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="comment">// Else, create a new pair</span></div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; this-&gt;constraints.insert(std::pair&lt;std::string, ParamConstraint&gt;(</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; pc.key,</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; pc</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; ));</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; }</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; </div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a17883db87e97caad4a0f114f9f850f5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17883db87e97caad4a0f114f9f850f5e">&#9670;&nbsp;</a></span>RegisterDescription()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Hazelnp::Hazelnupp::RegisterDescription </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>parameter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>description</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Willl register a short description for a parameter. </p>
<p><br />
Will overwrite existing descriptions for that parameter. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00317">317</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;{</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; parameterDescriptions[parameter] = description;</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a037f84b32c7a2420c387dd46445291ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a037f84b32c7a2420c387dd46445291ac">&#9670;&nbsp;</a></span>SetBriefDescription()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Hazelnupp::SetBriefDescription </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>description</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets a brief description of the application to be automatically added to the documentation. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00306">306</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;{</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; briefDescription = description;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a60e0a51cd92014a87e44322158e45872"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60e0a51cd92014a87e44322158e45872">&#9670;&nbsp;</a></span>SetCatchHelp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Hazelnupp::SetCatchHelp </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>catchHelp</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets whether the <a class="el" href="classHazelnp_1_1Hazelnupp.html" title="The main class to interface with.">Hazelnupp</a> should automatically catch the &ndash;help parameter, print the parameter documentation to stdout, and exit or not. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00295">295</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;{</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; this-&gt;catchHelp = catchHelp;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a17845623ca686caa51f3c8254e85551e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17845623ca686caa51f3c8254e85551e">&#9670;&nbsp;</a></span>SetCrashOnFail()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Hazelnupp::SetCrashOnFail </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>crashOnFail</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets whether to crash the application, and print to stderr, when an exception is raised whilst parsing, or not. </p>
<p class="definition">Definition at line <a class="el" href="Hazelnupp_8cpp_source.html#l00548">548</a> of file <a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;{</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; this-&gt;crashOnFail = crashOnFail;</div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>Hazelnupp/<a class="el" href="Hazelnupp_8h_source.html">Hazelnupp.h</a></li>
<li>Hazelnupp/<a class="el" href="Hazelnupp_8cpp_source.html">Hazelnupp.cpp</a></li>
</ul>
</div><!-- contents -->
<div class="ttc" id="aclassHazelnp_1_1HazelnuppInvalidKeyException_html"><div class="ttname"><a href="classHazelnp_1_1HazelnuppInvalidKeyException.html">Hazelnp::HazelnuppInvalidKeyException</a></div><div class="ttdoc">Gets thrown when an non-existent key gets dereferenced.</div><div class="ttdef"><b>Definition:</b> <a href="HazelnuppException_8h_source.html#l00026">HazelnuppException.h:26</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1Hazelnupp_html_a7b1bf5e700d8a0d8e90c5750e54749de"><div class="ttname"><a href="classHazelnp_1_1Hazelnupp.html#a7b1bf5e700d8a0d8e90c5750e54749de">Hazelnp::Hazelnupp::GenerateDocumentation</a></div><div class="ttdeci">std::string GenerateDocumentation() const</div><div class="ttdoc">Will generate a text-based documentation suited to show the user, for example on help.</div><div class="ttdef"><b>Definition:</b> <a href="Hazelnupp_8cpp_source.html#l00342">Hazelnupp.cpp:342</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1HazelnuppException_html_aa86c415a0f2b4ea5f11892145d1ea83e"><div class="ttname"><a href="classHazelnp_1_1HazelnuppException.html#aa86c415a0f2b4ea5f11892145d1ea83e">Hazelnp::HazelnuppException::What</a></div><div class="ttdeci">const std::string &amp; What() const</div><div class="ttdoc">Will return an error message.</div><div class="ttdef"><b>Definition:</b> <a href="HazelnuppException_8h_source.html#l00015">HazelnuppException.h:15</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1Parameter_html"><div class="ttname"><a href="classHazelnp_1_1Parameter.html">Hazelnp::Parameter</a></div><div class="ttdef"><b>Definition:</b> <a href="Parameter_8h_source.html#l00008">Parameter.h:8</a></div></div>
<div class="ttc" id="astructHazelnp_1_1ParamConstraint_html"><div class="ttname"><a href="structHazelnp_1_1ParamConstraint.html">Hazelnp::ParamConstraint</a></div><div class="ttdef"><b>Definition:</b> <a href="ParamConstraint_8h_source.html#l00008">ParamConstraint.h:8</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1Hazelnupp_html_a8b79a79d40420ae748c108c691111040"><div class="ttname"><a href="classHazelnp_1_1Hazelnupp.html#a8b79a79d40420ae748c108c691111040">Hazelnp::Hazelnupp::HasParam</a></div><div class="ttdeci">bool HasParam(const std::string &amp;key) const</div><div class="ttdoc">Will check wether a parameter exists given a key, or not.</div><div class="ttdef"><b>Definition:</b> <a href="Hazelnupp_8cpp_source.html#l00164">Hazelnupp.cpp:164</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1Hazelnupp_html_a1ccb88faca1a8deb77161888479c300b"><div class="ttname"><a href="classHazelnp_1_1Hazelnupp.html#a1ccb88faca1a8deb77161888479c300b">Hazelnp::Hazelnupp::Parse</a></div><div class="ttdeci">void Parse(const int argc, const char *const *argv)</div><div class="ttdoc">Will parse command line arguments.</div><div class="ttdef"><b>Definition:</b> <a href="Hazelnupp_8cpp_source.html#l00035">Hazelnupp.cpp:35</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1Parameter_html_a7acd68ce06eec06ab286b1a062f9c8d6"><div class="ttname"><a href="classHazelnp_1_1Parameter.html#a7acd68ce06eec06ab286b1a062f9c8d6">Hazelnp::Parameter::Key</a></div><div class="ttdeci">const std::string &amp; Key() const</div><div class="ttdoc">Will return the key of this parameter.</div><div class="ttdef"><b>Definition:</b> <a href="Parameter_8cpp_source.html#l00021">Parameter.cpp:21</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1HazelnuppConstraintMissingValue_html"><div class="ttname"><a href="classHazelnp_1_1HazelnuppConstraintMissingValue.html">Hazelnp::HazelnuppConstraintMissingValue</a></div><div class="ttdoc">Gets thrown when a parameter constrained to be required is not provided, and has no default value set...</div><div class="ttdef"><b>Definition:</b> <a href="HazelnuppException_8h_source.html#l00062">HazelnuppException.h:62</a></div></div>
<div class="ttc" id="aclassHazelnp_1_1HazelnuppConstraintTypeMissmatch_html"><div class="ttname"><a href="classHazelnp_1_1HazelnuppConstraintTypeMissmatch.html">Hazelnp::HazelnuppConstraintTypeMissmatch</a></div><div class="ttdoc">Gets thrown when a parameter is of a type that does not match the required type, and is not convertib...</div><div class="ttdef"><b>Definition:</b> <a href="HazelnuppException_8h_source.html#l00053">HazelnuppException.h:53</a></div></div>
<div class="ttc" id="anamespaceHazelnp_html_a7fb1e5ad9e2ecb6c0025beb19f11621b"><div class="ttname"><a href="namespaceHazelnp.html#a7fb1e5ad9e2ecb6c0025beb19f11621b">Hazelnp::DataTypeToString</a></div><div class="ttdeci">static std::string DataTypeToString(DATA_TYPE type)</div><div class="ttdef"><b>Definition:</b> <a href="DataType_8h_source.html#l00017">DataType.h:17</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Jun 4 2021 02:30:29 for Leonetienne/Hazelnupp by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>