mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-06 09:42:50 -06:00
tiny fragment of Turkish
This commit is contained in:
106
lib/resource/turkish/ResTur.gf
Normal file
106
lib/resource/turkish/ResTur.gf
Normal file
@@ -0,0 +1,106 @@
|
||||
--# -path=.:../abstract:../common:../../prelude
|
||||
|
||||
resource ResTur = ParamX ** open Prelude, Predef in {
|
||||
|
||||
--2 For $Noun$
|
||||
|
||||
param
|
||||
Case = Nom | Acc | Dat | Gen | Loc | Ablat | Abess ;
|
||||
|
||||
Species = Indef | Def ;
|
||||
|
||||
VForm =
|
||||
VPres Number Person
|
||||
| VPast Number Person
|
||||
| VFuture Number Person
|
||||
| VAorist Number Person
|
||||
| VImperative
|
||||
| VInfinitive
|
||||
;
|
||||
|
||||
oper
|
||||
Agr = {n : Number ; p : Person} ;
|
||||
|
||||
-- For $Verb$.
|
||||
|
||||
Verb : Type = {
|
||||
s : VForm => Str
|
||||
} ;
|
||||
|
||||
--2 For $Numeral$
|
||||
param
|
||||
DForm = unit | ten ;
|
||||
|
||||
-- For $Numeral$.
|
||||
oper
|
||||
mkNum : Str -> Str -> {s : DForm => Str} =
|
||||
\two, twenty ->
|
||||
{s = table {
|
||||
unit => two ;
|
||||
ten => twenty
|
||||
}
|
||||
} ;
|
||||
|
||||
mkNP : (ben,beni,bana,banin,bende,benden:Str) -> Number -> Person ->
|
||||
{s : Case => Str ; a : Agr} =
|
||||
\ben,beni,bana,banin,bende,benden,n,p -> {
|
||||
s = table {
|
||||
Nom => ben ;
|
||||
Acc => beni ;
|
||||
Dat => bana ;
|
||||
Gen => banin ;
|
||||
Loc => bende ;
|
||||
Abl => benden
|
||||
} ;
|
||||
a = {n=n; p=p} ;
|
||||
} ;
|
||||
|
||||
oper
|
||||
harmony4 : Str -> Str -> Str
|
||||
= \base,suffix0 ->
|
||||
let c : Str =
|
||||
case base of {
|
||||
_+c@("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")+
|
||||
("b"|"v"|"d"|"z"|"j"|"c"|"g"|"ğ"|"l"|"r"|"m"|"n"|"y"|"p"|"f"|"t"|"s"|"ş"|"ç"|"k"|"h")* => c ;
|
||||
_ => error "harmony4"
|
||||
} ;
|
||||
h : Str =
|
||||
case c of {
|
||||
("ı"|"a") => "ı" ;
|
||||
("i"|"e") => "i" ;
|
||||
("u"|"o") => "u" ;
|
||||
("ü"|"ö") => "ü"
|
||||
} ;
|
||||
suffix : Str =
|
||||
case suffix0 of {
|
||||
s1@(("b"|"v"|"d"|"z"|"j"|"c"|"g"|"ğ"|"l"|"r"|"m"|"n"|"y"|"p"|"f"|"t"|"s"|"ş"|"ç"|"k"|"h")*)
|
||||
+ ("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")
|
||||
+s2 => s1+h+s2 ;
|
||||
s => s
|
||||
}
|
||||
in base + suffix ;
|
||||
|
||||
harmony2 : Str -> Str -> Str
|
||||
= \base,suffix0 ->
|
||||
let c : Str =
|
||||
case base of {
|
||||
_+c@("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")+
|
||||
("b"|"v"|"d"|"z"|"j"|"c"|"g"|"ğ"|"l"|"r"|"m"|"n"|"y"|"p"|"f"|"t"|"s"|"ş"|"ç"|"k"|"h")* => c ;
|
||||
_ => error "harmony4"
|
||||
} ;
|
||||
h : Str =
|
||||
case c of {
|
||||
("ı"|"a") => "ı" ;
|
||||
("i"|"e") => "i" ;
|
||||
("u"|"o") => "u" ;
|
||||
("ü"|"ö") => "ü"
|
||||
} ;
|
||||
suffix : Str =
|
||||
case suffix0 of {
|
||||
s1@(("b"|"v"|"d"|"z"|"j"|"c"|"g"|"ğ"|"l"|"r"|"m"|"n"|"y"|"p"|"f"|"t"|"s"|"ş"|"ç"|"k"|"h")*)
|
||||
+ ("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")
|
||||
+s2 => s1+h+s2 ;
|
||||
s => s
|
||||
}
|
||||
in base + suffix ;
|
||||
}
|
||||
Reference in New Issue
Block a user