1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.8.14"/>
7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
8 <title>yaml: Parser Definitions</title>
9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <link href="doxygen.css" rel="stylesheet" type="text/css" />
15 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
17 <table cellspacing="0" cellpadding="0">
19 <tr style="height: 56px;">
20 <td id="projectalign" style="padding-left: 0.5em;">
21 <div id="projectname">yaml
22  <span id="projectnumber">0.2.2</span>
29 <!-- end header part -->
30 <!-- Generated by Doxygen 1.8.14 -->
31 <script type="text/javascript" src="menudata.js"></script>
32 <script type="text/javascript" src="menu.js"></script>
33 <script type="text/javascript">
34 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
36 initMenu('',false,false,'search.php','Search');
38 /* @license-end */</script>
39 <div id="main-nav"></div>
43 <a href="#nested-classes">Data Structures</a> |
44 <a href="#typedef-members">Typedefs</a> |
45 <a href="#enum-members">Enumerations</a> |
46 <a href="#func-members">Functions</a> </div>
47 <div class="headertitle">
48 <div class="title">Parser Definitions</div> </div>
50 <div class="contents">
51 <table class="memberdecls">
52 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
53 Data Structures</h2></td></tr>
54 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structyaml__simple__key__s.html">yaml_simple_key_s</a></td></tr>
55 <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">This structure holds information about a potential simple key. <a href="structyaml__simple__key__s.html#details">More...</a><br /></td></tr>
56 <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
57 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structyaml__alias__data__s.html">yaml_alias_data_s</a></td></tr>
58 <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">This structure holds aliases data. <a href="structyaml__alias__data__s.html#details">More...</a><br /></td></tr>
59 <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
60 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structyaml__parser__s.html">yaml_parser_s</a></td></tr>
61 <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The parser structure. <a href="structyaml__parser__s.html#details">More...</a><br /></td></tr>
62 <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
63 </table><table class="memberdecls">
64 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
65 Typedefs</h2></td></tr>
66 <tr class="memitem:ga4982f7e4e001ddb47d2819f38f0cd9d6"><td class="memItemLeft" align="right" valign="top">typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#ga4982f7e4e001ddb47d2819f38f0cd9d6">yaml_read_handler_t</a>(void *data, unsigned char *buffer, size_t size, size_t *size_read)</td></tr>
67 <tr class="memdesc:ga4982f7e4e001ddb47d2819f38f0cd9d6"><td class="mdescLeft"> </td><td class="mdescRight">The prototype of a read handler. <a href="#ga4982f7e4e001ddb47d2819f38f0cd9d6">More...</a><br /></td></tr>
68 <tr class="separator:ga4982f7e4e001ddb47d2819f38f0cd9d6"><td class="memSeparator" colspan="2"> </td></tr>
69 <tr class="memitem:gae5570fbb7ab7c8332cd666f3a9c26591"><td class="memItemLeft" align="right" valign="top"><a id="gae5570fbb7ab7c8332cd666f3a9c26591"></a>
70 typedef struct <a class="el" href="structyaml__simple__key__s.html">yaml_simple_key_s</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#gae5570fbb7ab7c8332cd666f3a9c26591">yaml_simple_key_t</a></td></tr>
71 <tr class="memdesc:gae5570fbb7ab7c8332cd666f3a9c26591"><td class="mdescLeft"> </td><td class="mdescRight">This structure holds information about a potential simple key. <br /></td></tr>
72 <tr class="separator:gae5570fbb7ab7c8332cd666f3a9c26591"><td class="memSeparator" colspan="2"> </td></tr>
73 <tr class="memitem:ga52b56d3e3cee0f9ba460978802a8c83b"><td class="memItemLeft" align="right" valign="top"><a id="ga52b56d3e3cee0f9ba460978802a8c83b"></a>
74 typedef enum <a class="el" href="group__parser.html#gad39c19e7b0df6f542ca97806535b57c5">yaml_parser_state_e</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#ga52b56d3e3cee0f9ba460978802a8c83b">yaml_parser_state_t</a></td></tr>
75 <tr class="memdesc:ga52b56d3e3cee0f9ba460978802a8c83b"><td class="mdescLeft"> </td><td class="mdescRight">The states of the parser. <br /></td></tr>
76 <tr class="separator:ga52b56d3e3cee0f9ba460978802a8c83b"><td class="memSeparator" colspan="2"> </td></tr>
77 <tr class="memitem:ga1434228b82f5f90d3c8ccda816e9ca9d"><td class="memItemLeft" align="right" valign="top"><a id="ga1434228b82f5f90d3c8ccda816e9ca9d"></a>
78 typedef struct <a class="el" href="structyaml__alias__data__s.html">yaml_alias_data_s</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#ga1434228b82f5f90d3c8ccda816e9ca9d">yaml_alias_data_t</a></td></tr>
79 <tr class="memdesc:ga1434228b82f5f90d3c8ccda816e9ca9d"><td class="mdescLeft"> </td><td class="mdescRight">This structure holds aliases data. <br /></td></tr>
80 <tr class="separator:ga1434228b82f5f90d3c8ccda816e9ca9d"><td class="memSeparator" colspan="2"> </td></tr>
81 <tr class="memitem:gafdc6319cb28a8b8034542b29be85b0c4"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structyaml__parser__s.html">yaml_parser_s</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a></td></tr>
82 <tr class="memdesc:gafdc6319cb28a8b8034542b29be85b0c4"><td class="mdescLeft"> </td><td class="mdescRight">The parser structure. <a href="#gafdc6319cb28a8b8034542b29be85b0c4">More...</a><br /></td></tr>
83 <tr class="separator:gafdc6319cb28a8b8034542b29be85b0c4"><td class="memSeparator" colspan="2"> </td></tr>
84 </table><table class="memberdecls">
85 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
86 Enumerations</h2></td></tr>
87 <tr class="memitem:gad39c19e7b0df6f542ca97806535b57c5"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#gad39c19e7b0df6f542ca97806535b57c5">yaml_parser_state_e</a> { <br />
88   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5ae7b52e16bf002db5cf2944596d8c880e">YAML_PARSE_STREAM_START_STATE</a>,
90   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a8255725d67d5bd3574fc7df4db1c6c84">YAML_PARSE_IMPLICIT_DOCUMENT_START_STATE</a>,
92   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5aa06d10f700d245caecfc6074a6c52fde">YAML_PARSE_DOCUMENT_START_STATE</a>,
94   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5ae444c7652c8029b0ef80068eaaaa3d4d">YAML_PARSE_DOCUMENT_CONTENT_STATE</a>,
96   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5aeef06d7f13fa4501146a5b9876c98239">YAML_PARSE_DOCUMENT_END_STATE</a>,
98   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5ae1893c0835bacf05cdc21ed181fb75f1">YAML_PARSE_BLOCK_NODE_STATE</a>,
100   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5acbd390af0d3919fe0382d03c284ff3b5">YAML_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE</a>,
102   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a5bb321f9d18c5b208a71c04bbcbd1d01">YAML_PARSE_FLOW_NODE_STATE</a>,
104   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a5bb5f95fc5f1a258ee8e9db0ed25b2d9">YAML_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE</a>,
106   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a8a6cb1f12fe08eee7fc2fa854dbd5b1a">YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE</a>,
108   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5af7095f2141cf9887489e832f0ec61fbd">YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE</a>,
110   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5afebcb5bbd67d112d9ecfa633155f0644">YAML_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE</a>,
112   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a2df81c86e90b874b415ecb19e72efe45">YAML_PARSE_BLOCK_MAPPING_KEY_STATE</a>,
114   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5ae94acf5685fa1538b225413f154465c2">YAML_PARSE_BLOCK_MAPPING_VALUE_STATE</a>,
116   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a3f54830989c12cc4a63494df792eeb08">YAML_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE</a>,
118   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a0e50f3841eb0d37ad159e64c4a9a1171">YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE</a>,
120   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a563e11601cf3a1d2a3efc1feb1b696a3">YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE</a>,
122   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a9e5ebb4bee4541e7a7025689c7fc66eb">YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE</a>,
124   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a397fd87de9227c64e5308481930b5eeb">YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE</a>,
126   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a91ac4bbb6629e2b768a3305fb707b7cd">YAML_PARSE_FLOW_MAPPING_FIRST_KEY_STATE</a>,
128   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a924f8eb891dc7527bf4db594a0b1bff8">YAML_PARSE_FLOW_MAPPING_KEY_STATE</a>,
130   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a3ba351f6cfba029248ada2c0720246d4">YAML_PARSE_FLOW_MAPPING_VALUE_STATE</a>,
132   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a5a8ec0af5c3314c1ad5e0569b6a5d6d2">YAML_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE</a>,
134   <a class="el" href="group__parser.html#ggad39c19e7b0df6f542ca97806535b57c5a51fd3d45693e2240251996def375a2a2">YAML_PARSE_END_STATE</a>
137 <tr class="memdesc:gad39c19e7b0df6f542ca97806535b57c5"><td class="mdescLeft"> </td><td class="mdescRight">The states of the parser. <a href="group__parser.html#gad39c19e7b0df6f542ca97806535b57c5">More...</a><br /></td></tr>
138 <tr class="separator:gad39c19e7b0df6f542ca97806535b57c5"><td class="memSeparator" colspan="2"> </td></tr>
139 </table><table class="memberdecls">
140 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
141 Functions</h2></td></tr>
142 <tr class="memitem:gacc37ceeb5847e38a3fe24eb0c9b53965"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#gacc37ceeb5847e38a3fe24eb0c9b53965">yaml_parser_initialize</a> (<a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> *parser)</td></tr>
143 <tr class="memdesc:gacc37ceeb5847e38a3fe24eb0c9b53965"><td class="mdescLeft"> </td><td class="mdescRight">Initialize a parser. <a href="#gacc37ceeb5847e38a3fe24eb0c9b53965">More...</a><br /></td></tr>
144 <tr class="separator:gacc37ceeb5847e38a3fe24eb0c9b53965"><td class="memSeparator" colspan="2"> </td></tr>
145 <tr class="memitem:gaa27150107c4667c1024ec0651e2ac26b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#gaa27150107c4667c1024ec0651e2ac26b">yaml_parser_delete</a> (<a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> *parser)</td></tr>
146 <tr class="memdesc:gaa27150107c4667c1024ec0651e2ac26b"><td class="mdescLeft"> </td><td class="mdescRight">Destroy a parser. <a href="#gaa27150107c4667c1024ec0651e2ac26b">More...</a><br /></td></tr>
147 <tr class="separator:gaa27150107c4667c1024ec0651e2ac26b"><td class="memSeparator" colspan="2"> </td></tr>
148 <tr class="memitem:ga08a94762bf5f4c61f72c1da0a407df0d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#ga08a94762bf5f4c61f72c1da0a407df0d">yaml_parser_set_input_string</a> (<a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> *parser, const unsigned char *input, size_t size)</td></tr>
149 <tr class="memdesc:ga08a94762bf5f4c61f72c1da0a407df0d"><td class="mdescLeft"> </td><td class="mdescRight">Set a string input. <a href="#ga08a94762bf5f4c61f72c1da0a407df0d">More...</a><br /></td></tr>
150 <tr class="separator:ga08a94762bf5f4c61f72c1da0a407df0d"><td class="memSeparator" colspan="2"> </td></tr>
151 <tr class="memitem:gac3f00f8beb2365b1e4569692d64696b6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#gac3f00f8beb2365b1e4569692d64696b6">yaml_parser_set_input_file</a> (<a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> *parser, FILE *file)</td></tr>
152 <tr class="memdesc:gac3f00f8beb2365b1e4569692d64696b6"><td class="mdescLeft"> </td><td class="mdescRight">Set a file input. <a href="#gac3f00f8beb2365b1e4569692d64696b6">More...</a><br /></td></tr>
153 <tr class="separator:gac3f00f8beb2365b1e4569692d64696b6"><td class="memSeparator" colspan="2"> </td></tr>
154 <tr class="memitem:gabc67581bfa771a3e787d907d6914b8d9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#gabc67581bfa771a3e787d907d6914b8d9">yaml_parser_set_input</a> (<a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> *parser, <a class="el" href="group__parser.html#ga4982f7e4e001ddb47d2819f38f0cd9d6">yaml_read_handler_t</a> *handler, void *data)</td></tr>
155 <tr class="memdesc:gabc67581bfa771a3e787d907d6914b8d9"><td class="mdescLeft"> </td><td class="mdescRight">Set a generic input handler. <a href="#gabc67581bfa771a3e787d907d6914b8d9">More...</a><br /></td></tr>
156 <tr class="separator:gabc67581bfa771a3e787d907d6914b8d9"><td class="memSeparator" colspan="2"> </td></tr>
157 <tr class="memitem:ga9565b64975570ed34612a19adf02ae6a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#ga9565b64975570ed34612a19adf02ae6a">yaml_parser_set_encoding</a> (<a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> *parser, <a class="el" href="group__basic.html#ga2170996d7e636397b5e6bc0c1b7df7c6">yaml_encoding_t</a> encoding)</td></tr>
158 <tr class="memdesc:ga9565b64975570ed34612a19adf02ae6a"><td class="mdescLeft"> </td><td class="mdescRight">Set the source encoding. <a href="#ga9565b64975570ed34612a19adf02ae6a">More...</a><br /></td></tr>
159 <tr class="separator:ga9565b64975570ed34612a19adf02ae6a"><td class="memSeparator" colspan="2"> </td></tr>
160 <tr class="memitem:ga6c2144f131ebd600a075d4ba654540f7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#ga6c2144f131ebd600a075d4ba654540f7">yaml_parser_scan</a> (<a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> *parser, <a class="el" href="group__tokens.html#ga1ed3dc460e62aee8270c5d63d5734bbb">yaml_token_t</a> *token)</td></tr>
161 <tr class="memdesc:ga6c2144f131ebd600a075d4ba654540f7"><td class="mdescLeft"> </td><td class="mdescRight">Scan the input stream and produce the next token. <a href="#ga6c2144f131ebd600a075d4ba654540f7">More...</a><br /></td></tr>
162 <tr class="separator:ga6c2144f131ebd600a075d4ba654540f7"><td class="memSeparator" colspan="2"> </td></tr>
163 <tr class="memitem:ga559312fb137533d8b7e07f224fe0ec8f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#ga559312fb137533d8b7e07f224fe0ec8f">yaml_parser_parse</a> (<a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> *parser, <a class="el" href="group__events.html#ga3b392d9716c4920cabefdd29e78dd542">yaml_event_t</a> *event)</td></tr>
164 <tr class="memdesc:ga559312fb137533d8b7e07f224fe0ec8f"><td class="mdescLeft"> </td><td class="mdescRight">Parse the input stream and produce the next parsing event. <a href="#ga559312fb137533d8b7e07f224fe0ec8f">More...</a><br /></td></tr>
165 <tr class="separator:ga559312fb137533d8b7e07f224fe0ec8f"><td class="memSeparator" colspan="2"> </td></tr>
166 <tr class="memitem:ga9ef7d6e9494766b5880c389bc431d138"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parser.html#ga9ef7d6e9494766b5880c389bc431d138">yaml_parser_load</a> (<a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> *parser, <a class="el" href="group__nodes.html#gad94e064e95baeb22e4f7acc7804e8479">yaml_document_t</a> *document)</td></tr>
167 <tr class="memdesc:ga9ef7d6e9494766b5880c389bc431d138"><td class="mdescLeft"> </td><td class="mdescRight">Parse the input stream and produce the next YAML document. <a href="#ga9ef7d6e9494766b5880c389bc431d138">More...</a><br /></td></tr>
168 <tr class="separator:ga9ef7d6e9494766b5880c389bc431d138"><td class="memSeparator" colspan="2"> </td></tr>
170 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
171 <h2 class="groupheader">Typedef Documentation</h2>
172 <a id="ga4982f7e4e001ddb47d2819f38f0cd9d6"></a>
173 <h2 class="memtitle"><span class="permalink"><a href="#ga4982f7e4e001ddb47d2819f38f0cd9d6">◆ </a></span>yaml_read_handler_t</h2>
175 <div class="memitem">
176 <div class="memproto">
177 <table class="memname">
179 <td class="memname">typedef int yaml_read_handler_t(void *data, unsigned char *buffer, size_t size, size_t *size_read)</td>
182 </div><div class="memdoc">
184 <p>The prototype of a read handler. </p>
185 <p>The read handler is called when the parser needs to read more bytes from the source. The handler should write not more than <em>size</em> bytes to the <em>buffer</em>. The number of written bytes should be set to the <em>length</em> variable.</p>
186 <dl class="params"><dt>Parameters</dt><dd>
187 <table class="params">
188 <tr><td class="paramdir">[in,out]</td><td class="paramname">data</td><td>A pointer to an application data specified by <a class="el" href="group__parser.html#gabc67581bfa771a3e787d907d6914b8d9" title="Set a generic input handler. ">yaml_parser_set_input()</a>. </td></tr>
189 <tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>The buffer to write the data from the source. </td></tr>
190 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The size of the buffer. </td></tr>
191 <tr><td class="paramdir">[out]</td><td class="paramname">size_read</td><td>The actual number of bytes read from the source.</td></tr>
195 <dl class="section return"><dt>Returns</dt><dd>On success, the handler should return <code>1</code>. If the handler failed, the returned value should be <code>0</code>. On EOF, the handler should set the <em>size_read</em> to <code>0</code> and return <code>1</code>. </dd></dl>
199 <a id="gafdc6319cb28a8b8034542b29be85b0c4"></a>
200 <h2 class="memtitle"><span class="permalink"><a href="#gafdc6319cb28a8b8034542b29be85b0c4">◆ </a></span>yaml_parser_t</h2>
202 <div class="memitem">
203 <div class="memproto">
204 <table class="memname">
206 <td class="memname">typedef struct <a class="el" href="structyaml__parser__s.html">yaml_parser_s</a> <a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a></td>
209 </div><div class="memdoc">
211 <p>The parser structure. </p>
212 <p>All members are internal. Manage the structure using the <code>yaml_parser_</code> family of functions. </p>
216 <h2 class="groupheader">Enumeration Type Documentation</h2>
217 <a id="gad39c19e7b0df6f542ca97806535b57c5"></a>
218 <h2 class="memtitle"><span class="permalink"><a href="#gad39c19e7b0df6f542ca97806535b57c5">◆ </a></span>yaml_parser_state_e</h2>
220 <div class="memitem">
221 <div class="memproto">
222 <table class="memname">
224 <td class="memname">enum <a class="el" href="group__parser.html#gad39c19e7b0df6f542ca97806535b57c5">yaml_parser_state_e</a></td>
227 </div><div class="memdoc">
229 <p>The states of the parser. </p>
230 <table class="fieldtable">
231 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5ae7b52e16bf002db5cf2944596d8c880e"></a>YAML_PARSE_STREAM_START_STATE </td><td class="fielddoc"><p>Expect STREAM-START. </p>
233 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a8255725d67d5bd3574fc7df4db1c6c84"></a>YAML_PARSE_IMPLICIT_DOCUMENT_START_STATE </td><td class="fielddoc"><p>Expect the beginning of an implicit document. </p>
235 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5aa06d10f700d245caecfc6074a6c52fde"></a>YAML_PARSE_DOCUMENT_START_STATE </td><td class="fielddoc"><p>Expect DOCUMENT-START. </p>
237 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5ae444c7652c8029b0ef80068eaaaa3d4d"></a>YAML_PARSE_DOCUMENT_CONTENT_STATE </td><td class="fielddoc"><p>Expect the content of a document. </p>
239 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5aeef06d7f13fa4501146a5b9876c98239"></a>YAML_PARSE_DOCUMENT_END_STATE </td><td class="fielddoc"><p>Expect DOCUMENT-END. </p>
241 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5ae1893c0835bacf05cdc21ed181fb75f1"></a>YAML_PARSE_BLOCK_NODE_STATE </td><td class="fielddoc"><p>Expect a block node. </p>
243 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5acbd390af0d3919fe0382d03c284ff3b5"></a>YAML_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE </td><td class="fielddoc"><p>Expect a block node or indentless sequence. </p>
245 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a5bb321f9d18c5b208a71c04bbcbd1d01"></a>YAML_PARSE_FLOW_NODE_STATE </td><td class="fielddoc"><p>Expect a flow node. </p>
247 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a5bb5f95fc5f1a258ee8e9db0ed25b2d9"></a>YAML_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE </td><td class="fielddoc"><p>Expect the first entry of a block sequence. </p>
249 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a8a6cb1f12fe08eee7fc2fa854dbd5b1a"></a>YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE </td><td class="fielddoc"><p>Expect an entry of a block sequence. </p>
251 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5af7095f2141cf9887489e832f0ec61fbd"></a>YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE </td><td class="fielddoc"><p>Expect an entry of an indentless sequence. </p>
253 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5afebcb5bbd67d112d9ecfa633155f0644"></a>YAML_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE </td><td class="fielddoc"><p>Expect the first key of a block mapping. </p>
255 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a2df81c86e90b874b415ecb19e72efe45"></a>YAML_PARSE_BLOCK_MAPPING_KEY_STATE </td><td class="fielddoc"><p>Expect a block mapping key. </p>
257 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5ae94acf5685fa1538b225413f154465c2"></a>YAML_PARSE_BLOCK_MAPPING_VALUE_STATE </td><td class="fielddoc"><p>Expect a block mapping value. </p>
259 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a3f54830989c12cc4a63494df792eeb08"></a>YAML_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE </td><td class="fielddoc"><p>Expect the first entry of a flow sequence. </p>
261 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a0e50f3841eb0d37ad159e64c4a9a1171"></a>YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE </td><td class="fielddoc"><p>Expect an entry of a flow sequence. </p>
263 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a563e11601cf3a1d2a3efc1feb1b696a3"></a>YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE </td><td class="fielddoc"><p>Expect a key of an ordered mapping. </p>
265 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a9e5ebb4bee4541e7a7025689c7fc66eb"></a>YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE </td><td class="fielddoc"><p>Expect a value of an ordered mapping. </p>
267 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a397fd87de9227c64e5308481930b5eeb"></a>YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE </td><td class="fielddoc"><p>Expect the and of an ordered mapping entry. </p>
269 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a91ac4bbb6629e2b768a3305fb707b7cd"></a>YAML_PARSE_FLOW_MAPPING_FIRST_KEY_STATE </td><td class="fielddoc"><p>Expect the first key of a flow mapping. </p>
271 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a924f8eb891dc7527bf4db594a0b1bff8"></a>YAML_PARSE_FLOW_MAPPING_KEY_STATE </td><td class="fielddoc"><p>Expect a key of a flow mapping. </p>
273 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a3ba351f6cfba029248ada2c0720246d4"></a>YAML_PARSE_FLOW_MAPPING_VALUE_STATE </td><td class="fielddoc"><p>Expect a value of a flow mapping. </p>
275 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a5a8ec0af5c3314c1ad5e0569b6a5d6d2"></a>YAML_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE </td><td class="fielddoc"><p>Expect an empty value of a flow mapping. </p>
277 <tr><td class="fieldname"><a id="ggad39c19e7b0df6f542ca97806535b57c5a51fd3d45693e2240251996def375a2a2"></a>YAML_PARSE_END_STATE </td><td class="fielddoc"><p>Expect nothing. </p>
283 <h2 class="groupheader">Function Documentation</h2>
284 <a id="gacc37ceeb5847e38a3fe24eb0c9b53965"></a>
285 <h2 class="memtitle"><span class="permalink"><a href="#gacc37ceeb5847e38a3fe24eb0c9b53965">◆ </a></span>yaml_parser_initialize()</h2>
287 <div class="memitem">
288 <div class="memproto">
289 <table class="memname">
291 <td class="memname">int yaml_parser_initialize </td>
293 <td class="paramtype"><a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> * </td>
294 <td class="paramname"><em>parser</em></td><td>)</td>
298 </div><div class="memdoc">
300 <p>Initialize a parser. </p>
301 <p>This function creates a new parser object. An application is responsible for destroying the object using the <a class="el" href="group__parser.html#gaa27150107c4667c1024ec0651e2ac26b" title="Destroy a parser. ">yaml_parser_delete()</a> function.</p>
302 <dl class="params"><dt>Parameters</dt><dd>
303 <table class="params">
304 <tr><td class="paramdir">[out]</td><td class="paramname">parser</td><td>An empty parser object.</td></tr>
308 <dl class="section return"><dt>Returns</dt><dd><code>1</code> if the function succeeded, <code>0</code> on error. </dd></dl>
312 <a id="gaa27150107c4667c1024ec0651e2ac26b"></a>
313 <h2 class="memtitle"><span class="permalink"><a href="#gaa27150107c4667c1024ec0651e2ac26b">◆ </a></span>yaml_parser_delete()</h2>
315 <div class="memitem">
316 <div class="memproto">
317 <table class="memname">
319 <td class="memname">void yaml_parser_delete </td>
321 <td class="paramtype"><a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> * </td>
322 <td class="paramname"><em>parser</em></td><td>)</td>
326 </div><div class="memdoc">
328 <p>Destroy a parser. </p>
329 <dl class="params"><dt>Parameters</dt><dd>
330 <table class="params">
331 <tr><td class="paramdir">[in,out]</td><td class="paramname">parser</td><td>A parser object. </td></tr>
338 <a id="ga08a94762bf5f4c61f72c1da0a407df0d"></a>
339 <h2 class="memtitle"><span class="permalink"><a href="#ga08a94762bf5f4c61f72c1da0a407df0d">◆ </a></span>yaml_parser_set_input_string()</h2>
341 <div class="memitem">
342 <div class="memproto">
343 <table class="memname">
345 <td class="memname">void yaml_parser_set_input_string </td>
347 <td class="paramtype"><a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> * </td>
348 <td class="paramname"><em>parser</em>, </td>
351 <td class="paramkey"></td>
353 <td class="paramtype">const unsigned char * </td>
354 <td class="paramname"><em>input</em>, </td>
357 <td class="paramkey"></td>
359 <td class="paramtype">size_t </td>
360 <td class="paramname"><em>size</em> </td>
368 </div><div class="memdoc">
370 <p>Set a string input. </p>
371 <p>Note that the <em>input</em> pointer must be valid while the <em>parser</em> object exists. The application is responsible for destroing <em>input</em> after destroying the <em>parser</em>.</p>
372 <dl class="params"><dt>Parameters</dt><dd>
373 <table class="params">
374 <tr><td class="paramdir">[in,out]</td><td class="paramname">parser</td><td>A parser object. </td></tr>
375 <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>A source data. </td></tr>
376 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The length of the source data in bytes. </td></tr>
383 <a id="gac3f00f8beb2365b1e4569692d64696b6"></a>
384 <h2 class="memtitle"><span class="permalink"><a href="#gac3f00f8beb2365b1e4569692d64696b6">◆ </a></span>yaml_parser_set_input_file()</h2>
386 <div class="memitem">
387 <div class="memproto">
388 <table class="memname">
390 <td class="memname">void yaml_parser_set_input_file </td>
392 <td class="paramtype"><a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> * </td>
393 <td class="paramname"><em>parser</em>, </td>
396 <td class="paramkey"></td>
398 <td class="paramtype">FILE * </td>
399 <td class="paramname"><em>file</em> </td>
407 </div><div class="memdoc">
409 <p>Set a file input. </p>
410 <p><em>file</em> should be a file object open for reading. The application is responsible for closing the <em>file</em>.</p>
411 <dl class="params"><dt>Parameters</dt><dd>
412 <table class="params">
413 <tr><td class="paramdir">[in,out]</td><td class="paramname">parser</td><td>A parser object. </td></tr>
414 <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>An open file. </td></tr>
421 <a id="gabc67581bfa771a3e787d907d6914b8d9"></a>
422 <h2 class="memtitle"><span class="permalink"><a href="#gabc67581bfa771a3e787d907d6914b8d9">◆ </a></span>yaml_parser_set_input()</h2>
424 <div class="memitem">
425 <div class="memproto">
426 <table class="memname">
428 <td class="memname">void yaml_parser_set_input </td>
430 <td class="paramtype"><a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> * </td>
431 <td class="paramname"><em>parser</em>, </td>
434 <td class="paramkey"></td>
436 <td class="paramtype"><a class="el" href="group__parser.html#ga4982f7e4e001ddb47d2819f38f0cd9d6">yaml_read_handler_t</a> * </td>
437 <td class="paramname"><em>handler</em>, </td>
440 <td class="paramkey"></td>
442 <td class="paramtype">void * </td>
443 <td class="paramname"><em>data</em> </td>
451 </div><div class="memdoc">
453 <p>Set a generic input handler. </p>
454 <dl class="params"><dt>Parameters</dt><dd>
455 <table class="params">
456 <tr><td class="paramdir">[in,out]</td><td class="paramname">parser</td><td>A parser object. </td></tr>
457 <tr><td class="paramdir">[in]</td><td class="paramname">handler</td><td>A read handler. </td></tr>
458 <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Any application data for passing to the read handler. </td></tr>
465 <a id="ga9565b64975570ed34612a19adf02ae6a"></a>
466 <h2 class="memtitle"><span class="permalink"><a href="#ga9565b64975570ed34612a19adf02ae6a">◆ </a></span>yaml_parser_set_encoding()</h2>
468 <div class="memitem">
469 <div class="memproto">
470 <table class="memname">
472 <td class="memname">void yaml_parser_set_encoding </td>
474 <td class="paramtype"><a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> * </td>
475 <td class="paramname"><em>parser</em>, </td>
478 <td class="paramkey"></td>
480 <td class="paramtype"><a class="el" href="group__basic.html#ga2170996d7e636397b5e6bc0c1b7df7c6">yaml_encoding_t</a> </td>
481 <td class="paramname"><em>encoding</em> </td>
489 </div><div class="memdoc">
491 <p>Set the source encoding. </p>
492 <dl class="params"><dt>Parameters</dt><dd>
493 <table class="params">
494 <tr><td class="paramdir">[in,out]</td><td class="paramname">parser</td><td>A parser object. </td></tr>
495 <tr><td class="paramdir">[in]</td><td class="paramname">encoding</td><td>The source encoding. </td></tr>
502 <a id="ga6c2144f131ebd600a075d4ba654540f7"></a>
503 <h2 class="memtitle"><span class="permalink"><a href="#ga6c2144f131ebd600a075d4ba654540f7">◆ </a></span>yaml_parser_scan()</h2>
505 <div class="memitem">
506 <div class="memproto">
507 <table class="memname">
509 <td class="memname">int yaml_parser_scan </td>
511 <td class="paramtype"><a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> * </td>
512 <td class="paramname"><em>parser</em>, </td>
515 <td class="paramkey"></td>
517 <td class="paramtype"><a class="el" href="group__tokens.html#ga1ed3dc460e62aee8270c5d63d5734bbb">yaml_token_t</a> * </td>
518 <td class="paramname"><em>token</em> </td>
526 </div><div class="memdoc">
528 <p>Scan the input stream and produce the next token. </p>
529 <p>Call the function subsequently to produce a sequence of tokens corresponding to the input stream. The initial token has the type <code>YAML_STREAM_START_TOKEN</code> while the ending token has the type <code>YAML_STREAM_END_TOKEN</code>.</p>
530 <p>An application is responsible for freeing any buffers associated with the produced token object using the <code>yaml_token_delete</code> function.</p>
531 <p>An application must not alternate the calls of <a class="el" href="group__parser.html#ga6c2144f131ebd600a075d4ba654540f7" title="Scan the input stream and produce the next token. ">yaml_parser_scan()</a> with the calls of <a class="el" href="group__parser.html#ga559312fb137533d8b7e07f224fe0ec8f" title="Parse the input stream and produce the next parsing event. ">yaml_parser_parse()</a> or <a class="el" href="group__parser.html#ga9ef7d6e9494766b5880c389bc431d138" title="Parse the input stream and produce the next YAML document. ">yaml_parser_load()</a>. Doing this will break the parser.</p>
532 <dl class="params"><dt>Parameters</dt><dd>
533 <table class="params">
534 <tr><td class="paramdir">[in,out]</td><td class="paramname">parser</td><td>A parser object. </td></tr>
535 <tr><td class="paramdir">[out]</td><td class="paramname">token</td><td>An empty token object.</td></tr>
539 <dl class="section return"><dt>Returns</dt><dd><code>1</code> if the function succeeded, <code>0</code> on error. </dd></dl>
543 <a id="ga559312fb137533d8b7e07f224fe0ec8f"></a>
544 <h2 class="memtitle"><span class="permalink"><a href="#ga559312fb137533d8b7e07f224fe0ec8f">◆ </a></span>yaml_parser_parse()</h2>
546 <div class="memitem">
547 <div class="memproto">
548 <table class="memname">
550 <td class="memname">int yaml_parser_parse </td>
552 <td class="paramtype"><a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> * </td>
553 <td class="paramname"><em>parser</em>, </td>
556 <td class="paramkey"></td>
558 <td class="paramtype"><a class="el" href="group__events.html#ga3b392d9716c4920cabefdd29e78dd542">yaml_event_t</a> * </td>
559 <td class="paramname"><em>event</em> </td>
567 </div><div class="memdoc">
569 <p>Parse the input stream and produce the next parsing event. </p>
570 <p>Call the function subsequently to produce a sequence of events corresponding to the input stream. The initial event has the type <code>YAML_STREAM_START_EVENT</code> while the ending event has the type <code>YAML_STREAM_END_EVENT</code>.</p>
571 <p>An application is responsible for freeing any buffers associated with the produced event object using the <a class="el" href="group__events.html#ga5330d62ef52856aa53188137cb93a6a1" title="Free any memory allocated for an event object. ">yaml_event_delete()</a> function.</p>
572 <p>An application must not alternate the calls of <a class="el" href="group__parser.html#ga559312fb137533d8b7e07f224fe0ec8f" title="Parse the input stream and produce the next parsing event. ">yaml_parser_parse()</a> with the calls of <a class="el" href="group__parser.html#ga6c2144f131ebd600a075d4ba654540f7" title="Scan the input stream and produce the next token. ">yaml_parser_scan()</a> or <a class="el" href="group__parser.html#ga9ef7d6e9494766b5880c389bc431d138" title="Parse the input stream and produce the next YAML document. ">yaml_parser_load()</a>. Doing this will break the parser.</p>
573 <dl class="params"><dt>Parameters</dt><dd>
574 <table class="params">
575 <tr><td class="paramdir">[in,out]</td><td class="paramname">parser</td><td>A parser object. </td></tr>
576 <tr><td class="paramdir">[out]</td><td class="paramname">event</td><td>An empty event object.</td></tr>
580 <dl class="section return"><dt>Returns</dt><dd><code>1</code> if the function succeeded, <code>0</code> on error. </dd></dl>
584 <a id="ga9ef7d6e9494766b5880c389bc431d138"></a>
585 <h2 class="memtitle"><span class="permalink"><a href="#ga9ef7d6e9494766b5880c389bc431d138">◆ </a></span>yaml_parser_load()</h2>
587 <div class="memitem">
588 <div class="memproto">
589 <table class="memname">
591 <td class="memname">int yaml_parser_load </td>
593 <td class="paramtype"><a class="el" href="group__parser.html#gafdc6319cb28a8b8034542b29be85b0c4">yaml_parser_t</a> * </td>
594 <td class="paramname"><em>parser</em>, </td>
597 <td class="paramkey"></td>
599 <td class="paramtype"><a class="el" href="group__nodes.html#gad94e064e95baeb22e4f7acc7804e8479">yaml_document_t</a> * </td>
600 <td class="paramname"><em>document</em> </td>
608 </div><div class="memdoc">
610 <p>Parse the input stream and produce the next YAML document. </p>
611 <p>Call this function subsequently to produce a sequence of documents constituting the input stream.</p>
612 <p>If the produced document has no root node, it means that the document end has been reached.</p>
613 <p>An application is responsible for freeing any data associated with the produced document object using the <a class="el" href="group__nodes.html#ga2754b1544fb4e110e83fafbc708b0672" title="Delete a YAML document and all its nodes. ">yaml_document_delete()</a> function.</p>
614 <p>An application must not alternate the calls of <a class="el" href="group__parser.html#ga9ef7d6e9494766b5880c389bc431d138" title="Parse the input stream and produce the next YAML document. ">yaml_parser_load()</a> with the calls of <a class="el" href="group__parser.html#ga6c2144f131ebd600a075d4ba654540f7" title="Scan the input stream and produce the next token. ">yaml_parser_scan()</a> or <a class="el" href="group__parser.html#ga559312fb137533d8b7e07f224fe0ec8f" title="Parse the input stream and produce the next parsing event. ">yaml_parser_parse()</a>. Doing this will break the parser.</p>
615 <dl class="params"><dt>Parameters</dt><dd>
616 <table class="params">
617 <tr><td class="paramdir">[in,out]</td><td class="paramname">parser</td><td>A parser object. </td></tr>
618 <tr><td class="paramdir">[out]</td><td class="paramname">document</td><td>An empty document object.</td></tr>
622 <dl class="section return"><dt>Returns</dt><dd><code>1</code> if the function succeeded, <code>0</code> on error. </dd></dl>
626 </div><!-- contents -->
627 <!-- start footer part -->
628 <hr class="footer"/><address class="footer"><small>
629 Generated by  <a href="http://www.doxygen.org/index.html">
630 <img class="footer" src="doxygen.png" alt="doxygen"/>