summaryrefslogtreecommitdiff
path: root/frontends/ast
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2013-11-18 19:54:36 +0100
committerClifford Wolf <clifford@clifford.at>2013-11-18 19:54:36 +0100
commit79910a55473a697f4c4131151b15f42dc5337148 (patch)
treed14bf341565bb6e4c6c5529794b94ad7af6548c4 /frontends/ast
parent2a25e3bca351ad85b328ed808f4efdcf45f6b02c (diff)
Added dumping of attributes in AST frontend
Diffstat (limited to 'frontends/ast')
-rw-r--r--frontends/ast/ast.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/frontends/ast/ast.cc b/frontends/ast/ast.cc
index 115a3933..887ae85c 100644
--- a/frontends/ast/ast.cc
+++ b/frontends/ast/ast.cc
@@ -263,6 +263,11 @@ void AstNode::dumpAst(FILE *f, std::string indent)
fprintf(f, " int=%u", (int)integer);
fprintf(f, "\n");
+ for (auto &it : attributes) {
+ fprintf(f, "%s ATTR %s:\n", indent.c_str(), it.first.c_str());
+ it.second->dumpAst(f, indent + " ");
+ }
+
for (size_t i = 0; i < children.size(); i++)
children[i]->dumpAst(f, indent + " ");
}
@@ -296,6 +301,12 @@ void AstNode::dumpVlog(FILE *f, std::string indent)
return;
}
+ for (auto &it : attributes) {
+ fprintf(f, "%s" "(* %s = ", indent.c_str(), id2vl(it.first).c_str());
+ it.second->dumpVlog(f, "");
+ fprintf(f, " *)%s", indent.empty() ? "" : "\n");
+ }
+
switch (type)
{
case AST_MODULE: