#!/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
	  Bool $is-verbose?    #= Verbose output
	) {
	my $nm;
	given $*KERNEL.^name {
		default {
			$nm = App::nm2perl6::gnu.new(
				:output-filename( $output-file ),
				:module-name( $module-name ),
				:verbose( $is-verbose )
			);
		}
	}

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

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