From read_graphviz_new.hpp source:
struct edge_info { node_and_port source; node_and_port target; properties props; };
Where node_and_port as follows:
struct node_and_port { node_name name; std::string angle;
I think (but did not check) that these results are available if you call the parser directly using:
void parse_graphviz_from_string(const std::string& str, parser_result& result, bool want_directed);
in the boost::read_graphviz_detail . It may also be available in dynamic_property_map if you use read_graphviz directly; it internally refers to read_graphviz_new .
Note: In graphviz.hpp , one of two graphviz parsers based on #ifdef :
#ifdef BOOST_GRAPH_USE_SPIRIT_PARSER return read_graphviz_spirit(data.begin(), data.end(), graph, dp, node_id); #else
If I read this correctly, then a parser without a spirit is the one you want; based on the spirit, it looks like it is ignoring ports.
In any case, this is simply based on a quick look at the source of boost v. 1.44; for me, the interest code lives in /usr/include/boost/graph/detail/read_graphviz_new.hpp . I have not tested this, but it looks like all the plumbing is there.
source share