#!/usr/bin/perl

@entries = (
"r		adj+strong+masc+sg+nom",
"an		adj+strong+masc+sg+acc",
"s		adj+strong+masc+sg+gen",
"um	u	adj+strong+masc+sg+dat",
"ir		adj+strong+masc+pl+nom",
"a		adj+strong+masc+pl+acc",
"ra		adj+strong+masc+pl+gen",
"um	u	adj+strong+masc+pl+dat",

"	u	adj+strong+fem+sg+nom",
"a		adj+strong+fem+sg+acc",
"rar		adj+strong+fem+sg+gen",
"ri		adj+strong+fem+sg+dat",
"ar		adj+strong+fem+pl+nom",
"ar		adj+strong+fem+pl+acc",
"ra		adj+strong+fem+pl+gen",
"um	u	adj+strong+fem+pl+dat",

"t		adj+strong+neut+sg+nom",
"t		adj+strong+neut+sg+acc",
"s		adj+strong+neut+sg+gen",
"u	u	adj+strong+neut+sg+dat",
"	u	adj+strong+neut+pl+nom",
"	u	adj+strong+neut+pl+acc",
"ra		adj+strong+neut+pl+gen",
"um	u	adj+strong+neut+pl+dat",

"i		adj+weak+masc+sg+nom",
"a		adj+weak+masc+sg+acc",
"a		adj+weak+masc+sg+gen",
"a		adj+weak+masc+sg+dat",
"u	u	adj+weak+masc+pl+nom",
"u	u	adj+weak+masc+pl+acc",
"u	u	adj+weak+masc+pl+gen",
"um	u	adj+weak+masc+pl+dat",

"a		adj+weak+fem+sg+nom",
"u	u	adj+weak+fem+sg+acc",
"u	u	adj+weak+fem+sg+gen",
"u	u	adj+weak+fem+sg+dat",
"u	u	adj+weak+fem+pl+nom",
"u	u	adj+weak+fem+pl+acc",
"u	u	adj+weak+fem+pl+gen",
"um	u	adj+weak+fem+pl+dat",

"a		adj+weak+neut+sg+nom",
"a		adj+weak+neut+sg+acc",
"a		adj+weak+neut+sg+gen",
"a		adj+weak+neut+sg+dat",
"u	u	adj+weak+neut+pl+nom",
"u	u	adj+weak+neut+pl+acc",
"u	u	adj+weak+neut+pl+gen",
"um	u	adj+weak+neut+pl+dat",
);


while (<>) {

    chop;
    ($cite, $stem, $gloss) = split(/\t/);

    foreach $entry (@entries) {
	($ending, $soundchange, $pos) = split (/\t/, $entry);
	
	$stemcopy = $stem;
	if ($soundchange eq "u") {
	    $stemcopy =~ s/(a.*)a/$1u/g;
	    $stemcopy =~ s/a/&o-hook;/g;
	}
	
	$form =  $stemcopy . "+" . $ending;

	# Delete the second vowel in the stem if the suffix contains
	# a vowel.
	$form =~ s/([aeiouy][^-\+]+)\&o\-hook\;(.+\+[aeiou])/$1$2/;
	$form =~ s/([aeiouy][^-\+]+)[aeiouy](.+\+[aeiou])/$1$2/;
	

	# Consonant assimilations.
	$form =~ s/n\+r/nn/;
	$form =~ s/s\+r/ss/;
	$form =~ s/l\+r/ll/;
	$form =~ s/x\+r/x/;

	$form =~ s/r\+r/r/;
	
	# Get rid of our temporary morphological boundary.
	$form =~ s/\+//;

	print $form, "\t", $cite, "+", $pos, "\t", $gloss, " (*)\n";
	
    }
    
}
