4 #ifndef ASTDOTGENERATION_H
5 #define ASTDOTGENERATION_H
8 #include "DOTGeneration.h"
9 #include "roseInternal.h"
15 void generate(
SgProject* node, traversalType tt=TOPDOWNBOTTOMUP, std::string filenamePostfix=
"");
16 void generate(
SgNode* node, std::string filename, traversalType tt = TOPDOWNBOTTOMUP,std::string filenamePostfix =
"");
17 void generateInputFiles(
SgProject* node, traversalType tt=TOPDOWNBOTTOMUP, std::string filenamePostfix=
"");
18 void generateWithinFile(
SgFile* node, traversalType tt=TOPDOWNBOTTOMUP, std::string filenamePostfix=
"");
21 void addAdditionalNodesAndEdges(
SgNode* node);
27 std::string additionalNodeInfo(
SgNode* node);
30 std::string additionalNodeOptions(
SgNode* node);
33 std::string additionalEdgeInfo(
SgNode* from,
SgNode* to, std::string label);
36 std::string additionalEdgeOptions(
SgNode* from,
SgNode* to, std::string label);
40 bool commentOutNodeInGraph(
SgNode* node);
44 namespace AstDOTGenerationExtended_Defaults
50 std::string operator()(
SgNode* node);
53 std::string operator()(
SgNode* node)
55 std::ostringstream ss;
60 ss << n->get_qualified_name().str() <<
"\\n";
65 ss << n->get_qualified_name().str() <<
"\\n";
70 ss << n->get_qualified_name().str() <<
"\\n";
83 ss << n->get_qualified_name().str() <<
"\\n";
93 ss << n->get_name().str() <<
"\\n";
105 std::ostringstream ss;
117 std::ostringstream ss;
121 ss << c.size() <<
"\\n";
131 std::string operator()(
SgNode* node);
134 std::string operator()(
SgNode* node)
136 std::ostringstream ss;
141 ss << (n->isLValue() ?
"L-Value" :
"!L-Value") <<
"\\n";
153 std::string operator()(
SgNode* node);
156 std::string operator()(
SgNode* node)
158 std::ostringstream ss;
162 ss << n->get_type()->unparseToString() <<
"\\n";
177 return std::string(
"\\n") + cs(node) +
name(node) +
add(node);
186 return std::string();
194 return std::string();
202 return std::string();
223 AstDOTGenerationExtended(ExtraNodeInfo_t eni_ = ExtraNodeInfo_t(), ExtraNodeOptions_t eno_ = ExtraNodeOptions_t(), ExtraEdgeInfo_t eei_ = ExtraEdgeInfo_t(), ExtraEdgeOptions_t eeo_ = ExtraEdgeOptions_t())