#!/usr/local/bin/perl

# Original average
@grammars = ("/afs/cs.cmu.edu/project/avenue-1/Avenue/Transfer/Hebrew/heb-eng.man.25may04-scored.trf",
	     "/usr0/eepeter/Hebrew/heb-eng.man.25may04-precision_score.trf",  
	     "/usr0/eepeter/decoder/heb-eng.man.25may04-scored3.trf");

@sorted = ("/afs/cs.cmu.edu/project/avenue-1/Avenue/Transfer/Hebrew/scoredgrammars/heb-eng.man.25may04-avgscore.trf",
	   "/afs/cs.cmu.edu/project/avenue-1/Avenue/Transfer/Hebrew/scoredgrammars/heb-eng.man.25may04-precscore.trf",
	   
	   "/afs/cs.cmu.edu/project/avenue-1/Avenue/Transfer/Hebrew/scoredgrammars/heb-eng.man.25may04-new_avgscore.trf");

for ($i = 0; $i < scalar(@grammars); $i++) {
    $ruletext = "";
    open(GRA, $grammars[$i]) or die $!;
    while ($line = <GRA>) {
	next if $line =~ m/^\s*\;/;
	$line =~ s/\r//g;
	$ruletext .= $line;
    }
    close(GRA);
    
    print $ruletext if $i == 1;;
    @rules = ();
    (@rules) = ($ruletext =~ m/(\{.*?\n\)\n)/sg);
    
    @sortedrules = ();
    @sortedrules = sort byscore @rules;
 
    open(SORT, "> $sorted[$i]") or die $!;
    foreach $rule (@sortedrules) {
	print SORT "$rule\n";
    }
    close(SORT);
}

sub byscore {
    my($ascore) = ($a =~ m/\*score\*\s+(\d(\.\d+)?)/);
    my($bscore) = ($b =~ m/\*score\*\s+(\d(\.\d+)?)/);
    $bscore <=> $ascore;
}
