BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
IndentedConfigParser.cxx
Go to the documentation of this file.
1
2
#include "
IndentedConfigParser.h
"
3
// STL
4
#include <regex>
5
// FairRoot
6
#include <FairLogger.h>
7
8
namespace
IndentedConfigParser
9
{
10
11
void
PrintConfig
(
const
Node
&
n
,
int
indent)
12
{
13
LOG(info) << std::string(indent,
' '
) <<
" value : "
<<
n
.value <<
"\n"
;
14
for
(
const
auto
& p :
n
.children)
15
PrintConfig
(p, indent + 4);
16
}
17
18
void
ParseIStringStream
(istringstream& iss,
Node
& root)
19
{
20
std::regex rempty(
"\\s*\n*"
);
21
string
line;
22
vector<Node*> stack{&root};
23
while
(std::getline(iss, line)) {
24
if
(line.empty())
25
break
;
26
if
(regex_match(line, rempty))
27
break
;
28
size_t
level = 0;
29
while
(level < line.size() && line[level] ==
'\t'
)
30
++level;
31
string
text = line.substr(level);
32
if
((level + 1) > stack.size()) {
33
LOGF(error,
"Parsing error! Level gap!"
);
34
break
;
35
}
36
stack.resize(level + 1);
37
Node
& node = stack.back()->
children
.emplace_back(
Node
{.value = text});
38
node.
value
= text;
39
stack.push_back(&node);
40
}
41
// PrintConfig(root);
42
}
43
44
void
ParseString
(
string
& str,
Node
& root)
45
{
46
istringstream iss(str);
47
ParseIStringStream
(iss, root);
48
}
49
50
}
// namespace IndentedConfigParser
IndentedConfigParser.h
n
*brief user defined string literal for JSON values *sa std::size_t n
Definition
json.hpp:20362
IndentedConfigParser
Definition
IndentedConfigParser.cxx:9
IndentedConfigParser::PrintConfig
void PrintConfig(const Node &n, int indent)
Definition
IndentedConfigParser.cxx:11
IndentedConfigParser::ParseIStringStream
void ParseIStringStream(istringstream &iss, Node &root)
Definition
IndentedConfigParser.cxx:18
IndentedConfigParser::ParseString
void ParseString(string &str, Node &root)
Definition
IndentedConfigParser.cxx:44
IndentedConfigParser::Node
Definition
IndentedConfigParser.h:16
IndentedConfigParser::Node::value
string value
Definition
IndentedConfigParser.h:18
IndentedConfigParser::Node::children
vector< Node > children
Definition
IndentedConfigParser.h:17
decoder
IndentedConfigParser.cxx
Generated on
for BmnRoot by
1.17.0