Skip to content

Commit 7d4e40b

Browse files
committed
added Ukrainian
1 parent 153ad8b commit 7d4e40b

File tree

14 files changed

+35112
-0
lines changed

14 files changed

+35112
-0
lines changed

languages.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ Tam,Tamil,tamil,n,n,n,n,n,n,n,n,n
5555
Tel,Telugu,telugu,,,y,n,n,n,,n,n
5656
Tha,Thai,thai,,to_thai,,,,,,y,n
5757
Tur,Turkish,turkish,,,y,,,n,,n,n
58+
Ukr,Ukrainian,ukrainian,,,,y,n,n,n,y,n
5859
Urd,Urdu,urdu,Hindustani,,,,,,,y,n
5960
Som,Somali,somali,,,,,n,n,,n,n
6061
Zul,Zulu,zulu,,,,,n,n,,n,n

src/ukrainian/AdjectiveUkr.gf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
concrete AdjectiveUkr of Adjective = CatUkr ** {
2+
--lin
3+
-- PositA a = a ;
4+
}

src/ukrainian/AllUkr.gf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
concrete AllUkr of AllUkrAbs =
2+
LangUkr
3+
**
4+
{} ;

src/ukrainian/AllUkrAbs.gf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
abstract AllUkrAbs =
2+
Lang
3+
** {}

src/ukrainian/CatUkr.gf

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
concrete CatUkr of Cat = CommonX ** open ResUkr in {
2+
3+
lincat N = N ;
4+
lincat N2 = N ** {c2 : Compl} ;
5+
lincat N3 = N ** {c2,c3 : Compl} ;
6+
lincat V = V ;
7+
lincat VV,VS,VQ,VA = V ;
8+
lincat V2 = V ** {c2 : Compl} ;
9+
lincat V3,V2A,V2S,V2Q,V2V = V ** {c2,c3 : Compl} ;
10+
lincat A = A ;
11+
lincat A2 = A ** {c2 : Compl} ;
12+
lincat Prep = Compl ;
13+
lincat CN = CommonNoun ;
14+
lincat AP = AdjPhrase ;
15+
lincat S = {s : Str} ;
16+
17+
lincat LN,SN,GN,PN = {s : Str} ;
18+
19+
linref V,VV,V2,V3,V2A,V2S,V2Q,V2V = \v -> v.infinitive ;
20+
21+
}

src/ukrainian/DocumentationUkr.gf

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
concrete DocumentationUkr of Documentation = CatUkr ** open
2+
ResUkr, Prelude, HTML in {
3+
4+
lincat
5+
Inflection = {t : Str; s1,s2,s3 : Str} ;
6+
Definition = {s : Str} ;
7+
Document = {s : Str} ;
8+
Tag = {s : Str} ;
9+
10+
lin
11+
InflectionN,InflectionN2,InflectionN3 = \x -> {
12+
t="n" ;
13+
s1="" ;
14+
s2=frameTable (
15+
tr (intagAttr "th" "rowspan=\"2\"" "Nom" ++ th "Sg" ++ td (x.s ! Nom ! Sg)) ++
16+
tr (th "Pl" ++ td (x.s ! Nom ! Pl)) ++
17+
tr (intagAttr "th" "rowspan=\"2\"" "Acc" ++ th "Sg" ++ td (x.s ! Acc ! Sg)) ++
18+
tr (th "Pl" ++ td (x.s ! Acc ! Pl)) ++
19+
tr (intagAttr "th" "rowspan=\"2\"" "Dat" ++ th "Sg" ++ td (x.s ! Dat ! Sg)) ++
20+
tr (th "Pl" ++ td (x.s ! Dat ! Pl)) ++
21+
tr (intagAttr "th" "rowspan=\"2\"" "Gen" ++ th "Sg" ++ td (x.s ! Gen ! Sg)) ++
22+
tr (th "Pl" ++ td (x.s ! Gen ! Pl)) ++
23+
tr (intagAttr "th" "rowspan=\"2\"" "Loc" ++ th "Sg" ++ td (x.s ! Loc ! Sg)) ++
24+
tr (th "Pl" ++ td (x.s ! Loc ! Pl)) ++
25+
tr (intagAttr "th" "rowspan=\"2\"" "Instr" ++ th "Sg" ++ td (x.s ! Instr ! Sg)) ++
26+
tr (th "Pl" ++ td (x.s ! Instr ! Pl)) ++
27+
tr (intagAttr "th" "rowspan=\"2\"" "Voc" ++ th "Sg" ++ td (x.Voc ! Sg)) ++
28+
tr (th "Pl" ++ td (x.Voc ! Pl))) ;
29+
s3=[]
30+
} ;
31+
lin
32+
InflectionV,InflectionV2,InflectionV2A,InflectionV2Q,InflectionV2S,InflectionV2V,InflectionV3,InflectionVA,InflectionVQ,InflectionVS,InflectionVV = \x -> {
33+
t="v" ;
34+
s1="" ;
35+
s2=heading1 "Infinitive" ++
36+
paragraph (x.infinitive) ++
37+
heading1 "Present" ++
38+
frameTable (
39+
tr (intagAttr "th" "rowspan=\"6\"" "Pres" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td ((x.active ! Imperf).Pres ! P1 ! Sg)) ++
40+
tr (th "Pl" ++ td ((x.active ! Imperf).Pres ! P1 ! Pl)) ++
41+
tr (intagAttr "th" "rowspan=\"2\"" "P2" ++ th "Sg" ++ td ((x.active ! Imperf).Pres ! P2 ! Sg)) ++
42+
tr (th "Pl" ++ td ((x.active ! Imperf).Pres ! P2 ! Pl)) ++
43+
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td ((x.active ! Imperf).Pres ! P3 ! Sg)) ++
44+
tr (th "Pl" ++ td ((x.active ! Imperf).Pres ! P3 ! Pl))) ++
45+
heading1 "Imperative" ++
46+
paragraph (x.imperative1) ++
47+
frameTable (
48+
tr (th "Sg" ++ td (x.imperative2 ! Sg)) ++
49+
tr (th "Pl" ++ td (x.imperative2 ! Pl))) ++
50+
heading1 "participle" ++
51+
frameTable (
52+
tr (th "" ++ th "Sg" ++ th "Pl") ++
53+
tr (th "Masc" ++ td (x.participle ! Masc ! Sg) ++ td (x.participle ! Masc ! Pl)) ++
54+
tr (th "Fem" ++ td (x.participle ! Fem ! Sg) ++ td (x.participle ! Fem ! Pl)) ++
55+
tr (th "Neuter" ++ td (x.participle ! Neuter ! Sg) ++ td (x.participle ! Neuter ! Pl))) ;
56+
s3=[]
57+
} ;
58+
lin
59+
InflectionA,InflectionA2 = \x -> {
60+
t="a" ;
61+
s1="" ;
62+
s2=frameTable (
63+
tr (th "" ++ th "Masc" ++ th "Fem" ++ th "Neuter" ++ th "Pl") ++
64+
tr (th "Nom" ++ td (x.s ! Nom ! GSg Masc) ++ td (x.s ! Nom ! GSg Fem) ++ td (x.s ! Nom ! GSg Neuter) ++ td (x.s ! Nom ! GPl)) ++
65+
tr (th "Acc" ++ td (x.s ! Acc ! GSg Masc) ++ td (x.s ! Acc ! GSg Fem) ++ td (x.s ! Acc ! GSg Neuter) ++ td (x.s ! Acc ! GPl)) ++
66+
tr (th "Dat" ++ td (x.s ! Dat ! GSg Masc) ++ td (x.s ! Dat ! GSg Fem) ++ td (x.s ! Dat ! GSg Neuter) ++ td (x.s ! Dat ! GPl)) ++
67+
tr (th "Gen" ++ td (x.s ! Gen ! GSg Masc) ++ td (x.s ! Gen ! GSg Fem) ++ td (x.s ! Gen ! GSg Neuter) ++ td (x.s ! Gen ! GPl)) ++
68+
tr (th "Loc" ++ td (x.s ! Loc ! GSg Masc) ++ td (x.s ! Loc ! GSg Fem) ++ td (x.s ! Loc ! GSg Neuter) ++ td (x.s ! Loc ! GPl)) ++
69+
tr (th "Instr"++td (x.s ! Instr ! GSg Masc)++td (x.s ! Instr ! GSg Fem)++td (x.s ! Instr ! GSg Neuter)++td (x.s ! Instr ! GPl))) ;
70+
s3=[]
71+
} ;
72+
lin
73+
InflectionAdA,InflectionAdN,InflectionAdV,InflectionAdv = \x -> {t="adv"; s1=""; s2=x.s; s3=""} ;
74+
75+
InflectionPrep = \x -> {t="prep"; s1=""; s2=x.s; s3=""} ;
76+
77+
lin
78+
NoDefinition t = {s=t.s};
79+
MkDefinition t d = {s="<p><b>Definition:</b>"++t.s++d.s++"</p>"};
80+
MkDefinitionEx t d e = {s="<p><b>Definition:</b>"++t.s++d.s++"</p><p><b>Example:</b>"++e.s++"</p>"};
81+
82+
lin
83+
MkDocument d i e = {s = i.s1 ++ d.s ++ i.s2 ++ i.s3 ++ e.s} ;
84+
MkTag i = {s = i.t} ;
85+
}

src/ukrainian/GrammarUkr.gf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
concrete GrammarUkr of Grammar =
2+
TenseX,
3+
PhraseUkr,
4+
NounUkr,
5+
AdjectiveUkr ** {
6+
}

src/ukrainian/LangUkr.gf

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
--# -path=.:../abstract
2+
concrete LangUkr of Lang =
3+
GrammarUkr,
4+
LexiconUkr
5+
,DocumentationUkr --# notpresent
6+
** {
7+
8+
flags startcat = Phr ;
9+
10+
}

src/ukrainian/LexiconUkr.gf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
concrete LexiconUkr of Lexicon = CatUkr ** open ParadigmsUkr in {
2+
}

0 commit comments

Comments
 (0)