summaryrefslogtreecommitdiff
path: root/gi/scfg/abc/Release/process_grammar.pl
diff options
context:
space:
mode:
Diffstat (limited to 'gi/scfg/abc/Release/process_grammar.pl')
-rw-r--r--gi/scfg/abc/Release/process_grammar.pl36
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";
+}