diff options
Diffstat (limited to 'gi/scfg/abc/Release/process_grammar.pl')
-rw-r--r-- | gi/scfg/abc/Release/process_grammar.pl | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gi/scfg/abc/Release/process_grammar.pl b/gi/scfg/abc/Release/process_grammar.pl new file mode 100644 index 00000000..f82a8e5a --- /dev/null +++ b/gi/scfg/abc/Release/process_grammar.pl @@ -0,0 +1,36 @@ +#!perl + +use warnings; +use strict; + +my $grammar_file = $ARGV[0]; + +my %nt_count; #maps nt--> count rules whose lhs is nt + +open(G, "<$grammar_file") or die "Can't open file $grammar_file"; + +while (<G>){ + + chomp(); + + s/\|\|\|.*//g; + s/\s//g; + + $nt_count{$_}++; +} + + +close (G); + +open(G, "<$grammar_file") or die "Can't open file $grammar_file"; + +while (<G>){ + + chomp(); + + (my $nt = $_) =~ s/\|\|\|.*//g; + $nt =~ s/\s//g; + + s/(.+\|\|\|.+\|\|\|.+\|\|\|).+/$1/g; + print $_ . " MinusLogP=" .(log($nt_count{$nt})) ."\n"; +} |