summaryrefslogtreecommitdiff
path: root/next-lib/src
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-05-07 07:41:38 +0000
committerkrasimir <krasimir@chalmers.se>2009-05-07 07:41:38 +0000
commitb0cbba9e0de788a3c3ff5f3819aa6c91b140fe9f (patch)
tree57b5a493bb81bd67aa7fe75d33404185a76ef1b8 /next-lib/src
parent112de09f6b9ebc47687234e834445e826a0b21b7 (diff)
Turkish: some more nouns in the lexicon and some work on the paradigms. still not complete
Diffstat (limited to 'next-lib/src')
-rw-r--r--next-lib/src/turkish/LexiconTur.gf47
-rw-r--r--next-lib/src/turkish/ParadigmsTur.gf17
-rw-r--r--next-lib/src/turkish/ResTur.gf73
3 files changed, 103 insertions, 34 deletions
diff --git a/next-lib/src/turkish/LexiconTur.gf b/next-lib/src/turkish/LexiconTur.gf
index b85b5d8ec..72e113cf9 100644
--- a/next-lib/src/turkish/LexiconTur.gf
+++ b/next-lib/src/turkish/LexiconTur.gf
@@ -3,6 +3,9 @@
concrete LexiconTur of Lexicon = CatTur **
open ResTur, ParadigmsTur, Prelude in {
+flags
+ coding=utf8;
+
lin
airplane_N = regN "uçak" ;
apartment_N = regN "apartman" ;
@@ -13,12 +16,54 @@ lin
boot_N = regN "ayakkabı" ;
boss_N = regN "şef" ;
bread_N = regN "ekmek" ;
+ brother_N2 = regN "kardeş" ;
+ butter_N = regN "yağ" ;
+ cap_N = regN "şapka" ;
+ car_N = regN "araba" ;
+ carpet_N = regN "kilim" ;
+ cat_N = regN "kedi" ;
+ child_N = regN "çocuk" ;
+ city_N = regN "şehir" ;
+ coat_N = regN "kazak" ;
come_V = regV "gelmek" ;
- day_N = regN "gün" ;
father_N2 = regN "baba" ;
go_V = regV "gitmek" ;
house_N = regN "ev" ;
mother_N2 = regN "anne" ;
+ pen_N = regN "kalem" ;
run_V = regV "koşmek" ;
stop_V = regV "durmak" ;
+ table_N = regN "masa" ;
+ television_N = regN "televizyon" ;
+ tree_N = regN "ağaç" ;
+ woman_N = regN "kadın" ;
+ wood_N = regN "kereste" ;
+ song_N = regN "şarkı" ;
+ back_N = regN "sırt" ;
+ belly_N = regN "göbek" ;
+ day_N = regN "gün" ;
+ ear_N = regN "kulak" ;
+ egg_N = regN "yumurta" ;
+ eye_N = regN "göz" ;
+ fire_N = regN "ateş" ;
+ flower_N = regN "çiçek" ;
+ grass_N = regN "çimen" ;
+ hand_N = regN "kol" ;
+ head_N = regN "baş" ;
+ heart_N = regN "kalp" ;
+ husband_N = regN "eş" ;
+ ice_N = regN "buz" ;
+ leg_N = regN "bacak" ;
+ mouth_N = regN "agız" ;
+ name_N = regN "ad" ;
+ night_N = regN "gece" ;
+ nose_N = regN "burun" ;
+ salt_N = regN "tuz" ;
+ sand_N = regN "kum" ;
+ snow_N = regN "kar" ;
+ tail_N = regN "kuyruk" ;
+ tooth_N = regN "diş" ;
+ wife_N = regN "eş" ;
+ year_N = regN "sene" ;
+ reason_N = regN "mazaret" ;
} ;
diff --git a/next-lib/src/turkish/ParadigmsTur.gf b/next-lib/src/turkish/ParadigmsTur.gf
index 969a17bee..6d35ccdd8 100644
--- a/next-lib/src/turkish/ParadigmsTur.gf
+++ b/next-lib/src/turkish/ParadigmsTur.gf
@@ -49,13 +49,16 @@ oper
regN : Str -> Noun = \base -> {
s = \\n => table {
- Nom => add_number n base ;
- Acc => harmony4 (add_number n base) "i" ;
- Dat => harmony2 (add_number n base) "e" ;
- Gen => harmony4 (add_number n base) "in" ;
- Loc => harmony2 (add_number n base) "de" ;
- Ablat => add_number n base ;
- Abess => add_number n base
+ Nom => add_number n base ;
+ Acc => harmony4 (add_number n base) "i" ;
+ Dat => harmony2 (add_number n base) "e" ;
+ Gen => harmony4 (add_number n base) "in" ;
+ Loc => harmony2 (add_number n base) "de" ;
+ Ablat => harmony2 (add_number n base) "den" ;
+ Abess p => case p of {
+ Pos => harmony4 (add_number n base) "li" ;
+ Neg => harmony4 (add_number n base) "siz"
+ }
} ;
gen = \\n => table {
{n=Sg; p=P1} => harmony4 (add_number n base) "im" ;
diff --git a/next-lib/src/turkish/ResTur.gf b/next-lib/src/turkish/ResTur.gf
index e2cb748c6..baacf68a7 100644
--- a/next-lib/src/turkish/ResTur.gf
+++ b/next-lib/src/turkish/ResTur.gf
@@ -4,8 +4,11 @@ resource ResTur = ParamX ** open Prelude, Predef in {
--2 For $Noun$
+ flags
+ coding=utf8 ;
+
param
- Case = Nom | Acc | Dat | Gen | Loc | Ablat | Abess ;
+ Case = Nom | Acc | Dat | Gen | Loc | Ablat | Abess Polarity ;
Species = Indef | Def ;
@@ -60,48 +63,66 @@ resource ResTur = ParamX ** open Prelude, Predef in {
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"
- } ;
+ = \base0,suffix0 ->
+ let buffer : Str =
+ case dp 1 base0 + take 1 suffix0 of {
+ ("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")+("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö") => "y" ;
+ _ => ""
+ } ;
h : Str =
- case c of {
- ("ı"|"a") => "ı" ;
- ("i"|"e") => "i" ;
- ("u"|"o") => "u" ;
- ("ü"|"ö") => "ü"
+ case base0 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")* =>
+ case c of {
+ ("ı"|"a") => "ı" ;
+ ("i"|"e") => "i" ;
+ ("u"|"o") => "u" ;
+ ("ü"|"ö") => "ü"
+ } ;
+ _ => error ("harmony4")
} ;
+ base : Str =
+ case dp 1 base0 + take 1 suffix0 of {
+ ("k")+("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö") => tk 1 base0 + "ğ" ;
+ _ => base0
+ } ;
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"|"ü"|"ö")
+ + ("ı"|"i"|"u"|"ü")
+s2 => s1+h+s2 ;
s => s
}
- in base + suffix ;
+ in base + buffer + suffix ;
harmony2 : Str -> Str -> Str
= \base,suffix0 ->
- let c : Str =
+ let buffer : Str =
+ case dp 1 base + take 1 suffix0 of {
+ ("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")+("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö") => "n" ;
+ _ => ""
+ } ;
+ h : 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 ;
+ ("b"|"v"|"d"|"z"|"j"|"c"|"g"|"ğ"|"l"|"r"|"m"|"n"|"y"|"p"|"f"|"t"|"s"|"ş"|"ç"|"k"|"h")* =>
+ case c of {
+ ("a"|"ı"|"u"|"o") => "a" ;
+ ("e"|"i"|"ü"|"ö") => "e"
+ } ;
_ => error "harmony2"
} ;
- h : Str =
- case c of {
- ("a"|"ı"|"u"|"o") => "a" ;
- ("e"|"i"|"ü"|"ö") => "e"
- } ;
- suffix : Str =
+ suffix1 : 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"|"ü"|"ö")
+ + ("a"|"e")
+s2 => s1+h+s2 ;
s => s
- }
- in base + suffix ;
+ } ;
+ suffix : Str =
+ case dp 1 base + take 1 suffix1 of {
+ ("ç"|"p"|"ş"|"k"|"f")+("d") => "t"+drop 1 suffix1 ;
+ _ => suffix1
+ } ;
+ in base + buffer + suffix ;
}