Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | use B::Assembler qw(assemble_fh); |
2 | use FileHandle; | |
3 | ||
4 | my ($filename, $fh, $out); | |
5 | ||
6 | if ($ARGV[0] eq "-d") { | |
7 | B::Assembler::debug(1); | |
8 | shift; | |
9 | } | |
10 | ||
11 | $out = \*STDOUT; | |
12 | ||
13 | if (@ARGV == 0) { | |
14 | $fh = \*STDIN; | |
15 | $filename = "-"; | |
16 | } elsif (@ARGV == 1) { | |
17 | $filename = $ARGV[0]; | |
18 | $fh = new FileHandle "<$filename"; | |
19 | } elsif (@ARGV == 2) { | |
20 | $filename = $ARGV[0]; | |
21 | $fh = new FileHandle "<$filename"; | |
22 | $out = new FileHandle ">$ARGV[1]"; | |
23 | } else { | |
24 | die "Usage: assemble [filename] [outfilename]\n"; | |
25 | } | |
26 | ||
27 | binmode $out; | |
28 | $SIG{__WARN__} = sub { warn "$filename:@_" }; | |
29 | $SIG{__DIE__} = sub { die "$filename: @_" }; | |
30 | assemble_fh($fh, sub { print $out @_ }); |