|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/markrose/ |
Upload File : |
<HTML>
<HEAD>
<TITLE>The Old Skourene Conjugator</TITLE>
</HEAD>
<SCRIPT LANGUAGE="JavaScript">
function isVowel( ch )
{
var isv = ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u';
return isv;
}
function applyPluralDef( noun1, pl, def )
{
var lastchar = noun1.charAt( noun1.length- 1 );
var last2 = "";
if (noun1.length > 2)
last2 = noun1.substr( noun1.length - 2, 2 );
if (last2 == "as" || last2 == "is")
{
var rest = noun1.substr( 0, noun1.length - 1 );
if (pl)
{
lastchar = rest.charAt( rest.length- 1 );
noun1 = rest + "r" + lastchar;
if (def)
noun1 = noun1 + "l";
}
else if (def)
noun1 = rest + "tul";
}
else if (pl)
{
if (isVowel(lastchar))
{
noun1 = noun1 + (def ? "L" : "r");
}
else
{
var i = 0;
while (i < noun1.length)
{
var ch = noun1.charAt(i);
if (isVowel(ch))
lastchar = ch;
i++;
}
noun1 = noun1 + lastchar;
if (def)
noun1 = noun1 + "l";
}
}
else if (def)
{
if (isVowel(lastchar))
noun1 = noun1 + "l";
else
noun1 = noun1 + "ul";
}
return noun1;
}
function ConjugateMe()
{
var verb = document.daform.verb.value;
if (verb.length < 3)
{
document.daform.results.value = "Verb is too short!";
return;
}
var c1 = verb.substr(0,1);
var stem = verb.substr(1,1);
var c2 = verb.substr(2,1);
var c3 = c2;
var isBi = 1;
if (verb.length > 3)
{
isBi = 0;
c3 = verb.substr(3,1);
}
var gotAbs = !document.daform.absno.checked;
var gotErg = !document.daform.ergno.checked;
if (!gotAbs && !gotErg)
{
document.daform.results.value = "One of the arguments must be present!";
return;
}
var pre = "";
var p12 = "";
var p23 = "";
var p4 = "";
var p = "";
var noun1 = document.daform.absnom.value;
var noun2 = document.daform.ergnom.value;
// absolutive
if (gotAbs)
{
var psn1 = document.daform.abspsn[0].checked;
var psn2 = document.daform.abspsn[1].checked;
var psn3 = document.daform.abspsn[2].checked;
var pl = document.daform.absnum.checked;
var dual = document.daform.absdual.checked;
var vosnos = pl && !psn3;
if (psn1)
{
p4 = "e";
}
else if (psn2)
{
p4 = "a";
}
else
{
p4 = (pl && !dual) ? "i" : "u";
}
if (dual && (psn2 || psn3))
p4 = p4 + "s";
else if (vosnos)
{
if (document.daform.absex.checked && psn1)
p4 = p4 + "p";
else
p4 = p4 + "g";
}
else
{
if (document.daform.absgen[1].checked)
p4 = p4 + "t";
else if (!document.daform.absgen[0].checked)
{
if (psn3 )
p4 = p4 + "m";
}
}
p = stem;
}
// ergative
if (gotErg && !document.daform.refl.checked)
{
var psn1 = document.daform.ergpsn[0].checked;
var psn2 = document.daform.ergpsn[1].checked;
var psn3 = document.daform.ergpsn[2].checked;
var pl = document.daform.ergnum.checked;
if (pl)
{
p23 = "o";
if (document.daform.ergex.checked && psn1)
p23 = p23 + "b";
}
if (psn1)
p23 = p23 + "u";
else if (psn2)
p23 = p23 + "i";
if (document.daform.erggen[1].checked)
{
if (psn3 && !pl)
p23 = "a";
p23 = "r" + p23;
}
else if (document.daform.erggen[2].checked && psn3)
{
if (psn3 && !pl)
p23 = "a";
if (c2 == "t" || c2 == "d" || c2 == "s" ||
c2 == "n" || c2 == "l")
p23 = "l" + p23;
else
p23 = "L" + p23;
}
p = p23;
if (p == "")
p = stem;
}
// reflexive
if (document.daform.refl.checked)
{
if (!gotAbs)
{
document.daform.results.value =
"The absolutive argument is required for reflexives.";
return;
}
var lastchar = p4.charAt( p4.length - 1 );
var rest = p4.substr(0,p4.length-1);
if (p4 == "i")
p4 = "iri";
else if (p4.charAt(0) == 'i')
p4 = rest + "ri" + lastchar;
else if (lastchar == 't')
p4 = rest + "T";
else if (lastchar == 'g')
p4 = rest + "D";
else if (lastchar == 's')
p4 = rest + "S";
else if (rest == "")
p4 = p4 + "i";
else
p4 = rest + "i" + lastchar;
}
// mood
var moodset = 1;
if (document.daform.mood[1].checked) // intentive
p12 = "u";
else if (document.daform.mood[2].checked) // desiderative
p12 = stem == "a" ? "au" : "a";
else if (document.daform.mood[3].checked) // metutive
p12 = "o";
else if (document.daform.mood[4].checked) // negative
p12 = "";
else if (document.daform.mood[5].checked) // imperative
pre = "u";
else
{
moodset = 0;
p12 = stem;
}
// Adjust the mood for biconsonantal verbs
if (isBi && moodset)
{
pre = p12;
if (document.daform.mood[5].checked) // imperative
pre = "u";
if (!gotErg)
p = "";
if (document.daform.mood[4].checked) // negative
pre = c1 + "o";
}
// special unpronounceability rules
if (pre == "" && p12 == "" && p23 == "" && p4 == "")
{
pre = "o";
p4 = "u";
}
if (pre == "u" && p12 == "" && p23 == "" && p4 == "")
{
p12 = "u";
}
// aspect
if (!document.daform.mood[4].checked)
{
var asp = "";
if (document.daform.aspect[1].checked) // durative
asp = "a";
else if (document.daform.aspect[2].checked) // inceptive
asp = "u";
else if (document.daform.aspect[3].checked) // cyclical
asp = "i";
if (asp != "")
{
if (isBi)
{
if (pre != "")
pre = pre + asp;
else
{
var lastchar = p.charAt( p.length- 1 );
if (asp == lastchar)
p = p + "r" + asp;
else
p = p + asp;
}
}
else if (p12 == asp)
p12 = p12 + "r" + asp;
else
p12 = p12 + asp;
}
}
// prefixes
if (document.daform.pret.checked)
pre = "me" + pre;
if (document.daform.caus.checked)
pre = "ai" + pre;
if (document.daform.att.checked)
pre = "in" + pre;
// put all the verb pieces together
if (isBi)
verb = pre + c1 + p + c2 + p4;
else
verb = pre + c1 + p12 + c2 + p23 + c3 + p4;
// Now do the nouns
if (!gotAbs)
noun1 = "";
if (!gotErg)
noun2 = "";
// Decline the absolutive noun
if (noun1 != "")
{
var pl = document.daform.absnum.checked;
var def = document.daform.absdef.checked;
noun1 = applyPluralDef( noun1, pl, def );
}
// Decline the ergative noun
if (noun2 != "")
{
var pl = document.daform.ergnum.checked;
var def = document.daform.ergdef.checked;
noun2 = applyPluralDef( noun2, pl, def );
var firstch = noun2.substr(0,1);
if (isVowel( firstch ))
noun2 = "N" + noun2;
else
{
if (noun2.length < 2 || isVowel(noun2.substr(1,1)))
noun2 = "i" + firstch + noun2;
else
noun2 = "i" + noun2;
}
}
document.daform.results.value = verb + " " + noun1 + " " + noun2;
}
</SCRIPT>
<BODY BGCOLOR="#CCCCE0">
<H3>The Old Skourene Conjugator</H3>
<FORM action="" method="POST" name="daform">
Verb: <input name="verb" type="text" size=36>
<NOSCRIPT>
<P><b>JavaScript must be enabled</b> for this utility to work.
</NOSCRIPT>
<br>
<table><tr>
<td bgcolor="B0B0C8"
<b>Tense/Mood/Aspect</b>
<p><input name="mood" type="radio" value="p">
perfect
<br><input name="mood" type="radio" value="i">
intentive
<br><input name="mood" type="radio" value="d">
desiderative
<br><input name="mood" type="radio" value="m">
metutive
<br><input name="mood" type="radio" value="n">
negative
<br><input name="mood" type="radio" value="o">
imperative
<p><input name="aspect" type="radio" value="0">
unmarked aspect
<br><input name="aspect" type="radio" value="d">
durative
<br><input name="aspect" type="radio" value="i">
inceptive
<br><input name="aspect" type="radio" value="c">
cyclical
<p><input name="caus" type="checkbox" > Causative
<br><input name="pret" type="checkbox" > Pretentive
<br><input name="att" type="checkbox" > Attemptive
<td>
<td bgcolor="B8B8D0">
<b>Absolutive argument</b>
<p><input name="absno" type="checkbox" > NONE
<p><input name="abspsn" type="radio" value="1">
1st person (I/me)
<br><input name="abspsn" type="radio" value="2">
2nd person (you)
<br><input name="abspsn" type="radio" value="3">
3rd person (he/she/it/they)
<br><input name="absnum" type="checkbox" > Plural
<input name="absdual" type="checkbox" > Dual
<br><input name="absex" type="checkbox" > Exclusive 'we'
<br><input name="absgen" type="radio" value="masc">
Masculine
<br><input name="absgen" type="radio" value="fem">
Feminine
<br><input name="absgen" type="radio" value="anim">
Non-sentient
<p>Noun: <input name="absnom" type="text" size=20">
<br><input name="absdef" type="checkbox" > Definite
</td>
<td>
<td bgcolor="B8B8D0">
<b>Ergative argument</b>
<p><input name="ergno" type="checkbox" > NONE
<input name="refl" type="checkbox" > Reflexive
<p><input name="ergpsn" type="radio" value="1">
1st person (I/me)
<br><input name="ergpsn" type="radio" value="2 (you)">
2nd person (you)
<br><input name="ergpsn" type="radio" value="3">
3rd person (he/she/it/they)
<br><input name="ergnum" type="checkbox" > Plural
<br><input name="ergex" type="checkbox" > Exclusive 'we'
<br><input name="erggen" type="radio" value="masc">
Masculine
<br><input name="erggen" type="radio" value="fem">
Feminine
<br><input name="erggen" type="radio" value="anim">
Animate
<p>Noun: <input name="ergnom" type="text" size=20">
<br><input name="ergdef" type="checkbox" > Definite
</td>
</tr>
</table>
<P><INPUT TYPE="button" NAME="doit" VALUE="Conjugate" onClick="ConjugateMe()">
<hr>
<TEXTAREA NAME="results" ROWS="10" COLS="60" WRAP="virtual"></TEXTAREA></P>
</FORM>
<hr>
<A HREF="lenani.htm">[Back]</A>
</BODY>
</HTML>