first draft of Ukrainian grammar

This commit is contained in:
Krasimir Angelov committed 2026-06-10 10:48:57 +02:00
1 parent f2ac424bfe
commit 1e581fbd10
19 files changed
+939 -39

No files matched your search

+40 -9
View File
@@ -1352,6 +1352,25 @@ oper
mkA2 : A -> Prep -> A2 = \a,p -> lin A2 (a ** {c2 = p}) ;
} ;
invarN : Str -> N = \s -> lin N {s=\\_,_=>s; voc=\\_=>s; g=Masc} ;
invarA : Str -> A = \s -> lin A {s=\\_,_=>s} ;
invarV : Str -> V = \s -> lin V {
active = table {
Imperf => {past=s; pres=\\_,_=>s} ;
Perf => {past=s; pres=\\_,_=>s}
} ;
imperative1 = s ;
imperative2 = \\_=>s ;
infinitive = s ;
participle = \\_,_=>s ;
passive = \\_,_=>s
} ;
invarVP : Str -> VP = \s -> lin VP {
s = \\_,_,_,_,_=>s ;
inf = s ;
imp = \\_,_=>s
} ;
mkAdv : Str -> Adv = \s -> lin Adv {s=s} ;
mkAdV : Str -> AdV = \s -> lin AdV {s=s} ;
mkAdA : Str -> AdA = \s -> lin AdA {s=s} ;
@@ -1360,18 +1379,30 @@ oper
mkInterj : Str -> Interj = \s -> lin Interj {s=s} ;
mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ;
mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Acc} ;
nominative : Case = Nom ;
accusative : Case = Acc ;
dative : Case = Dat ;
genitive : Case = Gen ;
locative : Case = Loc ;
instrumental : Case = Instr ;
mkPrep = overload {
mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Acc} ;
mkPrep : Case -> Prep = \c -> lin Prep {s=[]; c=c} ;
mkPrep : Str -> Case -> Prep = \s,c -> lin Prep {s=s; c=c}
} ;
mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ;
mkIP : Str -> IP = \s -> lin IP {s=s} ;
mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ;
mkIDet : Str -> IDet = \s -> lin IDet {s=s} ;
mkIP : Str -> IP = \s -> lin IP {s=\\_=>s; g=Masc; n=Sg; p=P3} ;
mkIQuant : Str -> IQuant = \s -> lin IQuant {s=\\_,_,_=>s} ;
mkIDet : Str -> IDet = \s -> lin IDet {s=\\_,_=>s; n=Sg} ;
mkSubj : Str -> Subj = \s -> lin Subj {s=s} ;
mkQuant : Str -> Quant = \s -> lin Quant {s=s} ;
mkPredet : Str -> Predet = \s -> lin Predet {s=s} ;
mkDet : Str -> Det = \s -> lin Det {s=s} ;
mkCard : Str -> Card = \s -> lin Card {s=s} ;
mkConj : Str -> Conj = \s -> lin Conj {s=s} ;
mkQuant : Str -> Quant = \s -> lin Quant {s=\\_,_,_=>s} ;
mkPredet : Str -> Predet = \s -> lin Predet {s=\\_,_,_=>s} ;
mkDet : Str -> Det = \s -> lin Det {s=\\_,_=>s; n=Sg} ;
mkCard : Str -> Card = \s -> lin Card {s=s; n=Pl} ;
mkACard : Str -> ACard = \s -> lin ACard {s=s; n=Pl} ;
mkConj : Str -> Conj = \s -> lin Conj {s1=""; s2=s; n=Pl} ;
mkPConj : Str -> PConj = \s -> lin PConj {s=s} ;
mkVoc : Str -> Voc = \s -> lin Voc {s=s} ;