Fixed problem with file name not being sent to the parser

This commit is contained in:
Hackerpilot 2013-10-11 00:52:24 -07:00
parent 982510c50c
commit 7f9c0a4fb6
1 changed files with 16 additions and 0 deletions

16
main.d
View File

@ -134,12 +134,20 @@ int main(string[] args)
{ {
auto tokens = byToken(usingStdin ? readStdin() : readFile(args[1]), auto tokens = byToken(usingStdin ? readStdin() : readFile(args[1]),
config); config);
if (usingStdin)
config.fileName = "stdin";
else
config.fileName = args[1];
parseModule(tokens.array(), config.fileName); parseModule(tokens.array(), config.fileName);
} }
else if (imports) else if (imports)
{ {
auto tokens = byToken(usingStdin ? readStdin() : readFile(args[1]), auto tokens = byToken(usingStdin ? readStdin() : readFile(args[1]),
config); config);
if (usingStdin)
config.fileName = "stdin";
else
config.fileName = args[1];
auto mod = parseModule(tokens.array(), config.fileName); auto mod = parseModule(tokens.array(), config.fileName);
auto visitor = new ImportPrinter; auto visitor = new ImportPrinter;
visitor.visit(mod); visitor.visit(mod);
@ -148,6 +156,10 @@ int main(string[] args)
{ {
auto tokens = byToken(usingStdin ? readStdin() : readFile(args[1]), auto tokens = byToken(usingStdin ? readStdin() : readFile(args[1]),
config); config);
if (usingStdin)
config.fileName = "stdin";
else
config.fileName = args[1];
auto mod = parseModule(tokens.array(), config.fileName); auto mod = parseModule(tokens.array(), config.fileName);
auto printer = new XMLPrinter; auto printer = new XMLPrinter;
printer.output = stdout; printer.output = stdout;
@ -157,6 +169,10 @@ int main(string[] args)
{ {
auto tokens = byToken(usingStdin ? readStdin() : readFile(args[1]), auto tokens = byToken(usingStdin ? readStdin() : readFile(args[1]),
config); config);
if (usingStdin)
config.fileName = "stdin";
else
config.fileName = args[1];
auto mod = parseModule(tokens.array(), config.fileName); auto mod = parseModule(tokens.array(), config.fileName);
auto outliner = new Outliner(stdout); auto outliner = new Outliner(stdout);
outliner.visit(mod); outliner.visit(mod);