This commit is contained in:
Hackerpilot 2014-03-19 14:43:02 -07:00
parent 77d12c769e
commit 335c445912
2 changed files with 14 additions and 3 deletions

View File

@ -7,14 +7,19 @@ module imports;
import stdx.d.ast;
import std.stdio;
import std.container;
class ImportPrinter : ASTVisitor
{
this()
{
imports = new RedBlackTree!string;
}
override void visit(const SingleImport singleImport)
{
ignore = false;
singleImport.accept(this);
writeln();
ignore = true;
}
@ -22,15 +27,19 @@ class ImportPrinter : ASTVisitor
{
if (ignore) return;
bool first = true;
string s;
foreach (ident; identifierChain.identifiers)
{
if (!first)
write(".");
write(ident.text);
s ~= ".";
s ~= ident.text;
first = false;
}
imports.insert(s);
}
RedBlackTree!string imports;
alias visit = ASTVisitor.visit;
bool ignore = true;

2
main.d
View File

@ -175,6 +175,8 @@ int main(string[] args)
{
auto visitor = new ImportPrinter;
visitor.visit(mod);
foreach (imp; visitor.imports[])
writeln(imp);
}
else if (ast)
{