#!/usr/bin/env perl6

use v6.c;
use App::nm2perl6;
use App::nm2perl6::gnu;

sub MAIN( Str $input-file?,   #= Input file (default STDIN)
	  Str $output-file?,  #= Output file (default STDOUT)
	  Str $module-name?,  #= Module name (suggested for multiple classes)
	  Str $compiler-name? #= Chosen based on operating system
	) {
	my $nm;
	given $*KERNEL.^name {
		default {
			$nm = App::nm2perl6::gnu.new(
				:output-filename( $output-file ),
				:module-name( $module-name )
			);
		}
	}

	my $text = $input-file
		?? $input-file.IO.slurp
		!! join( "\n", $*ARGFILES.lines );

	$nm.process-lines( $text );
	say $nm.to-perl6;
}
