The Gaudi Framework  v30r3 (a5ef0a68)
Gaudi::Parsers::Node Struct Referencefinal

#include <src/JobOptionsSvc/Node.h>

Collaboration diagram for Gaudi::Parsers::Node:

Public Types

enum  NodeType {
  kRoot, kInclude, kIdentifier, kProperty,
  kOperation, kValue, kAssign, kEqual,
  kPlusEqual, kMinusEqual, kVector, kMap,
  kPair, kSimple, kString, kReal,
  kBool, kUnits, kUnit, kCondition,
  kIfdef, kIfndef, kElse, kPrintOptions,
  kPrintOn, kPrintOff, kShell, kPrintTree,
  kDumpFile, kPropertyRef, number_of_node_types
}
 

Public Member Functions

 Node ()=default
 
std::string name () const
 
std::string ToString (int indent=0) const
 

Public Attributes

NodeType type = kRoot
 
std::string value
 
std::vector< Nodechildren
 
Position position
 

Detailed Description

Definition at line 27 of file Node.h.

Member Enumeration Documentation

enum Gaudi::Parsers::Node::NodeType
Enumerator
kRoot 
kInclude 
kIdentifier 
kProperty 
kOperation 
kValue 
kAssign 
kEqual 
kPlusEqual 
kMinusEqual 
kVector 
kMap 
kPair 
kSimple 
kString 
kReal 
kBool 
kUnits 
kUnit 
kCondition 
kIfdef 
kIfndef 
kElse 
kPrintOptions 
kPrintOn 
kPrintOff 
kShell 
kPrintTree 
kDumpFile 
kPropertyRef 
number_of_node_types 

Definition at line 28 of file Node.h.

28  {
29  kRoot,
30  kInclude,
32  kProperty,
33  kOperation,
34  kValue,
35  kAssign,
36  kEqual,
37  kPlusEqual,
39  kVector,
40  kMap,
41  kPair,
42  kSimple,
43  kString,
44  kReal,
45  kBool,
46  kUnits,
47  kUnit,
48  kCondition,
49  kIfdef,
50  kIfndef,
51  kElse,
53  kPrintOn,
54  kPrintOff,
55  kShell,
56  kPrintTree,
57  kDumpFile,
60  };

Constructor & Destructor Documentation

Gaudi::Parsers::Node::Node ( )
default

Member Function Documentation

std::string Gaudi::Parsers::Node::name ( ) const

Definition at line 48 of file Node.cpp.

49 {
50  static const auto names = init_names();
51  return names[type];
52 }
std::vector< std::string > init_names()
Definition: Node.cpp:11
NodeType type
Definition: Node.h:61
std::string Gaudi::Parsers::Node::ToString ( int  indent = 0) const

Definition at line 55 of file Node.cpp.

56 {
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 }
T empty(T...args)
unsigned column() const
Definition: Position.h:25
T to_string(T...args)
T end(T...args)
std::string name() const
Definition: Node.cpp:48
STL class.
unsigned line() const
Definition: Position.h:24
std::vector< Node > children
Definition: Node.h:63
Position position
Definition: Node.h:64
T begin(T...args)
string s
Definition: gaudirun.py:253
T accumulate(T...args)
std::string value
Definition: Node.h:62

Member Data Documentation

std::vector<Node> Gaudi::Parsers::Node::children

Definition at line 63 of file Node.h.

Position Gaudi::Parsers::Node::position

Definition at line 64 of file Node.h.

NodeType Gaudi::Parsers::Node::type = kRoot

Definition at line 61 of file Node.h.

std::string Gaudi::Parsers::Node::value

Definition at line 62 of file Node.h.


The documentation for this struct was generated from the following files: