The Gaudi Framework
master (82fdf313)
Loading...
Searching...
No Matches
Node.cpp
Go to the documentation of this file.
1
/***********************************************************************************\
2
* (c) Copyright 1998-2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3
* *
4
* This software is distributed under the terms of the Apache version 2 licence, *
5
* copied verbatim in the file "LICENSE". *
6
* *
7
* In applying this licence, CERN does not waive the privileges and immunities *
8
* granted to it by virtue of its status as an Intergovernmental Organization *
9
* or submit itself to any jurisdiction. *
10
\***********************************************************************************/
11
#include "
Node.h
"
12
#include <numeric>
13
14
namespace
gp
=
Gaudi::Parsers
;
15
16
std::vector<std::string>
init_names
() {
17
std::vector<std::string> n(
gp::Node::NodeType::number_of_node_types
);
18
n[
gp::Node::NodeType::kRoot
] =
"root"
;
19
n[
gp::Node::NodeType::kInclude
] =
"include"
;
20
n[
gp::Node::NodeType::kIdentifier
] =
"identifier"
;
21
n[
gp::Node::NodeType::kProperty
] =
"property"
;
22
n[
gp::Node::NodeType::kOperation
] =
"operation"
;
23
n[
gp::Node::NodeType::kValue
] =
"value"
;
24
n[
gp::Node::NodeType::kAssign
] =
"assign"
;
25
n[
gp::Node::NodeType::kEqual
] =
"equal"
;
26
n[
gp::Node::NodeType::kPlusEqual
] =
"plus_equal"
;
27
n[
gp::Node::NodeType::kMinusEqual
] =
"minus_equal"
;
28
n[
gp::Node::NodeType::kVector
] =
"vector"
;
29
n[
gp::Node::NodeType::kMap
] =
"map"
;
30
n[
gp::Node::NodeType::kPair
] =
"pair"
;
31
n[
gp::Node::NodeType::kSimple
] =
"simple"
;
32
n[
gp::Node::NodeType::kString
] =
"string"
;
33
n[
gp::Node::NodeType::kReal
] =
"real"
;
34
n[
gp::Node::NodeType::kBool
] =
"bool"
;
35
n[
gp::Node::NodeType::kUnits
] =
"units"
;
36
n[
gp::Node::NodeType::kUnit
] =
"unit"
;
37
n[
gp::Node::NodeType::kCondition
] =
"condition"
;
38
n[
gp::Node::NodeType::kIfdef
] =
"ifdef"
;
39
n[
gp::Node::NodeType::kIfndef
] =
"ifndef"
;
40
n[
gp::Node::NodeType::kElse
] =
"else"
;
41
n[
gp::Node::NodeType::kPrintOptions
] =
"print_options"
;
42
n[
gp::Node::NodeType::kPrintOn
] =
"print_on"
;
43
n[
gp::Node::NodeType::kPrintOff
] =
"print_off"
;
44
n[
gp::Node::NodeType::kShell
] =
"shell"
;
45
n[
gp::Node::NodeType::kPrintTree
] =
"print_tree"
;
46
n[
gp::Node::NodeType::kDumpFile
] =
"dump_file"
;
47
n[
gp::Node::NodeType::kPropertyRef
] =
"property_ref"
;
48
return
n;
49
}
50
51
std::string
gp::Node::name
()
const
{
52
static
const
auto
names =
init_names
();
53
return
names[
type
];
54
}
55
56
std::string
gp::Node::ToString
(
int
indent )
const
{
57
58
std::string result( indent,
' '
);
59
result +=
"<"
+
name
();
60
if
( !
value
.empty() ) result +=
" value=\""
+
value
+
"\""
;
61
if
(
position
.line() != 0 ) result +=
" line=\""
+ std::to_string(
position
.line() ) +
"\""
;
62
if
(
position
.column() != 0 ) result +=
" column=\""
+ std::to_string(
position
.column() ) +
"\""
;
63
if
(
children
.empty() ) {
64
result +=
"/>\n"
;
65
}
else
{
66
result = std::accumulate( std::begin(
children
), std::end(
children
), result +
">\n"
,
67
[&]( std::string s,
const
gp::Node
& node ) {
return
s + node.
ToString
( indent + 2 ); } )
68
.append(
' '
, indent ) +
69
"</"
+
name
() +
">\n"
;
70
}
71
return
result;
72
}
init_names
std::vector< std::string > init_names()
Definition
Node.cpp:16
Node.h
Gaudi::Parsers
Definition
DODBasicMapper.cpp:17
Gaudi::Parsers::Node
Definition
Node.h:23
Gaudi::Parsers::Node::kString
@ kString
Definition
Node.h:39
Gaudi::Parsers::Node::kRoot
@ kRoot
Definition
Node.h:25
Gaudi::Parsers::Node::kVector
@ kVector
Definition
Node.h:35
Gaudi::Parsers::Node::kPrintOff
@ kPrintOff
Definition
Node.h:50
Gaudi::Parsers::Node::kPlusEqual
@ kPlusEqual
Definition
Node.h:33
Gaudi::Parsers::Node::kPrintTree
@ kPrintTree
Definition
Node.h:52
Gaudi::Parsers::Node::kUnit
@ kUnit
Definition
Node.h:43
Gaudi::Parsers::Node::kPrintOptions
@ kPrintOptions
Definition
Node.h:48
Gaudi::Parsers::Node::kDumpFile
@ kDumpFile
Definition
Node.h:53
Gaudi::Parsers::Node::kOperation
@ kOperation
Definition
Node.h:29
Gaudi::Parsers::Node::kSimple
@ kSimple
Definition
Node.h:38
Gaudi::Parsers::Node::kPropertyRef
@ kPropertyRef
Definition
Node.h:54
Gaudi::Parsers::Node::kEqual
@ kEqual
Definition
Node.h:32
Gaudi::Parsers::Node::kElse
@ kElse
Definition
Node.h:47
Gaudi::Parsers::Node::kShell
@ kShell
Definition
Node.h:51
Gaudi::Parsers::Node::kMap
@ kMap
Definition
Node.h:36
Gaudi::Parsers::Node::kPair
@ kPair
Definition
Node.h:37
Gaudi::Parsers::Node::kMinusEqual
@ kMinusEqual
Definition
Node.h:34
Gaudi::Parsers::Node::kIfndef
@ kIfndef
Definition
Node.h:46
Gaudi::Parsers::Node::kUnits
@ kUnits
Definition
Node.h:42
Gaudi::Parsers::Node::kCondition
@ kCondition
Definition
Node.h:44
Gaudi::Parsers::Node::kPrintOn
@ kPrintOn
Definition
Node.h:49
Gaudi::Parsers::Node::kIdentifier
@ kIdentifier
Definition
Node.h:27
Gaudi::Parsers::Node::kIfdef
@ kIfdef
Definition
Node.h:45
Gaudi::Parsers::Node::kValue
@ kValue
Definition
Node.h:30
Gaudi::Parsers::Node::kReal
@ kReal
Definition
Node.h:40
Gaudi::Parsers::Node::kInclude
@ kInclude
Definition
Node.h:26
Gaudi::Parsers::Node::kProperty
@ kProperty
Definition
Node.h:28
Gaudi::Parsers::Node::number_of_node_types
@ number_of_node_types
Definition
Node.h:55
Gaudi::Parsers::Node::kBool
@ kBool
Definition
Node.h:41
Gaudi::Parsers::Node::kAssign
@ kAssign
Definition
Node.h:31
Gaudi::Parsers::Node::value
std::string value
Definition
Node.h:58
Gaudi::Parsers::Node::position
Position position
Definition
Node.h:60
Gaudi::Parsers::Node::children
std::vector< Node > children
Definition
Node.h:59
Gaudi::Parsers::Node::type
NodeType type
Definition
Node.h:57
Gaudi::Parsers::Node::ToString
std::string ToString(int indent=0) const
Definition
Node.cpp:56
Gaudi::Parsers::Node::name
std::string name() const
Definition
Node.cpp:51
GaudiCoreSvc
src
JobOptionsSvc
Node.cpp
Generated on Thu Oct 2 2025 15:31:10 for The Gaudi Framework by
1.13.1