diff options
| -rw-r--r-- | source/app.d | 23 | 
1 files changed, 17 insertions, 6 deletions
| diff --git a/source/app.d b/source/app.d index 4e7b546..dd7be6d 100644 --- a/source/app.d +++ b/source/app.d @@ -1,12 +1,23 @@ -import std.string : split; -import std.stdio  : stdin, readln, writeln; +import std.string    : split; +import std.range     : dropOne; +import std.algorithm : map, each; +import std.stdio     : stdin, File, lines;  static import machine; -void main() { +void process(ref File file) { +	foreach ( string line; lines(file) ) { +		line.split.each!(machine.process); +	} +} + +void main(string[] args) { +	args +		.dropOne +		.map!(File) +		.each!((File file) => file.process); +  	while ( !stdin.eof ) { -		foreach ( token; stdin.readln.split ) { -			machine.process(token); -		} +		stdin.readln.split.each!(machine.process);  	}  } | 
