Commit | Line | Data |
a798dbf2 |
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 @_ }); |