added some trivial morphological functions in Slovenian

This commit is contained in:
krangelov
2019-03-13 21:41:52 +01:00
parent bf7a9e4485
commit e336f8d1d3
2 changed files with 32 additions and 1 deletions

View File

@@ -38,15 +38,23 @@ lincat
-- Open lexical classes, e.g. Lexicon
V = {s : VForm => Str ; p : Str ; refl : Str}; ----AR: +p particle
VA = {s : VForm => Str ; p : Str ; refl : Str};
VS = {s : VForm => Str ; p : Str ; refl : Str};
VQ = {s : VForm => Str};
VV = {s : VForm => Str};
V2 = {s : VForm => Str; c2 : Prep ; p : Str ; refl : Str}; ----AR: +p particle
V3 = {s : VForm => Str; c2 : Prep ; c3 : Prep ; p : Str ; refl : Str};
V2A = {s : VForm => Str; p : Str ; refl : Str};
V2S = {s : VForm => Str; p : Str ; refl : Str};
V2Q = {s : VForm => Str; p : Str ; refl : Str};
V2V = {s : VForm => Str; p : Str ; refl : Str};
A = {s : AForm => Str};
A2 = {s : AForm => Str; c : Prep};
N = {s : Case => Number => Str; g : AGender};
N2 = {s : Case => Number => Str; g : AGender; c : Prep} ;
PN = {s : Case => Str; g : AGender; n : Number};
}

View File

@@ -31,6 +31,8 @@ oper
mkN : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> AGender -> N = worstN ;
} ;
mkN2 : N -> Prep -> N2 = \n,c -> n ** {c=c} ;
--All masculine forms (except those with long pluralstem) are formed here.
--Takes the baseform + the genitive singular form + animacy.
--In case the genitive singular has an extra vowel in the end, it is dropped before coming here.
@@ -199,6 +201,7 @@ oper
} ;
mkV = overload {
mkV : (inf : Str) -> V = \v -> regV v (dp 2 v) ;
mkV : (inf,stem : Str) -> V = regV ;
mkV : (inf,stem,lstem : Str) -> V = irregVa ;
mkV : (inf,stem,lstem,imp : Str) -> V = irregVb ;
@@ -319,6 +322,9 @@ oper
mkV3 : V -> Prep -> Prep -> V3 = \v,p2,p3 -> lin V2 (v ** {c2 = p2 ; c3 = p3}) ;
} ;
mkVA : V -> VA ;
mkVA v = lin VA v ;
mkVS : V -> VS ;
mkVS v = lin VS v ;
@@ -328,6 +334,20 @@ oper
mkVV : V -> VV ;
mkVV v = lin VV v ;
mkV2A : V -> V2A ;
mkV2A v = lin V2A v;
mkV2S : V -> V2S ;
mkV2S v = lin V2S v;
mkV2Q : V -> V2Q ;
mkV2Q v = lin V2Q v;
mkV2V : V -> V2V ;
mkV2V v = lin V2V v;
noPrep : Prep = lin Prep {s=""; c=Acc} ;
-- Adjectives
mkA = overload {
@@ -338,6 +358,8 @@ oper
mkA : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x57 : Str) -> A = positA ;
mkA : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x166 : Str) -> A = worstA ;
} ;
mkA2 : A -> Prep -> A2 = \a,c -> a ** {c=c} ;
irregA : (_,_,_,_,_,_ :Str) -> A = \masc,fem,neut,mascC,femC,neutC -> lin A {
s = table {
@@ -633,6 +655,7 @@ oper
mkAdA : Str -> AdA = \s -> lin AdA {s=s} ;
mkAdN : Str -> AdN = \s -> lin AdN {s=s} ;
regPron: (x1,_,_,_,_,_,x7:Str) -> Gender -> Number -> Person -> Pron = \nom,acc,gen,dat,loc,inst,poss,g,n,p -> lin Pron {
s = table { Nom => nom;