#!/usr/local/bin/perl

## Remove duplicates and put in scores

use strict;
use warnings;

my $fileName = shift;
my %lexicon = ();
my %srcCounts = ();
open(IFILE, $fileName) or die("Couldn't open the file $fileName\n");
while(<IFILE>){
	chomp;
	/^{(.+)}$/;
	my $key = $1;
	my $line = <IFILE>;
	chomp $line;
	$line =~ /^(.+)::(.+) \|: \[\"(.+)\"\] -> \[\"(.+)\"\]$/;
	if(defined $lexicon{$key}){
		if(${$lexicon{$key}}{'eng'} eq $4){
			print "Duplicate $key\n";
		}
		else{
			$key = 'D'.$key;
		}
	}

	${$lexicon{$key}}{'pos'} = $1;
	${$lexicon{$key}}{'urd'} = $3;
	${$lexicon{$key}}{'eng'} = $4;
	$srcCounts{$3} += 2;
	<IFILE>;<IFILE>;
	my $form = <IFILE>;
	chomp;
	${$lexicon{$key}}{'form'} = $form;
	<IFILE>;<IFILE>;<IFILE>;<IFILE>;
}
close IFILE;

open(OFILE, ">$fileName.scored") or die("Couldn't open the file $fileName.scored\n");
foreach my $key (sort keys %lexicon){
	$key =~ /^([D\d]+)\-.+,(\d+)$/;
	print OFILE "{$1-${$lexicon{$key}}{'pos'},$2}\n";
	print OFILE "${$lexicon{$key}}{'pos'}::${$lexicon{$key}}{'pos'} |: [\"${$lexicon{$key}}{'urd'}\"] -> [\"${$lexicon{$key}}{'eng'}\"]\n";
	print OFILE "(\n";
	my $score = 1/$srcCounts{${$lexicon{$key}}{'urd'}};
	print OFILE "\t(*score* $score) ;1 $srcCounts{${$lexicon{$key}}{'urd'}}\n";
	print OFILE "${$lexicon{$key}}{'form'}";
	print OFILE "\t(X1::Y1)\n";
	if(${$lexicon{$key}}{'urd'} =~ /\"/){
		print OFILE "\t;((x0 lex) = ${$lexicon{$key}}{'urd'})\n" ;
	}
	else{
		print OFILE "\t((x0 lex) = ${$lexicon{$key}}{'urd'})\n";
	}
	print OFILE ")\n\n";
}
