stdex/classstdex_1_1html_1_1parser.html

585 lines
38 KiB
HTML

<!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" lang="en-US">
<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.11.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>stdex: stdex::html::parser&lt; T, TR, AX &gt; Class Template 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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<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" />
</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 id="projectrow">
<td id="projectalign">
<div id="projectname">stdex
</div>
<div id="projectbrief">Additional custom or not Standard C++ covered algorithms</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.11.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(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><b>stdex</b></li><li class="navelem"><b>html</b></li><li class="navelem"><a class="el" href="classstdex_1_1html_1_1parser.html">parser</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classstdex_1_1html_1_1parser-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">stdex::html::parser&lt; T, TR, AX &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">
<p>HTML parser.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa378dc9fbf81aecb43ccffd9948f2be4" id="r_aa378dc9fbf81aecb43ccffd9948f2be4"><td class="memItemLeft" align="right" valign="top"><a id="aa378dc9fbf81aecb43ccffd9948f2be4" name="aa378dc9fbf81aecb43ccffd9948f2be4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>parser</b> (const <a class="el" href="classstdex_1_1html_1_1document.html">document</a>&lt; T, TR, AX &gt; &amp;<a class="el" href="classstdex_1_1html_1_1document.html">document</a>, _In_reads_or_z_opt_(num_chars) const stdex::schar_t *url=nullptr, size_t num_chars=0, bool parse_frames=false, <a class="el" href="classstdex_1_1progress.html">stdex::progress</a>&lt; size_t &gt; *<a class="el" href="classstdex_1_1progress.html">progress</a>=nullptr)</td></tr>
<tr class="separator:aa378dc9fbf81aecb43ccffd9948f2be4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1839d06fca077430488bcb7131e2f7f9" id="r_a1839d06fca077430488bcb7131e2f7f9"><td class="memItemLeft" align="right" valign="top"><a id="a1839d06fca077430488bcb7131e2f7f9" name="a1839d06fca077430488bcb7131e2f7f9"></a>
<a class="el" href="classstdex_1_1html_1_1text__token.html">text_token</a>&lt; T, TR, AX &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>parse</b> ()</td></tr>
<tr class="memdesc:a1839d06fca077430488bcb7131e2f7f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses HTML document. <br /></td></tr>
<tr class="separator:a1839d06fca077430488bcb7131e2f7f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23b6ee6369da571d1925230dbeff10e8" id="r_a23b6ee6369da571d1925230dbeff10e8"><td class="memItemLeft" align="right" valign="top">token_list::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a23b6ee6369da571d1925230dbeff10e8">end_tokens</a> (std::basic_string&lt; T, TR, AX &gt; &amp;source, token_list &amp;active_tokens, const token_list &amp;new_tokens)</td></tr>
<tr class="memdesc:a23b6ee6369da571d1925230dbeff10e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pops ending tokens from the active token list and append their tags to the source code string. <br /></td></tr>
<tr class="separator:a23b6ee6369da571d1925230dbeff10e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00f6f82ed5807d87f1b16af89f03226a" id="r_a00f6f82ed5807d87f1b16af89f03226a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a00f6f82ed5807d87f1b16af89f03226a">append_inserted_tokens</a> (std::basic_string&lt; T, TR, AX &gt; &amp;source, inserted_token_list &amp;inserted_tokens, size_t word_index, bool after_word, token_list &amp;active_tokens)</td></tr>
<tr class="memdesc:a00f6f82ed5807d87f1b16af89f03226a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds matching inserted tokens before/after the given word in source code. <br /></td></tr>
<tr class="separator:a00f6f82ed5807d87f1b16af89f03226a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab35d040fe5e51b116c4a7ce6eaa3c7b4" id="r_ab35d040fe5e51b116c4a7ce6eaa3c7b4"><td class="memItemLeft" align="right" valign="top"><a id="ab35d040fe5e51b116c4a7ce6eaa3c7b4" name="ab35d040fe5e51b116c4a7ce6eaa3c7b4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>make_absolute_url</b> (std::basic_string&lt; T, TR, AX &gt; &amp;rel)</td></tr>
<tr class="memdesc:ab35d040fe5e51b116c4a7ce6eaa3c7b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts URL to absolute. <br /></td></tr>
<tr class="separator:ab35d040fe5e51b116c4a7ce6eaa3c7b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0a37daf9b0329838574cd4e1c4e5d56" id="r_ad0a37daf9b0329838574cd4e1c4e5d56"><td class="memItemLeft" align="right" valign="top"><a id="ad0a37daf9b0329838574cd4e1c4e5d56" name="ad0a37daf9b0329838574cd4e1c4e5d56"></a>
const token_vector &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>tokens</b> () const</td></tr>
<tr class="memdesc:ad0a37daf9b0329838574cd4e1c4e5d56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns collection of tokens. <br /></td></tr>
<tr class="separator:ad0a37daf9b0329838574cd4e1c4e5d56"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a89c39929effb51b74462030684e0b347" id="r_a89c39929effb51b74462030684e0b347"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a89c39929effb51b74462030684e0b347">link</a> (std::basic_string&lt; T, TR, AX &gt; &amp;source, const <a class="el" href="classstdex_1_1html_1_1text__token.html">text_token</a>&lt; T, TR, AX &gt; *t)</td></tr>
<tr class="memdesc:a89c39929effb51b74462030684e0b347"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rebuilds HTML source code from the token tree. <br /></td></tr>
<tr class="separator:a89c39929effb51b74462030684e0b347"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82d49a098fde9cf12da6f7af2234b78d" id="r_a82d49a098fde9cf12da6f7af2234b78d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a82d49a098fde9cf12da6f7af2234b78d">start_tokens</a> (std::basic_string&lt; T, TR, AX &gt; &amp;source, token_list &amp;active_tokens, const token_list &amp;new_tokens, token_list::const_iterator from)</td></tr>
<tr class="memdesc:a82d49a098fde9cf12da6f7af2234b78d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pushes tokens to the active token list and appends their tags to the source code string. <br /></td></tr>
<tr class="separator:a82d49a098fde9cf12da6f7af2234b78d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32deefe517aeb37e24b782c1f895587a" id="r_a32deefe517aeb37e24b782c1f895587a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a32deefe517aeb37e24b782c1f895587a">merge</a> (token_list &amp;a, const token_list &amp;b)</td></tr>
<tr class="memdesc:a32deefe517aeb37e24b782c1f895587a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds tokens from list <code>b</code> to list <code>a</code> creating an union. <br /></td></tr>
<tr class="separator:a32deefe517aeb37e24b782c1f895587a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a8a28b266d7a373183f11912d180423d2" id="r_a8a28b266d7a373183f11912d180423d2"><td class="memTemplParams" colspan="2">template&lt;class T_token &gt; </td></tr>
<tr class="memitem:a8a28b266d7a373183f11912d180423d2"><td class="memTemplItemLeft" align="right" valign="top">T_token *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a8a28b266d7a373183f11912d180423d2">append_token</a> (std::unique_ptr&lt; T_token &gt; &amp;&amp;<a class="el" href="classstdex_1_1html_1_1token.html">token</a>)</td></tr>
<tr class="memdesc:a8a28b266d7a373183f11912d180423d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds token to the collection. <br /></td></tr>
<tr class="separator:a8a28b266d7a373183f11912d180423d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acddefe7c4a28d9ddfb128e160dcaa3c4" id="r_acddefe7c4a28d9ddfb128e160dcaa3c4"><td class="memTemplParams" colspan="2">template&lt;class T_token &gt; </td></tr>
<tr class="memitem:acddefe7c4a28d9ddfb128e160dcaa3c4"><td class="memTemplItemLeft" align="right" valign="top">size_t&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#acddefe7c4a28d9ddfb128e160dcaa3c4">append_token</a> (std::unique_ptr&lt; T_token &gt; &amp;&amp;<a class="el" href="classstdex_1_1html_1_1token.html">token</a>, std::basic_string&lt; T, TR, AX &gt; &amp;source)</td></tr>
<tr class="memdesc:acddefe7c4a28d9ddfb128e160dcaa3c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds token to the collection and appends its tag to the source code string. <br /></td></tr>
<tr class="separator:acddefe7c4a28d9ddfb128e160dcaa3c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a166342f91c2b311fa5f1b8162635a2a3" id="r_a166342f91c2b311fa5f1b8162635a2a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstdex_1_1html_1_1text__token.html">text_token</a>&lt; T, TR, AX &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a166342f91c2b311fa5f1b8162635a2a3">parse</a> (const sequence_store::const_iterator &amp;end, uint32_t text_type=0)</td></tr>
<tr class="memdesc:a166342f91c2b311fa5f1b8162635a2a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recursively parses HTML document. <br /></td></tr>
<tr class="separator:a166342f91c2b311fa5f1b8162635a2a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7be4d959f8193f6701665d964ab58d39" id="r_a7be4d959f8193f6701665d964ab58d39"><td class="memItemLeft" align="right" valign="top"><a id="a7be4d959f8193f6701665d964ab58d39" name="a7be4d959f8193f6701665d964ab58d39"></a>
<a class="el" href="classstdex_1_1html_1_1text__token.html">text_token</a>&lt; T, TR, AX &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>parse_css</b> (size_t start, size_t end)</td></tr>
<tr class="memdesc:a7be4d959f8193f6701665d964ab58d39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses CSS. <br /></td></tr>
<tr class="separator:a7be4d959f8193f6701665d964ab58d39"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a1d2fae3246461b74a53dcb05d73ffb90" id="r_a1d2fae3246461b74a53dcb05d73ffb90"><td class="memItemLeft" align="right" valign="top"><a id="a1d2fae3246461b74a53dcb05d73ffb90" name="a1d2fae3246461b74a53dcb05d73ffb90"></a>
const <a class="el" href="classstdex_1_1html_1_1document.html">document</a>&lt; T, TR, AX &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>m_document</b></td></tr>
<tr class="memdesc:a1d2fae3246461b74a53dcb05d73ffb90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Document being analyzed. <br /></td></tr>
<tr class="separator:a1d2fae3246461b74a53dcb05d73ffb90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16fb3bb4eb672f6c4e6b51367a7385e4" id="r_a16fb3bb4eb672f6c4e6b51367a7385e4"><td class="memItemLeft" align="right" valign="top"><a id="a16fb3bb4eb672f6c4e6b51367a7385e4" name="a16fb3bb4eb672f6c4e6b51367a7385e4"></a>
const stdex::sstring&#160;</td><td class="memItemRight" valign="bottom"><b>m_url</b></td></tr>
<tr class="memdesc:a16fb3bb4eb672f6c4e6b51367a7385e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Absolute document URL. <br /></td></tr>
<tr class="separator:a16fb3bb4eb672f6c4e6b51367a7385e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0e2c1737eb01abbad5ee7787b513865" id="r_ab0e2c1737eb01abbad5ee7787b513865"><td class="memItemLeft" align="right" valign="top"><a id="ab0e2c1737eb01abbad5ee7787b513865" name="ab0e2c1737eb01abbad5ee7787b513865"></a>
const bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_parse_frames</b></td></tr>
<tr class="memdesc:ab0e2c1737eb01abbad5ee7787b513865"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse frames. <br /></td></tr>
<tr class="separator:ab0e2c1737eb01abbad5ee7787b513865"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf39db969c3b1896a9f695040c86bb67" id="r_aaf39db969c3b1896a9f695040c86bb67"><td class="memItemLeft" align="right" valign="top"><a id="aaf39db969c3b1896a9f695040c86bb67" name="aaf39db969c3b1896a9f695040c86bb67"></a>
<a class="el" href="classstdex_1_1progress.html">stdex::progress</a>&lt; size_t &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>m_progress</b></td></tr>
<tr class="memdesc:aaf39db969c3b1896a9f695040c86bb67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Progress indicator. <br /></td></tr>
<tr class="separator:aaf39db969c3b1896a9f695040c86bb67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac7139f9e3cadfbe17aa1d925ef0a0f4" id="r_aac7139f9e3cadfbe17aa1d925ef0a0f4"><td class="memItemLeft" align="right" valign="top"><a id="aac7139f9e3cadfbe17aa1d925ef0a0f4" name="aac7139f9e3cadfbe17aa1d925ef0a0f4"></a>
const T *&#160;</td><td class="memItemRight" valign="bottom"><b>m_source</b></td></tr>
<tr class="memdesc:aac7139f9e3cadfbe17aa1d925ef0a0f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">HTML source code. <br /></td></tr>
<tr class="separator:aac7139f9e3cadfbe17aa1d925ef0a0f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00dacf55aec206266424e861ffdee39c" id="r_a00dacf55aec206266424e861ffdee39c"><td class="memItemLeft" align="right" valign="top"><a id="a00dacf55aec206266424e861ffdee39c" name="a00dacf55aec206266424e861ffdee39c"></a>
token_vector&#160;</td><td class="memItemRight" valign="bottom"><b>m_tokens</b></td></tr>
<tr class="memdesc:a00dacf55aec206266424e861ffdee39c"><td class="mdescLeft">&#160;</td><td class="mdescRight">HTML token storage. <br /></td></tr>
<tr class="separator:a00dacf55aec206266424e861ffdee39c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7864696d73f2d1c64f12526dc03b919" id="r_aa7864696d73f2d1c64f12526dc03b919"><td class="memItemLeft" align="right" valign="top"><a id="aa7864696d73f2d1c64f12526dc03b919" name="aa7864696d73f2d1c64f12526dc03b919"></a>
sequence_store::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>m_offset</b></td></tr>
<tr class="memdesc:aa7864696d73f2d1c64f12526dc03b919"><td class="mdescLeft">&#160;</td><td class="mdescRight">Index of active section. <br /></td></tr>
<tr class="separator:aa7864696d73f2d1c64f12526dc03b919"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7c404e43a5a1d84da2c997cd95150a5" id="r_af7c404e43a5a1d84da2c997cd95150a5"><td class="memItemLeft" align="right" valign="top"><a id="af7c404e43a5a1d84da2c997cd95150a5" name="af7c404e43a5a1d84da2c997cd95150a5"></a>
<a class="el" href="classstdex_1_1parser_1_1basic__css__cdo.html">stdex::parser::basic_css_cdo</a>&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>m_css_cdo</b></td></tr>
<tr class="separator:af7c404e43a5a1d84da2c997cd95150a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad480c9effea458197f2e58e1ebfd70d7" id="r_ad480c9effea458197f2e58e1ebfd70d7"><td class="memItemLeft" align="right" valign="top"><a id="ad480c9effea458197f2e58e1ebfd70d7" name="ad480c9effea458197f2e58e1ebfd70d7"></a>
<a class="el" href="classstdex_1_1parser_1_1basic__css__cdc.html">stdex::parser::basic_css_cdc</a>&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>m_css_cdc</b></td></tr>
<tr class="separator:ad480c9effea458197f2e58e1ebfd70d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a025db287bd3978279bd0642457d4d9f2" id="r_a025db287bd3978279bd0642457d4d9f2"><td class="memItemLeft" align="right" valign="top"><a id="a025db287bd3978279bd0642457d4d9f2" name="a025db287bd3978279bd0642457d4d9f2"></a>
<a class="el" href="classstdex_1_1parser_1_1basic__css__comment.html">stdex::parser::basic_css_comment</a>&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>m_css_comment</b></td></tr>
<tr class="separator:a025db287bd3978279bd0642457d4d9f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae95202db4f2ca4e49f940bda84050a39" id="r_ae95202db4f2ca4e49f940bda84050a39"><td class="memItemLeft" align="right" valign="top"><a id="ae95202db4f2ca4e49f940bda84050a39" name="ae95202db4f2ca4e49f940bda84050a39"></a>
<a class="el" href="classstdex_1_1parser_1_1basic__css__string.html">stdex::parser::basic_css_string</a>&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>m_css_string</b></td></tr>
<tr class="separator:ae95202db4f2ca4e49f940bda84050a39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47aa987277e0d582ccf790763475a415" id="r_a47aa987277e0d582ccf790763475a415"><td class="memItemLeft" align="right" valign="top"><a id="a47aa987277e0d582ccf790763475a415" name="a47aa987277e0d582ccf790763475a415"></a>
<a class="el" href="classstdex_1_1parser_1_1basic__css__uri.html">stdex::parser::basic_css_uri</a>&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>m_css_uri</b></td></tr>
<tr class="separator:a47aa987277e0d582ccf790763475a415"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c14e6b145cb291c6c095ae925bcc39a" id="r_a2c14e6b145cb291c6c095ae925bcc39a"><td class="memItemLeft" align="right" valign="top"><a id="a2c14e6b145cb291c6c095ae925bcc39a" name="a2c14e6b145cb291c6c095ae925bcc39a"></a>
<a class="el" href="classstdex_1_1parser_1_1basic__css__import.html">stdex::parser::basic_css_import</a>&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>m_css_import</b></td></tr>
<tr class="separator:a2c14e6b145cb291c6c095ae925bcc39a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cf02062e619f969ac4267a259e8109b" id="r_a0cf02062e619f969ac4267a259e8109b"><td class="memItemLeft" align="right" valign="top"><a id="a0cf02062e619f969ac4267a259e8109b" name="a0cf02062e619f969ac4267a259e8109b"></a>
<a class="el" href="classstdex_1_1parser_1_1basic__any__cu.html">stdex::parser::basic_any_cu</a>&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>m_any_char</b></td></tr>
<tr class="separator:a0cf02062e619f969ac4267a259e8109b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;class T, class TR, class AX&gt;<br />
class stdex::html::parser&lt; T, TR, AX &gt;</div><p>HTML parser. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a00f6f82ed5807d87f1b16af89f03226a" name="a00f6f82ed5807d87f1b16af89f03226a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00f6f82ed5807d87f1b16af89f03226a">&#9670;&#160;</a></span>append_inserted_tokens()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class TR , class AX &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classstdex_1_1html_1_1parser.html">stdex::html::parser</a>&lt; T, TR, AX &gt;::append_inserted_tokens </td>
<td>(</td>
<td class="paramtype">std::basic_string&lt; T, TR, AX &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>source</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">inserted_token_list &amp;</td> <td class="paramname"><span class="paramname"><em>inserted_tokens</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>word_index</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>after_word</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">token_list &amp;</td> <td class="paramname"><span class="paramname"><em>active_tokens</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds matching inserted tokens before/after the given word in source code. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">source</td><td>Source code </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">inserted_tokens</td><td>List of tokens to insert. The tokens are removed from the list once inserted. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">word_index</td><td>Word index </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">after_word</td><td><code>false</code> if source code is before the word; <code>true</code> if after the word </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">active_tokens</td><td>Stack of active tokens </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a8a28b266d7a373183f11912d180423d2" name="a8a28b266d7a373183f11912d180423d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a28b266d7a373183f11912d180423d2">&#9670;&#160;</a></span>append_token() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class TR , class AX &gt; </div>
<div class="memtemplate">
template&lt;class T_token &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">T_token * <a class="el" href="classstdex_1_1html_1_1parser.html">stdex::html::parser</a>&lt; T, TR, AX &gt;::append_token </td>
<td>(</td>
<td class="paramtype">std::unique_ptr&lt; T_token &gt; &amp;&amp;</td> <td class="paramname"><span class="paramname"><em>token</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds token to the collection. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">token</td><td>Token</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the token for non-owning references </dd></dl>
</div>
</div>
<a id="acddefe7c4a28d9ddfb128e160dcaa3c4" name="acddefe7c4a28d9ddfb128e160dcaa3c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acddefe7c4a28d9ddfb128e160dcaa3c4">&#9670;&#160;</a></span>append_token() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class TR , class AX &gt; </div>
<div class="memtemplate">
template&lt;class T_token &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classstdex_1_1html_1_1parser.html">stdex::html::parser</a>&lt; T, TR, AX &gt;::append_token </td>
<td>(</td>
<td class="paramtype">std::unique_ptr&lt; T_token &gt; &amp;&amp;</td> <td class="paramname"><span class="paramname"><em>token</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::basic_string&lt; T, TR, AX &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>source</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds token to the collection and appends its tag to the source code string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">token</td><td>Token </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">source</td><td>Source code</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of code units appended to the source code </dd></dl>
</div>
</div>
<a id="a23b6ee6369da571d1925230dbeff10e8" name="a23b6ee6369da571d1925230dbeff10e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a23b6ee6369da571d1925230dbeff10e8">&#9670;&#160;</a></span>end_tokens()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class TR , class AX &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">token_list::const_iterator <a class="el" href="classstdex_1_1html_1_1parser.html">stdex::html::parser</a>&lt; T, TR, AX &gt;::end_tokens </td>
<td>(</td>
<td class="paramtype">std::basic_string&lt; T, TR, AX &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>source</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">token_list &amp;</td> <td class="paramname"><span class="paramname"><em>active_tokens</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const token_list &amp;</td> <td class="paramname"><span class="paramname"><em>new_tokens</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Pops ending tokens from the active token list and append their tags to the source code string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">source</td><td>Source code </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">active_tokens</td><td>Stack of active tokens </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">new_tokens</td><td>Desired stack of active tokens</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Position in <code>new_tokens</code> specifying where the cut was made </dd></dl>
</div>
</div>
<a id="a89c39929effb51b74462030684e0b347" name="a89c39929effb51b74462030684e0b347"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89c39929effb51b74462030684e0b347">&#9670;&#160;</a></span>link()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class TR , class AX &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classstdex_1_1html_1_1parser.html">stdex::html::parser</a>&lt; T, TR, AX &gt;::link </td>
<td>(</td>
<td class="paramtype">std::basic_string&lt; T, TR, AX &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>source</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classstdex_1_1html_1_1text__token.html">text_token</a>&lt; T, TR, AX &gt; *</td> <td class="paramname"><span class="paramname"><em>t</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Rebuilds HTML source code from the token tree. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">source</td><td>String to append source code to </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">t</td><td>Document root token </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a32deefe517aeb37e24b782c1f895587a" name="a32deefe517aeb37e24b782c1f895587a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32deefe517aeb37e24b782c1f895587a">&#9670;&#160;</a></span>merge()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class TR , class AX &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classstdex_1_1html_1_1parser.html">stdex::html::parser</a>&lt; T, TR, AX &gt;::merge </td>
<td>(</td>
<td class="paramtype">token_list &amp;</td> <td class="paramname"><span class="paramname"><em>a</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const token_list &amp;</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds tokens from list <code>b</code> to list <code>a</code> creating an union. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">a</td><td>Token list to merge <code>b</code> into </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Token list to merge to <code>a</code> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a166342f91c2b311fa5f1b8162635a2a3" name="a166342f91c2b311fa5f1b8162635a2a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a166342f91c2b311fa5f1b8162635a2a3">&#9670;&#160;</a></span>parse()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class TR , class AX &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classstdex_1_1html_1_1text__token.html">text_token</a>&lt; T, TR, AX &gt; * <a class="el" href="classstdex_1_1html_1_1parser.html">stdex::html::parser</a>&lt; T, TR, AX &gt;::parse </td>
<td>(</td>
<td class="paramtype">const sequence_store::const_iterator &amp;</td> <td class="paramname"><span class="paramname"><em>end</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t</td> <td class="paramname"><span class="paramname"><em>text_type</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Recursively parses HTML document. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">end</td><td>Parse sequences on [<code>m_offset</code>, <code>end</code>) interval </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">text_type</td><td>Text flags of the sequences being parsed</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Token representing sequences parsed </dd></dl>
</div>
</div>
<a id="a82d49a098fde9cf12da6f7af2234b78d" name="a82d49a098fde9cf12da6f7af2234b78d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82d49a098fde9cf12da6f7af2234b78d">&#9670;&#160;</a></span>start_tokens()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class TR , class AX &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classstdex_1_1html_1_1parser.html">stdex::html::parser</a>&lt; T, TR, AX &gt;::start_tokens </td>
<td>(</td>
<td class="paramtype">std::basic_string&lt; T, TR, AX &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>source</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">token_list &amp;</td> <td class="paramname"><span class="paramname"><em>active_tokens</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const token_list &amp;</td> <td class="paramname"><span class="paramname"><em>new_tokens</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">token_list::const_iterator</td> <td class="paramname"><span class="paramname"><em>from</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Pushes tokens to the active token list and appends their tags to the source code string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">source</td><td>Source code </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">active_tokens</td><td>Stack of active tokens </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">new_tokens</td><td>New tokens to add </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">from</td><td>Token from <code>new_tokens</code> to start adding at </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/stdex/<a class="el" href="html_8hpp_source.html">html.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 28 2024 09:54:34 for stdex by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.11.0
</small></address>
</div><!-- doc-content -->
</body>
</html>