#!/usr/bin/perl -w
# vim: syntax=perl
use strict;
use warnings;
my $PARROT = '../../parrot';
my $CARDINAL = 'cardinal.pbc';
my $CURRENT_TEST = slurp_current_test();
my $TRACE_ARGS = "";
my $DEBUG_FLAGS = "";
my $POST_PROC = "";
sub slurp_current_test
{
local $\;
open my $FH, "<.current_test";
<$FH>;
}
if ( @ARGV > 1 )
{
$CURRENT_TEST = $ARGV[1];
}
if ( @ARGV > 0 )
{
if ( $ARGV[0] eq "--help" )
{
help();
exit;
}
eval($ARGV[0]);
}
else
{
debug2();
}
sub help
{
print <<"EOF"
./rit command program.rb
Commands
trace :-> parrot -t
execute :-> executes the
debug executes cardinal.pbc w/ -d
gdb executes cardinal under gdb
EOF
}
sub trace { $TRACE_ARGS = "-t 4"; execute(); }
sub debug { $DEBUG_FLAGS = "-d"; execute(); }
sub debug2 { $DEBUG_FLAGS = "-a -o -i -s -e"; execute(); }
sub execute
{
execute_cmd( "make ; $PARROT $TRACE_ARGS $CARDINAL $DEBUG_FLAGS $CURRENT_TEST $POST_PROC" );
}
sub gdb
{
execute_cmd( "echo 'set args $CARDINAL -d $CURRENT_TEST\n run\n set print pretty \n' > .rit_gdb_cmds");
exec( "gdb -x .rit_gdb_cmds ../../parrot" );
}
sub execute_cmd
{
my ($cmd) = @_;
print $cmd . "\n";
print `$cmd`;
$$;
}
syntax highlighted by Code2HTML, v. 0.9.1