diff options
| author | Adrian Kummerlaender | 2017-04-19 22:20:17 +0200 | 
|---|---|---|
| committer | Adrian Kummerlaender | 2017-04-19 22:20:17 +0200 | 
| commit | fd8a28b1ee22993bf70b0f451b46ab0a631b0c17 (patch) | |
| tree | 25bbd58fbd24a4fa436f64bf5701fff61ac7693e /source | |
| parent | fa1bdcab3f371f1ec79621fbd890f3ddd8b5019c (diff) | |
| download | slang-fd8a28b1ee22993bf70b0f451b46ab0a631b0c17.tar slang-fd8a28b1ee22993bf70b0f451b46ab0a631b0c17.tar.gz slang-fd8a28b1ee22993bf70b0f451b46ab0a631b0c17.tar.bz2 slang-fd8a28b1ee22993bf70b0f451b46ab0a631b0c17.tar.lz slang-fd8a28b1ee22993bf70b0f451b46ab0a631b0c17.tar.xz slang-fd8a28b1ee22993bf70b0f451b46ab0a631b0c17.tar.zst slang-fd8a28b1ee22993bf70b0f451b46ab0a631b0c17.zip  | |
Automatically process files passed as arguments
Diffstat (limited to 'source')
| -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);  	}  }  | 
