#!/usr/local/bin/perl

open(GRA, "/afs/cs.cmu.edu/project/avenue-1/Avenue/Transfer/zhen_gra.trf") or die $!;
while ($line = <GRA>) {
    next if $line =~ m/^\s*;/;
    if ($line =~ m/\{(\w+,\d+)\}/) {
	push @rules, uc($1);
    }
}
close(GRA);

@rules = sort @rules;

#$lattice = "/tmp/june02-test.gb-newgra.ltc";
$lattice = "/usr0/eepeter/Chinese/smalltrack/june02-test.gb-newgra.ntrace.gz";

if ($lattice =~ m/\.gz$/) {
    open(LTC, "gunzip -c $lattice |") or die $!;
} else {
    open(LTC, $lattice) or die $!;
}

while ($line = <LTC>) {
    (@ruleids) = ($line =~ m/\((\w+,\d+) (?=\()/g);
    foreach $ruleid (@ruleids) {
	$rulecount{uc($ruleid)}++;
    }
}

#foreach $rule (sort keys %rulecount) {
#    print "$rule\t" . $rulecount{$rule} . "\n";
#}

foreach $rule (@rules) {
    if (!defined($rulecount{$rule})) {
	$rulecount{$rule} = 0;
    } else {
	$nonempty++;
    }
    print "$rule\t" . $rulecount{$rule} . "\n";
}

print "$nonempty rules applied out of " . scalar(@rules) . " " . $nonempty/scalar(@rules) . "\n";
