read_graphviz_new.hpp
ソースから:
struct edge_info {
node_and_port source;
node_and_port target;
properties props;
};
node_and_port
このように見える場所:
struct node_and_port {
node_name name;
std::string angle; // Or empty if no angle
std::vector<std::string> location; // Up to two identifiers
// ...
}
以下を使用してパーサーを直接呼び出すと、これらの結果が利用可能になると思います(ただし検証はしていません)。
void parse_graphviz_from_string(const std::string& str, parser_result& result, bool want_directed);
名前空間でboost::read_graphviz_detail
。直接dynamic_property_map
使用する場合にも利用できる場合があります。read_graphviz
内部的にはを参照しread_graphviz_new
ます。
注:では、 :graphviz.hpp
に基づいて2つのgraphvizパーサーのいずれかが選択されます。#ifdef
#ifdef BOOST_GRAPH_USE_SPIRIT_PARSER
return read_graphviz_spirit(data.begin(), data.end(), graph, dp, node_id);
#else // Non-Spirit parser
return read_graphviz_new(data,graph,dp,node_id);
#endif
私がこれを正しく読んでいるなら、非精神パーサーはあなたが望むものです。スピリットベースのものは、ポートを無視しているように見えます。
とにかく、これはブーストv。1.44のソースをざっと見ただけに基づいています。私にとって、関心のあるコードはに住んでい/usr/include/boost/graph/detail/read_graphviz_new.hpp
ます。私はこれをテストしていませんが、すべての配管がそこにあるようです。