Added dumping of attributes in AST frontend
authorClifford Wolf <clifford@clifford.at>
Mon, 18 Nov 2013 18:54:36 +0000 (19:54 +0100)
committerClifford Wolf <clifford@clifford.at>
Mon, 18 Nov 2013 18:54:36 +0000 (19:54 +0100)
frontends/ast/ast.cc

index 115a3933397ee32a0a224eda71782391123a03f8..887ae85c393df70fa49f90bde42ecef7d33a0ee2 100644 (file)
@@ -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: