Skip to content

Commit 1e437fe

Browse files
committed
add:pretty method,docs,escape characters
1 parent 9bb3914 commit 1e437fe

File tree

367 files changed

+48805
-253
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

367 files changed

+48805
-253
lines changed

Doxyfile

+2,661
Large diffs are not rendered by default.

README.md

+32-32
Original file line numberDiff line numberDiff line change
@@ -289,12 +289,12 @@ JObject Parser::parse()
289289
```cpp
290290
char Parser::get_next_token()
291291
{
292-
while (std::isspace(m_str[m_idx])) m_idx++;
293-
if (m_idx >= m_str.size())
292+
while (std::isspace(str_[idx_])) idx_++;
293+
if (idx_ >= str_.size())
294294
throw std::logic_error("unexpected character in parse json");
295295
//如果是注释,记得跳过
296296
skip_comment();
297-
return m_str[m_idx];
297+
return str_[idx_];
298298
}
299299
```
300300

@@ -307,9 +307,9 @@ char Parser::get_next_token()
307307
```cpp
308308
JObject Parser::parse_null()
309309
{
310-
if (m_str.compare(m_idx, 4, "null") == 0)
310+
if (str_.compare(idx_, 4, "null") == 0)
311311
{
312-
m_idx += 4;
312+
idx_ += 4;
313313
return {};
314314
}
315315
throw std::logic_error("parse null error");
@@ -321,14 +321,14 @@ JObject Parser::parse_null()
321321
```cpp
322322
bool Parser::parse_bool()
323323
{
324-
if (m_str.compare(m_idx, 4, "true") == 0)
324+
if (str_.compare(idx_, 4, "true") == 0)
325325
{
326-
m_idx += 4;
326+
idx_ += 4;
327327
return "true";
328328
}
329-
if (m_str.compare(m_idx, 5, "false") == 0)
329+
if (str_.compare(idx_, 5, "false") == 0)
330330
{
331-
m_idx += 5;
331+
idx_ += 5;
332332
return "false";
333333
}
334334
throw std::logic_error("parse bool error");
@@ -340,37 +340,37 @@ bool Parser::parse_bool()
340340
```cpp
341341
JObject Parser::parse_number()
342342
{
343-
auto pos = m_idx;
343+
auto pos = idx_;
344344
//integer part
345-
if (m_str[m_idx] == '-')
345+
if (str_[idx_] == '-')
346346
{
347-
m_idx++;
347+
idx_++;
348348
}
349-
if (isdigit(m_str[m_idx]))
350-
while (isdigit(m_str[m_idx]))
351-
m_idx++;
349+
if (isdigit(str_[idx_]))
350+
while (isdigit(str_[idx_]))
351+
idx_++;
352352
else
353353
{
354354
throw std::logic_error("invalid character in number");
355355
}
356356

357-
if (m_str[m_idx] != '.')
357+
if (str_[idx_] != '.')
358358
{
359-
return (int) strtol(m_str.c_str() + pos, nullptr, 10);
359+
return (int) strtol(str_.c_str() + pos, nullptr, 10);
360360
}
361361

362362
//decimal part
363-
if (m_str[m_idx] == '.')
363+
if (str_[idx_] == '.')
364364
{
365-
m_idx++;
366-
if (!std::isdigit(m_str[m_idx]))
365+
idx_++;
366+
if (!std::isdigit(str_[idx_]))
367367
{
368368
throw std::logic_error("at least one digit required in parse float part!");
369369
}
370-
while (std::isdigit(m_str[m_idx]))
371-
m_idx++;
370+
while (std::isdigit(str_[idx_]))
371+
idx_++;
372372
}
373-
return strtof64(m_str.c_str() + pos, nullptr);
373+
return strtof64(str_.c_str() + pos, nullptr);
374374
}
375375
```
376376

@@ -380,11 +380,11 @@ JObject Parser::parse_number()
380380
JObject Parser::parse_list()
381381
{
382382
JObject arr((list_t()));//得到list类型的JObject
383-
m_idx++;
383+
idx_++;
384384
char ch = get_next_token();
385385
if (ch == ']')
386386
{
387-
m_idx++;
387+
idx_++;
388388
return arr;
389389
}
390390

@@ -394,7 +394,7 @@ JObject Parser::parse_list()
394394
ch = get_next_token();
395395
if (ch == ']')
396396
{
397-
m_idx++;
397+
idx_++;
398398
break;
399399
}
400400

@@ -403,7 +403,7 @@ JObject Parser::parse_list()
403403
throw std::logic_error("expected ',' in parse list");
404404
}
405405
//跳过逗号
406-
m_idx++;
406+
idx_++;
407407
}
408408
return arr;
409409
}
@@ -415,11 +415,11 @@ JObject Parser::parse_list()
415415
JObject Parser::parse_dict()
416416
{
417417
JObject dict((dict_t()));//得到dict类型的JObject
418-
m_idx++;
418+
idx_++;
419419
char ch = get_next_token();
420420
if (ch == '}')
421421
{
422-
m_idx++;
422+
idx_++;
423423
return dict;
424424
}
425425
while (true)
@@ -431,22 +431,22 @@ JObject Parser::parse_dict()
431431
{
432432
throw std::logic_error("expected ':' in parse dict");
433433
}
434-
m_idx++;
434+
idx_++;
435435

436436
//解析value
437437
dict[key] = parse();
438438
ch = get_next_token();
439439
if (ch == '}')
440440
{
441-
m_idx++;
441+
idx_++;
442442
break; //解析完毕
443443
}
444444
if (ch != ',')//没有结束,此时必须为逗号
445445
{
446446
throw std::logic_error("expected ',' in parse dict");
447447
}
448448
//跳过逗号
449-
m_idx++;
449+
idx_++;
450450
}
451451
return dict;
452452
}

doc/html/annotated.html

+110
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2+
<html xmlns="http://www.w3.org/1999/xhtml">
3+
<head>
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.9.1"/>
7+
<meta name="viewport" content="width=device-width, initial-scale=1"/>
8+
<title>ejson4cpp: 类列表</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="navtree.css" rel="stylesheet" type="text/css"/>
13+
<script type="text/javascript" src="resize.js"></script>
14+
<script type="text/javascript" src="navtreedata.js"></script>
15+
<script type="text/javascript" src="navtree.js"></script>
16+
<link href="search/search.css" rel="stylesheet" type="text/css"/>
17+
<script type="text/javascript" src="search/searchdata.js"></script>
18+
<script type="text/javascript" src="search/search.js"></script>
19+
<link href="doxygen.css" rel="stylesheet" type="text/css" />
20+
</head>
21+
<body>
22+
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
23+
<div id="titlearea">
24+
<table cellspacing="0" cellpadding="0">
25+
<tbody>
26+
<tr style="height: 56px;">
27+
<td id="projectalign" style="padding-left: 0.5em;">
28+
<div id="projectname">ejson4cpp
29+
&#160;<span id="projectnumber">1.5.0</span>
30+
</div>
31+
<div id="projectbrief">a easy and efficiency json parser for cpp</div>
32+
</td>
33+
</tr>
34+
</tbody>
35+
</table>
36+
</div>
37+
<!-- end header part -->
38+
<!-- 制作者 Doxygen 1.9.1 -->
39+
<script type="text/javascript">
40+
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
41+
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
42+
/* @license-end */
43+
</script>
44+
<script type="text/javascript" src="menudata.js"></script>
45+
<script type="text/javascript" src="menu.js"></script>
46+
<script type="text/javascript">
47+
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
48+
$(function() {
49+
initMenu('',true,false,'search.php','搜索');
50+
$(document).ready(function() { init_search(); });
51+
});
52+
/* @license-end */</script>
53+
<div id="main-nav"></div>
54+
</div><!-- top -->
55+
<div id="side-nav" class="ui-resizable side-nav-resizable">
56+
<div id="nav-tree">
57+
<div id="nav-tree-contents">
58+
<div id="nav-sync" class="sync"></div>
59+
</div>
60+
</div>
61+
<div id="splitbar" style="-moz-user-select:none;"
62+
class="ui-resizable-handle">
63+
</div>
64+
</div>
65+
<script type="text/javascript">
66+
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
67+
$(document).ready(function(){initNavTree('annotated.html',''); initResizable(); });
68+
/* @license-end */
69+
</script>
70+
<div id="doc-content">
71+
<!-- window showing the filter options -->
72+
<div id="MSearchSelectWindow"
73+
onmouseover="return searchBox.OnSearchSelectShow()"
74+
onmouseout="return searchBox.OnSearchSelectHide()"
75+
onkeydown="return searchBox.OnSearchSelectKey(event)">
76+
</div>
77+
78+
<!-- iframe showing the search results (closed by default) -->
79+
<div id="MSearchResultsWindow">
80+
<iframe src="javascript:void(0)" frameborder="0"
81+
name="MSearchResults" id="MSearchResults">
82+
</iframe>
83+
</div>
84+
85+
<div class="header">
86+
<div class="headertitle">
87+
<div class="title">类列表</div> </div>
88+
</div><!--header-->
89+
<div class="contents">
90+
<div class="textblock">这里列出了所有类、结构、联合以及接口定义等,并附带简要说明:</div><div class="directory">
91+
<div class="levels">[详情级别 <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
92+
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceejson.html" target="_self">ejson</a></td><td class="desc"></td></tr>
93+
<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structejson_1_1number.html" target="_self">number</a></td><td class="desc"></td></tr>
94+
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_1_" class="arrow" onclick="toggleFolder('0_1_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classejson_1_1JObject.html" target="_self">JObject</a></td><td class="desc"></td></tr>
95+
<tr id="row_0_1_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structejson_1_1JObject_1_1ObjectRef.html" target="_self">ObjectRef</a></td><td class="desc">Helper for <a class="el" href="classejson_1_1JObject.html">JObject</a> to get_from and get_to </td></tr>
96+
<tr id="row_0_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structejson_1_1Parser.html" target="_self">Parser</a></td><td class="desc"></td></tr>
97+
<tr id="row_0_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structejson_1_1string__helper.html" target="_self">string_helper</a></td><td class="desc"></td></tr>
98+
<tr id="row_0_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classejson_1_1noncopyable.html" target="_self">noncopyable</a></td><td class="desc"></td></tr>
99+
</table>
100+
</div><!-- directory -->
101+
</div><!-- contents -->
102+
</div><!-- doc-content -->
103+
<!-- start footer part -->
104+
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
105+
<ul>
106+
<li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
107+
</ul>
108+
</div>
109+
</body>
110+
</html>

doc/html/annotated_dup.js

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
var annotated_dup =
2+
[
3+
[ "ejson", "namespaceejson.html", [
4+
[ "number", "structejson_1_1number.html", "structejson_1_1number" ],
5+
[ "JObject", "classejson_1_1JObject.html", "classejson_1_1JObject" ],
6+
[ "Parser", "structejson_1_1Parser.html", "structejson_1_1Parser" ],
7+
[ "string_helper", "structejson_1_1string__helper.html", "structejson_1_1string__helper" ],
8+
[ "noncopyable", "classejson_1_1noncopyable.html", "classejson_1_1noncopyable" ]
9+
] ]
10+
];

0 commit comments

Comments
 (0)