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