add --inplace option

This commit is contained in:
Andreas Zwinkau 2015-01-13 22:15:32 +01:00
parent 9c8abe55fa
commit 6e9448bdbb
1 changed files with 8 additions and 1 deletions

View File

@ -33,9 +33,14 @@ import std.d.parser;
import std.d.formatter; import std.d.formatter;
import std.d.ast; import std.d.ast;
import std.array; import std.array;
import std.getopt;
int main(string[] args) int main(string[] args)
{ {
bool inplace = false;
getopt(args,
"inplace", &inplace);
File output = stdout;
ubyte[] buffer; ubyte[] buffer;
if (args.length == 1) if (args.length == 1)
{ {
@ -55,6 +60,8 @@ int main(string[] args)
File f = File(args[1]); File f = File(args[1]);
buffer = new ubyte[](f.size); buffer = new ubyte[](f.size);
f.rawRead(buffer); f.rawRead(buffer);
if (inplace)
output = File(args[1], "w");
} }
LexerConfig config; LexerConfig config;
config.stringBehavior = StringBehavior.source; config.stringBehavior = StringBehavior.source;
@ -71,7 +78,7 @@ int main(string[] args)
visitor.visit(mod); visitor.visit(mod);
astInformation.cleanup(); astInformation.cleanup();
auto tokens = byToken(buffer, config, &cache).array(); auto tokens = byToken(buffer, config, &cache).array();
auto tokenFormatter = TokenFormatter(tokens, stdout, &astInformation, auto tokenFormatter = TokenFormatter(tokens, output, &astInformation,
&formatterConfig); &formatterConfig);
tokenFormatter.format(); tokenFormatter.format();
return 0; return 0;