diff --git a/src/turkish/CatTur.gf b/src/turkish/CatTur.gf index 991810edf..dfac6989f 100644 --- a/src/turkish/CatTur.gf +++ b/src/turkish/CatTur.gf @@ -14,7 +14,7 @@ concrete CatTur of Cat = CommonX - [CAdv,AdN] ** open ResTur, HarmonyTur, Prelud NP = {s : Case => Str ; h : Harmony; a : Agr} ; VP = {s : VForm => Str; compl : Str} ; - VPSlash = {s : VForm => Str; compl : Str; c : Prep} ; + VPSlash = Verb ** {compl : Str; c : Prep} ; Comp = {s : VForm => Str; compl : Str} ; Pron = ResTur.Pron ; diff --git a/src/turkish/ExtendTur.gf b/src/turkish/ExtendTur.gf index abe08d908..e8a2689e2 100644 --- a/src/turkish/ExtendTur.gf +++ b/src/turkish/ExtendTur.gf @@ -1,4 +1,4 @@ -concrete ExtendTur of Extend = CatTur ** open ResTur in { +concrete ExtendTur of Extend = CatTur ** open ResTur, SuffixTur, Predef in { lin GenModNP num np cn = { @@ -13,4 +13,14 @@ concrete ExtendTur of Extend = CatTur ** open ResTur in { PositAdVAdj a = {s = a.s ! Sg ! Nom} ; + PassVPSlash vps = { + s = mkVerbForms { + s = vps.stems ! VPass ++ BIND ++ suffixStr vps.h infinitiveSuffix ; + stems = \\_ => vps.stems ! VPass ; + aoristType = vps.aoristType ; + h = vps.h ; + } ; + compl = [] + } ; + } diff --git a/src/turkish/ParadigmsTur.gf b/src/turkish/ParadigmsTur.gf index bb95f1f71..8745971d3 100644 --- a/src/turkish/ParadigmsTur.gf +++ b/src/turkish/ParadigmsTur.gf @@ -243,17 +243,23 @@ resource ParadigmsTur = open case getHarConP base of { SVow => tk 1 base ; _ => softBase - } + } ; + h = getHarmony base in lin V { s = inf ; stems = table { VBase Hard => base ; VBase Soft => softBase ; VProg => progBase ; - VFut => futBase + VFuture => futBase ; + VPass => case last base of { + #vowel => base + "n" ; + "l" => base + suffixStr h passiveInSuffix ; + _ => base + suffixStr h passiveIlSuffix + } } ; aoristType = aoristType ; - h = getHarmony base + h = h } ; -- Implementation of noun paradigms diff --git a/src/turkish/ResTur.gf b/src/turkish/ResTur.gf index a8daadbf8..ae95c9acb 100644 --- a/src/turkish/ResTur.gf +++ b/src/turkish/ResTur.gf @@ -47,6 +47,7 @@ resource ResTur = ParamX ** open Prelude, Predef, HarmonyTur, SuffixTur in { VBase Softness | VProg | VFuture + | VPass ; param diff --git a/src/turkish/SuffixTur.gf b/src/turkish/SuffixTur.gf index 695410fff..6ee92c0ab 100644 --- a/src/turkish/SuffixTur.gf +++ b/src/turkish/SuffixTur.gf @@ -120,6 +120,9 @@ resource SuffixTur = open Prelude, Predef, HarmonyTur in { infinitiveSuffix : Suffix = regSuffix "mek" "mek" ; + passiveInSuffix : Suffix = regSuffix "in" "n" ; + passiveIlSuffix : Suffix = regSuffix "il" "l" ; + -- Ordinal suffix for numbers ordNumSuffix : Suffix = regSuffix21 "inci" "nci" ; -- Suffix for deriving adverb from a adjective diff --git a/src/turkish/VerbTur.gf b/src/turkish/VerbTur.gf index b00490bbc..6d3d2dcc4 100644 --- a/src/turkish/VerbTur.gf +++ b/src/turkish/VerbTur.gf @@ -2,7 +2,7 @@ concrete VerbTur of Verb = CatTur ** open Prelude, ResTur, SuffixTur, HarmonyTur lin UseV v = {s = mkVerbForms v; compl = []} ; - SlashV2a v = {s = mkVerbForms v; compl = []; c = v.c} ; + SlashV2a v = v ** {compl = []} ; Slash2V3 v = variants {} ; Slash3V3 v = variants {} ; @@ -13,7 +13,8 @@ concrete VerbTur of Verb = CatTur ** open Prelude, ResTur, SuffixTur, HarmonyTur SlashVV v = variants {} ; SlashV2VNP = variants {} ; - ComplSlash vps np = vps ** { + ComplSlash vps np = { + s = mkVerbForms vps ; compl = vps.compl ++ vps.c.s ++ np.s ! vps.c.c ; } ; @@ -111,7 +112,15 @@ concrete VerbTur of Verb = CatTur ** open Prelude, ResTur, SuffixTur, HarmonyTur compl = vp.compl ++ adv.s ; } ; - PassV2 = variants {} ; + PassV2 v = { + s = mkVerbForms { + s = v.stems ! VPass ++ BIND ++ suffixStr v.h infinitiveSuffix ; + stems = \\_ => v.stems ! VPass ; + aoristType = v.aoristType ; + h = v.h ; + } ; + compl = [] + } ; oper olmak_V : V = lin V {