Close
#! /usr/bin/perl -w
sub usage {
die "-- Version 0.0.1, written by Julien BUTY <julien.buty\@gmail.com>\n";
}
sub do_report {
my (@args) = @_;
print ">>> File: `$args[1]'\n";
print "\t$args[2] line";
if ($args[2] > 1) { print "s"; }
print " have been parsed.\n";
print "\tThe token 'printf' was";
if ($args[1] == 0) { print " not" }
print " found";
if ($args[1] == 1) { print " $args[1] time.\n" }
elsif ($args[1] > 1) { print " $args[1] times.\n" }
else { print ".\n" }
if ($args[1] > 0) {
print "\tOn the ";
if ($args[1] == 1) { print "line: " }
else { print "lines: " }
$nb_token_const = $args[1];
while ($args[1] != 0) {
print "$tab[$nb_token_const+1-$args[1]]";
if ($args[1] == 1) { print "."; }
else { print ", " }
$args[1]--;
}
print "\n";
}
}
my $nb_token = 0;
my $line;
my $nb_line = 0;
open (SOURCE, $ARGV[1]) or ( print "Impossible to load \"$ARGV[1]\": $!\n" and usage() ) ;
my $instruction = $ARGV[0];
for $line (<SOURCE>) {
$nb_line++;
if ( $line =~ /$instruction[ ]{0,}\([ ]{0,}["']{1}/) {
$nb_token++;
$tab[$nb_token] = $nb_line;
}
}
close SOURCE;
do_report($ARGV[1],$nb_token,$nb_line);