13 n[gp::Node::NodeType::kRoot] =
"root";
14 n[gp::Node::NodeType::kInclude] =
"include";
15 n[gp::Node::NodeType::kIdentifier] =
"identifier";
16 n[gp::Node::NodeType::kProperty] =
"property";
17 n[gp::Node::NodeType::kOperation] =
"operation";
18 n[gp::Node::NodeType::kValue] =
"value";
19 n[gp::Node::NodeType::kAssign] =
"assign";
20 n[gp::Node::NodeType::kEqual] =
"equal";
21 n[gp::Node::NodeType::kPlusEqual] =
"plus_equal";
22 n[gp::Node::NodeType::kMinusEqual] =
"minus_equal";
23 n[gp::Node::NodeType::kVector] =
"vector";
24 n[gp::Node::NodeType::kMap] =
"map";
25 n[gp::Node::NodeType::kPair] =
"pair";
26 n[gp::Node::NodeType::kSimple] =
"simple";
27 n[gp::Node::NodeType::kString] =
"string";
28 n[gp::Node::NodeType::kReal] =
"real";
29 n[gp::Node::NodeType::kBool] =
"bool";
30 n[gp::Node::NodeType::kUnits] =
"units";
31 n[gp::Node::NodeType::kUnit] =
"unit";
32 n[gp::Node::NodeType::kCondition] =
"condition";
33 n[gp::Node::NodeType::kIfdef] =
"ifdef";
34 n[gp::Node::NodeType::kIfndef] =
"ifndef";
35 n[gp::Node::NodeType::kElse] =
"else";
36 n[gp::Node::NodeType::kPrintOptions] =
"print_options";
37 n[gp::Node::NodeType::kPrintOn] =
"print_on";
38 n[gp::Node::NodeType::kPrintOff] =
"print_off";
39 n[gp::Node::NodeType::kShell] =
"shell";
40 n[gp::Node::NodeType::kPrintTree] =
"print_tree";
41 n[gp::Node::NodeType::kDumpFile] =
"dump_file";
42 n[gp::Node::NodeType::kPropertyRef] =
"property_ref";
56 result +=
"<" +
name();
57 if ( !value.empty() ) result +=
" value=\"" + value +
"\"";
58 if ( position.line() != 0 ) result +=
" line=\"" +
std::to_string( position.line() ) +
"\"";
59 if ( position.column() != 0 ) result +=
" column=\"" +
std::to_string( position.column() ) +
"\"";
60 if ( children.empty() ) {
64 [&](
std::string s,
const gp::Node& node ) {
return s + node.ToString( indent + 2 ); } )
65 .append(
' ', indent ) +
66 "</" +
name() +
">\n";
std::vector< std::string > init_names()