archeus/doc/doxygen/html/d1/d02/helpers_8c.html

216 lines
18 KiB
HTML
Raw Normal View History

<!-- HTML header for doxygen 1.9.2-->
<!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" class="dark-mode">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Archeus: /home/herbglitch/programs/archeus/arc/src/std/parser/helpers.c File 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="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../cookie.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" />
<link href="../../doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="../../doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
<link href="../../doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../doxygen-awesome-darkmode-toggle.js"></script>
</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">Archeus<span id="projectnumber">&#160;0.0.0</span>
</div>
<div id="projectbrief">A C library and game engine that focuses on documentation</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(1); });
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('d1/d02/helpers_8c.html','../../'); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- 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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">helpers.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="../../d1/d98/helpers_8h_source.html">arc/std/parser/helpers.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="../../d8/dc2/errno_8h_source.html">arc/std/errno.h</a>&quot;</code><br />
</div>
<p><a href="../../d1/d02/helpers_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ab5c1f169c37491d2b5d85f3227e83d97" id="r_ab5c1f169c37491d2b5d85f3227e83d97"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab5c1f169c37491d2b5d85f3227e83d97">ARC_ParserData_HelperRecurseStringAdd</a> (<a class="el" href="../../df/d06/structARC__String.html">ARC_String</a> **data, <a class="el" href="../../dc/d37/structARC__ParserTagToken.html">ARC_ParserTagToken</a> *tagToken)</td></tr>
<tr class="memdesc:ab5c1f169c37491d2b5d85f3227e83d97"><td class="mdescLeft">&#160;</td><td class="mdescRight">recurses through a tag token adding token strings to a main string <br /></td></tr>
<tr class="separator:ab5c1f169c37491d2b5d85f3227e83d97"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="ab5c1f169c37491d2b5d85f3227e83d97" name="ab5c1f169c37491d2b5d85f3227e83d97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5c1f169c37491d2b5d85f3227e83d97">&#9670;&#160;</a></span>ARC_ParserData_HelperRecurseStringAdd()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ARC_ParserData_HelperRecurseStringAdd </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../df/d06/structARC__String.html">ARC_String</a> **</td> <td class="paramname"><span class="paramname"><em>data</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../dc/d37/structARC__ParserTagToken.html">ARC_ParserTagToken</a> *</td> <td class="paramname"><span class="paramname"><em>tagToken</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>recurses through a tag token adding token strings to a main string </p>
<dl class="section note"><dt>Note</dt><dd>the string needs to be created otherwise this will break </dd>
<dd>
this will only add tokens that have data</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">[in/out]</td><td>data </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">tagToken</td><td>the tag token to recurse through </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="../../d1/d02/helpers_8c_source.html#l00004">4</a> of file <a class="el" href="../../d1/d02/helpers_8c_source.html">helpers.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 4</span> {</div>
<div class="line"><span class="lineno"> 5</span> <span class="keywordflow">if</span>(*data == NULL){</div>
<div class="line"><span class="lineno"> 6</span> <a class="code hl_variable" href="../../d8/dc2/errno_8h.html#a5884aa8cc9b4e733345e49f93b54f75a">arc_errno</a> = <a class="code hl_define" href="../../d8/dc2/errno_8h.html#ab626cdbbebc1ac9abd1548a5f6f6195b">ARC_ERRNO_NULL</a>;</div>
<div class="line"><span class="lineno"> 7</span> <a class="code hl_define" href="../../d8/dc2/errno_8h.html#ad32a4f194b90c9ede4e393c0d4185590">ARC_DEBUG_LOG_ERROR</a>(<span class="stringliteral">&quot;ARC_ParserData_RecurseStringAdd(data, tagToken), string data was NULL&quot;</span>);</div>
<div class="line"><span class="lineno"> 8</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 9</span> }</div>
<div class="line"><span class="lineno"> 10</span> </div>
<div class="line"><span class="lineno"> 11</span> <span class="comment">//only adds tokens with data (check the header for more information)</span></div>
<div class="line"><span class="lineno"> 12</span> <span class="keywordflow">if</span>(tagToken-&gt;<a class="code hl_variable" href="../../dc/d37/structARC__ParserTagToken.html#aaccda838f6e1cd3d0ee210c473f34a16">token</a> != NULL &amp;&amp; tagToken-&gt;<a class="code hl_variable" href="../../dc/d37/structARC__ParserTagToken.html#aaccda838f6e1cd3d0ee210c473f34a16">token</a>-&gt;<a class="code hl_variable" href="../../d2/d37/structARC__LexerToken.html#acd5e79928adf611401e2c5fe0decf1ea">data</a> != NULL){</div>
<div class="line"><span class="lineno"> 13</span> <a class="code hl_function" href="../../da/d66/string_8h.html#a9576075f09dfbbbb2f3184b5e22920ee">ARC_String_Append</a>(data, tagToken-&gt;<a class="code hl_variable" href="../../dc/d37/structARC__ParserTagToken.html#aaccda838f6e1cd3d0ee210c473f34a16">token</a>-&gt;<a class="code hl_variable" href="../../d2/d37/structARC__LexerToken.html#acd5e79928adf611401e2c5fe0decf1ea">data</a>);</div>
<div class="line"><span class="lineno"> 14</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 15</span> }</div>
<div class="line"><span class="lineno"> 16</span> </div>
<div class="line"><span class="lineno"> 17</span> <span class="comment">//TODO: probs don&#39;t need this</span></div>
<div class="line"><span class="lineno"> 18</span> <span class="keywordflow">if</span>(tagToken-&gt;<a class="code hl_variable" href="../../dc/d37/structARC__ParserTagToken.html#af323d1f78ce2728f26550120258071a1">tagTokens</a> == NULL){</div>
<div class="line"><span class="lineno"> 19</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 20</span> }</div>
<div class="line"><span class="lineno"> 21</span> </div>
<div class="line"><span class="lineno"> 22</span> <span class="comment">//recurse through all the tag tokens</span></div>
<div class="line"><span class="lineno"> 23</span> <span class="keywordflow">for</span>(uint32_t index = 0; index &lt; <a class="code hl_function" href="../../d6/d68/vector_8h.html#a0c72f76fed251ea51a8be057f9c89504">ARC_Vector_GetSize</a>(tagToken-&gt;<a class="code hl_variable" href="../../dc/d37/structARC__ParserTagToken.html#af323d1f78ce2728f26550120258071a1">tagTokens</a>); index++){</div>
<div class="line"><span class="lineno"> 24</span> <a class="code hl_function" href="#ab5c1f169c37491d2b5d85f3227e83d97">ARC_ParserData_HelperRecurseStringAdd</a>(data, (<a class="code hl_struct" href="../../dc/d37/structARC__ParserTagToken.html">ARC_ParserTagToken</a> *)<a class="code hl_function" href="../../d6/d68/vector_8h.html#a1b01ba012d6fe295e8ce1446f9a6a3a0">ARC_Vector_Get</a>(tagToken-&gt;<a class="code hl_variable" href="../../dc/d37/structARC__ParserTagToken.html#af323d1f78ce2728f26550120258071a1">tagTokens</a>, index));</div>
<div class="line"><span class="lineno"> 25</span> }</div>
<div class="line"><span class="lineno"> 26</span>}</div>
<div class="ttc" id="aerrno_8h_html_a5884aa8cc9b4e733345e49f93b54f75a"><div class="ttname"><a href="../../d8/dc2/errno_8h.html#a5884aa8cc9b4e733345e49f93b54f75a">arc_errno</a></div><div class="ttdeci">int32_t arc_errno</div><div class="ttdef"><b>Definition</b> <a href="../../d0/d90/errno_8c_source.html#l00005">errno.c:5</a></div></div>
<div class="ttc" id="aerrno_8h_html_ab626cdbbebc1ac9abd1548a5f6f6195b"><div class="ttname"><a href="../../d8/dc2/errno_8h.html#ab626cdbbebc1ac9abd1548a5f6f6195b">ARC_ERRNO_NULL</a></div><div class="ttdeci">#define ARC_ERRNO_NULL</div><div class="ttdef"><b>Definition</b> <a href="../../d8/dc2/errno_8h_source.html#l00006">errno.h:6</a></div></div>
<div class="ttc" id="aerrno_8h_html_ad32a4f194b90c9ede4e393c0d4185590"><div class="ttname"><a href="../../d8/dc2/errno_8h.html#ad32a4f194b90c9ede4e393c0d4185590">ARC_DEBUG_LOG_ERROR</a></div><div class="ttdeci">#define ARC_DEBUG_LOG_ERROR(STR)</div><div class="ttdef"><b>Definition</b> <a href="../../d8/dc2/errno_8h_source.html#l00039">errno.h:39</a></div></div>
<div class="ttc" id="ahelpers_8c_html_ab5c1f169c37491d2b5d85f3227e83d97"><div class="ttname"><a href="#ab5c1f169c37491d2b5d85f3227e83d97">ARC_ParserData_HelperRecurseStringAdd</a></div><div class="ttdeci">void ARC_ParserData_HelperRecurseStringAdd(ARC_String **data, ARC_ParserTagToken *tagToken)</div><div class="ttdoc">recurses through a tag token adding token strings to a main string</div><div class="ttdef"><b>Definition</b> <a href="../../d1/d02/helpers_8c_source.html#l00004">helpers.c:4</a></div></div>
<div class="ttc" id="astring_8h_html_a9576075f09dfbbbb2f3184b5e22920ee"><div class="ttname"><a href="../../da/d66/string_8h.html#a9576075f09dfbbbb2f3184b5e22920ee">ARC_String_Append</a></div><div class="ttdeci">void ARC_String_Append(ARC_String **string, ARC_String *append)</div><div class="ttdoc">appends to an ARC_String with an ARC_String</div><div class="ttdef"><b>Definition</b> <a href="../../d1/db0/string_8c_source.html#l00126">string.c:126</a></div></div>
<div class="ttc" id="astructARC__LexerToken_html_acd5e79928adf611401e2c5fe0decf1ea"><div class="ttname"><a href="../../d2/d37/structARC__LexerToken.html#acd5e79928adf611401e2c5fe0decf1ea">ARC_LexerToken::data</a></div><div class="ttdeci">ARC_String * data</div><div class="ttdef"><b>Definition</b> <a href="../../d5/df3/lexer_8h_source.html#l00020">lexer.h:20</a></div></div>
<div class="ttc" id="astructARC__ParserTagToken_html"><div class="ttname"><a href="../../dc/d37/structARC__ParserTagToken.html">ARC_ParserTagToken</a></div><div class="ttdoc">a parser type used inside of the parser data create function</div><div class="ttdef"><b>Definition</b> <a href="../../d5/d36/parser_8h_source.html#l00035">parser.h:35</a></div></div>
<div class="ttc" id="astructARC__ParserTagToken_html_aaccda838f6e1cd3d0ee210c473f34a16"><div class="ttname"><a href="../../dc/d37/structARC__ParserTagToken.html#aaccda838f6e1cd3d0ee210c473f34a16">ARC_ParserTagToken::token</a></div><div class="ttdeci">ARC_LexerToken * token</div><div class="ttdef"><b>Definition</b> <a href="../../d5/d36/parser_8h_source.html#l00038">parser.h:38</a></div></div>
<div class="ttc" id="astructARC__ParserTagToken_html_af323d1f78ce2728f26550120258071a1"><div class="ttname"><a href="../../dc/d37/structARC__ParserTagToken.html#af323d1f78ce2728f26550120258071a1">ARC_ParserTagToken::tagTokens</a></div><div class="ttdeci">ARC_Vector * tagTokens</div><div class="ttdef"><b>Definition</b> <a href="../../d5/d36/parser_8h_source.html#l00039">parser.h:39</a></div></div>
<div class="ttc" id="avector_8h_html_a0c72f76fed251ea51a8be057f9c89504"><div class="ttname"><a href="../../d6/d68/vector_8h.html#a0c72f76fed251ea51a8be057f9c89504">ARC_Vector_GetSize</a></div><div class="ttdeci">uint32_t ARC_Vector_GetSize(ARC_Vector *vector)</div><div class="ttdoc">gets the current size of an ARC_Vector as an unsigned 32 bit integer</div><div class="ttdef"><b>Definition</b> <a href="../../df/d6b/src_2std_2vector_8c_source.html#l00149">vector.c:149</a></div></div>
<div class="ttc" id="avector_8h_html_a1b01ba012d6fe295e8ce1446f9a6a3a0"><div class="ttname"><a href="../../d6/d68/vector_8h.html#a1b01ba012d6fe295e8ce1446f9a6a3a0">ARC_Vector_Get</a></div><div class="ttdeci">void * ARC_Vector_Get(ARC_Vector *vector, uint32_t index)</div><div class="ttdoc">gets an item from an ARC_Vector at a position index</div><div class="ttdef"><b>Definition</b> <a href="../../df/d6b/src_2std_2vector_8c_source.html#l00153">vector.c:153</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="../../d8/dc2/errno_8h_source.html#l00039">ARC_DEBUG_LOG_ERROR</a>, <a class="el" href="../../d0/d90/errno_8c_source.html#l00005">arc_errno</a>, <a class="el" href="../../d8/dc2/errno_8h_source.html#l00006">ARC_ERRNO_NULL</a>, <a class="el" href="../../d1/d02/helpers_8c_source.html#l00004">ARC_ParserData_HelperRecurseStringAdd()</a>, <a class="el" href="../../d1/db0/string_8c_source.html#l00126">ARC_String_Append()</a>, <a class="el" href="../../df/d6b/src_2std_2vector_8c_source.html#l00153">ARC_Vector_Get()</a>, <a class="el" href="../../df/d6b/src_2std_2vector_8c_source.html#l00149">ARC_Vector_GetSize()</a>, <a class="el" href="../../d5/df3/lexer_8h_source.html#l00020">ARC_LexerToken::data</a>, <a class="el" href="../../d5/d36/parser_8h_source.html#l00039">ARC_ParserTagToken::tagTokens</a>, and <a class="el" href="../../d5/d36/parser_8h_source.html#l00038">ARC_ParserTagToken::token</a>.</p>
<p class="reference">Referenced by <a class="el" href="../../d1/d8e/src_2std_2parser_2csv_8c_source.html#l00069">ARC_ParserCSVData_GetDataTag()</a>, <a class="el" href="../../d1/d02/helpers_8c_source.html#l00004">ARC_ParserData_HelperRecurseStringAdd()</a>, and <a class="el" href="../../de/df2/tests_2std_2parser_8c_source.html#l00019">TEST_ParserData_CreateStringFn()</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.9.2-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul><li class="navelem"><a class="el" href="../../dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="../../dir_fe9004854c8f0f3cfbfe7f330be58a96.html">std</a></li><li class="navelem"><a class="el" href="../../dir_0cddbdba956d28cc5c2a9c72cbf1dc5d.html">parser</a></li><li class="navelem"><a class="el" href="../../d1/d02/helpers_8c.html">helpers.c</a></li></ul>
</div>
<script type="text/javascript">
// script for doxygen 1.9.1
$(function() {
toggleButton = document.createElement('doxygen-awesome-dark-mode-toggle')
toggleButton.title = "Toggle Light/Dark Mode"
$(document).ready(function(){
document.getElementById("MSearchBox").parentNode.appendChild(toggleButton)
})
$(window).resize(function(){
document.getElementById("MSearchBox").parentNode.appendChild(toggleButton)
})
})
</script>
</body>
</html>