1
0
forked from GitHub/gf-rgl

various extensions in Turkish

This commit is contained in:
Krasimir Angelov
2024-07-08 21:58:00 +02:00
parent f36bbade45
commit 65a05d223b
13 changed files with 112 additions and 71 deletions

View File

@@ -18,6 +18,6 @@ concrete AdverbTur of Adverb = CatTur ** open ResTur, Prelude in {
SubjS s1 s2 = {s = s1.s ++ s2.subord} ; SubjS s1 s2 = {s = s1.s ++ s2.subord} ;
PositAdvAdj _ = variants {} ; PositAdvAdj a = {s = a.adv} ;
} }

View File

@@ -1,5 +1,6 @@
--# -path=.:../abstract:../common:prelude --# -path=.:../abstract:../common:prelude
abstract AllTurAbs = abstract AllTurAbs =
Lang Lang,
Extend
** {} ; ** {} ;

View File

@@ -7,15 +7,15 @@ concrete CatTur of Cat = CommonX - [CAdv,AdN] ** open ResTur, HarmonyTur, Prelud
S = {s, subord : Str} ; S = {s, subord : Str} ;
Cl = {s : Tense => Str; subord : Str} ; Cl = {s : Tense => Str; subord : Str} ;
Imp = {s : Number => Str} ;
-- Noun -- Noun
CN = {s : Number => Case => Str; gen : Number => Agr => Str; h : Harmony} ; CN = {s : Number => Case => Str; gen : Number => Agr => Str; h : Harmony} ;
NP = {s : Case => Str ; h : Harmony; a : Agr} ; NP = {s : Case => Str ; h : Harmony; a : Agr} ;
VP = Verb ; VP = Verb ** {compl : Str} ;
VPSlash = VP ** {c : Prep} ; VPSlash = Verb ** {compl : Str; c : Prep} ;
Comp = VP ; Comp = Verb ;
Pron = ResTur.Pron ; Pron = ResTur.Pron ;
Det = {s : Str; n : Number; useGen : UseGen} ; Det = {s : Str; n : Number; useGen : UseGen} ;
@@ -60,5 +60,6 @@ concrete CatTur of Cat = CommonX - [CAdv,AdN] ** open ResTur, HarmonyTur, Prelud
linref linref
V = \v -> v.s ! VInfinitive ; V = \v -> v.s ! VInfinitive ;
V2 = \v -> v.s ! VInfinitive ++ v.c.s ; V2 = \v -> v.s ! VInfinitive ++ v.c.s ;
VP = \vp -> vp.compl ++ vp.s ! VInfinitive ;
} }

View File

@@ -71,7 +71,8 @@ lin
Gen => "tamlayan" ; Gen => "tamlayan" ;
Loc => "bulunma" ; Loc => "bulunma" ;
Ablat => "ayrılma" ; Ablat => "ayrılma" ;
Abess _ => "" Abess _ => "" ;
Instr => ""
}) ; }) ;
s3= "" s3= ""
} ; } ;
@@ -104,7 +105,12 @@ oper
heading2 ("Gelecek zaman") ++ heading2 ("Gelecek zaman") ++
finite VFuture ++ finite VFuture ++
heading2 ("Emir kipi") ++ heading2 ("Emir kipi") ++
paragraph (v.s ! VImperative) ++ frameTable (
tr (th "tekil" ++
th "çoğul") ++
tr (td (v.s ! VImperative Sg) ++
td (v.s ! VImperative Pl))
) ++
heading2 ("Eylemlik") ++ heading2 ("Eylemlik") ++
paragraph (v.s ! VInfinitive) ++ paragraph (v.s ! VInfinitive) ++
heading2 ("Ulaç") ++ heading2 ("Ulaç") ++

View File

@@ -9,4 +9,6 @@ concrete ExtendTur of Extend = CatTur ** open ResTur in {
TPastSimple = {s = []} ** {t = Past} ; --# notpresent TPastSimple = {s = []} ** {t = Past} ; --# notpresent
PositAdVAdj a = {s = a.s ! Sg ! Nom} ;
} }

View File

@@ -10,7 +10,11 @@ concrete NounTur of Noun = CatTur ** open ResTur, SuffixTur, HarmonyTur, Prelude
case det.useGen of { case det.useGen of {
NoGen => \\c => det.s ++ cn.s ! det.n ! c ; NoGen => \\c => det.s ++ cn.s ! det.n ! c ;
YesGen a => \\c => det.s ++ cn.gen ! det.n ! a ; YesGen a => \\c => det.s ++ cn.gen ! det.n ! a ;
UseIndef => \\c => det.s ++ cn.s ! det.n ! c UseIndef => \\c => let c' = case c of {
Acc => Nom ;
c => c
}
in det.s ++ cn.s ! det.n ! c'
} ; } ;
h = cn.h ; h = cn.h ;
a = agrP3 det.n a = agrP3 det.n
@@ -104,6 +108,11 @@ concrete NounTur of Noun = CatTur ** open ResTur, SuffixTur, HarmonyTur, Prelude
s = \\_,_ => "TODO"; s = \\_,_ => "TODO";
gen = \\_, _ => "TODO"; gen = \\_, _ => "TODO";
h = f.h h = f.h
};
Instr => {
s = \\_,_ => "TODO";
gen = \\_, _ => "TODO";
h = f.h
} }
}; };

View File

@@ -85,14 +85,14 @@ resource ParadigmsTur = open
mkV2 = overload { mkV2 = overload {
-- sormak -- sormak
mkV2 : V -> V2 = \verb -> verb ** lin V2 {c = noPrep} ; mkV2 : V -> V2 = \verb -> verb ** lin V2 {c = mkPrep [] Acc} ;
-- (bir şeyden) korkmak -- (bir şeyden) korkmak
mkV2 : V -> Prep -> V2 = \verb,c -> verb ** lin V2 {c = c} ; mkV2 : V -> Prep -> V2 = \verb,c -> verb ** lin V2 {c = c} ;
} ; } ;
mkV3 = overload { mkV3 = overload {
-- (birine bir şeyi) satmak -- (birine bir şeyi) satmak
mkV3 : V -> V3 = \verb -> verb ** lin V3 {c1 = noPrep; c2 = noPrep} ; mkV3 : V -> V3 = \verb -> verb ** lin V3 {c1 = mkPrep [] Acc; c2 = mkPrep [] Dat} ;
-- (biri ile bir şeyi) konuşmak -- (biri ile bir şeyi) konuşmak
mkV3 : V -> Prep -> Prep -> V3 = mkV3 : V -> Prep -> Prep -> V3 =
\verb,c1,c2 -> verb ** lin V3 {c1 = c1; c2 = c2} ; \verb,c1,c2 -> verb ** lin V3 {c1 = c1; c2 = c2} ;
@@ -128,7 +128,7 @@ resource ParadigmsTur = open
-- worst case function -- worst case function
-- parameters: all singular cases of base, base of genitive table, plural -- parameters: all singular cases of base, base of genitive table, plural
-- form of base and harmony of base -- form of base and harmony of base
mkNoun : (nom,acc,dat,gen,loc,abl,abessPos,abessNeg,gens,plural : Str) mkNoun : (nom,acc,dat,gen,loc,abl,abessPos,abessNeg,instr,gens,plural : Str)
-> Harmony -> Harmony
-> N ; -> N ;
@@ -172,6 +172,8 @@ resource ParadigmsTur = open
mkA : Str -> Str -> HarVowP -> A ; mkA : Str -> Str -> HarVowP -> A ;
} ; } ;
irregAdv : A -> Str -> A ;
mkAS : A -> AS ; mkAS : A -> AS ;
mkAV : A -> AV ; mkAV : A -> AV ;
@@ -284,8 +286,10 @@ resource ParadigmsTur = open
addSuffix pastBase pastHar (verbSuffixes ! agr) ; addSuffix pastBase pastHar (verbSuffixes ! agr) ;
VFuture agr => VFuture agr =>
addSuffix futureTable futHar (verbSuffixes ! agr) ; addSuffix futureTable futHar (verbSuffixes ! agr) ;
VImperative => VImperative Sg =>
base ; base ;
VImperative Pl =>
addSuffix base har p2PlImperSuffix ;
VInfinitive => VInfinitive =>
inf ; inf ;
Gerund _ Acc => Gerund _ Acc =>
@@ -321,7 +325,7 @@ resource ParadigmsTur = open
} ; } ;
-- Implementation of noun paradigms -- Implementation of noun paradigms
mkNoun sn sa sd sg sl sabl sgabPos sgabNeg sgs pln har = mkNoun sn sa sd sg sl sabl sgabPos sgabNeg si sgs pln har =
let plHar = getHarmony pln ; let plHar = getHarmony pln ;
in in
lin N { lin N {
@@ -334,7 +338,8 @@ resource ParadigmsTur = open
Loc => sl ; Loc => sl ;
Ablat => sabl ; Ablat => sabl ;
Abess Pos => sgabPos ; Abess Pos => sgabPos ;
Abess Neg => sgabNeg Abess Neg => sgabNeg ;
Instr => si
} ; } ;
Pl => table { Pl => table {
Abess Pos => addSuffix sgabPos plHar plSuffix; Abess Pos => addSuffix sgabPos plHar plSuffix;
@@ -364,15 +369,16 @@ resource ParadigmsTur = open
in in
mkNoun sn mkNoun sn
(addSuffix sg irHar accSuffix) (addSuffix sg irHar accSuffix)
(addSuffix sg irHar datSuffix) (addSuffix sg irHar datSuffix)
(addSuffix sg har genSuffix) (addSuffix sg har genSuffix)
(addSuffix sn har locSuffix) (addSuffix sn har locSuffix)
(addSuffix sn har ablatSuffix) (addSuffix sn har ablatSuffix)
(addSuffix sn har abessPosSuffix) (addSuffix sn har abessPosSuffix)
(addSuffix sn har abessNegSuffix) (addSuffix sn har abessNegSuffix)
sg (addSuffix sn har instrSuffix)
pln sg
har ; pln
har ;
regN sn = regN sn =
let har = getHarmony sn ; let har = getHarmony sn ;
@@ -382,14 +388,15 @@ resource ParadigmsTur = open
mkNoun sn mkNoun sn
(addSuffix bt har accSuffix) (addSuffix bt har accSuffix)
(addSuffix bt har datSuffix) (addSuffix bt har datSuffix)
(addSuffix bt har genSuffix) (addSuffix bt har genSuffix)
(addSuffix bt har locSuffix) (addSuffix bt har locSuffix)
(addSuffix bt har ablatSuffix) (addSuffix bt har ablatSuffix)
(addSuffix bt har abessPosSuffix) (addSuffix bt har abessPosSuffix)
(addSuffix bt har abessNegSuffix) (addSuffix bt har abessNegSuffix)
(bt ! Soft) (addSuffix bt har instrSuffix)
pln (bt ! Soft)
har ; pln
har ;
regPN sn = makePN sn sn ; regPN sn = makePN sn sn ;
@@ -405,6 +412,7 @@ resource ParadigmsTur = open
(addSuffix bn har ablatSuffix) (addSuffix bn har ablatSuffix)
(addSuffix bn har abessPosSuffix) (addSuffix bn har abessPosSuffix)
(addSuffix bn har abessNegSuffix) (addSuffix bn har abessNegSuffix)
(addSuffix bn har instrSuffix)
by by
pln pln
har ; har ;
@@ -446,7 +454,8 @@ resource ParadigmsTur = open
Loc => addSuffix sn sgHar locSuffixN ; --tereyağında Loc => addSuffix sn sgHar locSuffixN ; --tereyağında
Ablat => addSuffix sn sgHar ablatSuffixN ; --tereyağından Ablat => addSuffix sn sgHar ablatSuffixN ; --tereyağından
Abess Pos => sgAbessPos ; --tereyağlı Abess Pos => sgAbessPos ; --tereyağlı
Abess Neg => sgAbessNeg --tereyağsız Abess Neg => sgAbessNeg ; --tereyağsız
Instr => addSuffix sn sgHar instrSuffix
} ; } ;
Pl => table { Pl => table {
Nom => pn ;--tereyağları Nom => pn ;--tereyağları
@@ -456,7 +465,8 @@ resource ParadigmsTur = open
Loc => addSuffix pn plHar locSuffixN ; --tereyağlarında Loc => addSuffix pn plHar locSuffixN ; --tereyağlarında
Ablat => addSuffix pn plHar ablatSuffixN ; --tereyağlarından Ablat => addSuffix pn plHar ablatSuffixN ; --tereyağlarından
Abess Pos => addSuffix sgAbessPos plHar abessPosSuffix ; --tereyağlılar Abess Pos => addSuffix sgAbessPos plHar abessPosSuffix ; --tereyağlılar
Abess Neg => addSuffix sgAbessNeg plHar abessNegSuffix --tereyağsızlar Abess Neg => addSuffix sgAbessNeg plHar abessNegSuffix ; --tereyağsızlar
Instr => addSuffix pn plHar instrSuffix
} }
} ; } ;
gen = case ct of { gen = case ct of {
@@ -510,6 +520,8 @@ resource ParadigmsTur = open
mkA : (base, base1 : Str) -> (ih_har : HarVowP) -> A = \base,base1,ih_har -> (irregN_h base base ih_har) ** lin A {adv = addSuffix base (mkHar ih_har (getHarConP base)) adjAdvSuffix}; mkA : (base, base1 : Str) -> (ih_har : HarVowP) -> A = \base,base1,ih_har -> (irregN_h base base ih_har) ** lin A {adv = addSuffix base (mkHar ih_har (getHarConP base)) adjAdvSuffix};
} ; } ;
irregAdv : A -> Str -> A = \a,adv -> a ** {adv = adv};
mkAS v = v ; mkAS v = v ;
mkAV v = v ; mkAV v = v ;

View File

@@ -5,9 +5,9 @@ concrete PhraseTur of Phrase = CatTur ** open Prelude, ResTur in {
-- The following are utterly untested. -- The following are utterly untested.
-- Currently, they should be treated as just implementation stubs. -- Currently, they should be treated as just implementation stubs.
UttQS qs = {s = qs.s} ; UttQS qs = {s = qs.s} ;
UttImpSg pol imp = {s = imp.s} ; UttImpSg pol imp = {s = imp.s ! Sg} ;
UttImpPl pol imp = {s = imp.s} ; UttImpPl pol imp = {s = imp.s ! Pl} ;
UttImpPol pol imp = {s = imp.s} ; UttImpPol pol imp = {s = imp.s ! Pl} ;
UttIP ip = {s = ip.s} ; UttIP ip = {s = ip.s} ;
UttIAdv iadv = iadv ; UttIAdv iadv = iadv ;
UttCard n = {s = n.s ! Sg ! Nom} ; UttCard n = {s = n.s ! Sg ! Nom} ;

View File

@@ -8,7 +8,7 @@ resource ResTur = ParamX ** open Prelude, Predef, HarmonyTur in {
coding=utf8 ; coding=utf8 ;
param param
Case = Nom | Acc | Dat | Gen | Loc | Ablat | Abess Polarity ; Case = Nom | Acc | Dat | Gen | Loc | Ablat | Abess Polarity | Instr ;
Species = Indef | Def ; Species = Indef | Def ;
Contiguity = Con | Sep ; --Concatenate or Separate Contiguity = Con | Sep ; --Concatenate or Separate
@@ -41,7 +41,7 @@ resource ResTur = ParamX ** open Prelude, Predef, HarmonyTur in {
| VProg Agr | VProg Agr
| VPast Agr | VPast Agr
| VFuture Agr | VFuture Agr
| VImperative | VImperative Number
| VInfinitive | VInfinitive
| Gerund Number Case | Gerund Number Case
| VNoun Number Case | VNoun Number Case
@@ -63,8 +63,8 @@ resource ResTur = ParamX ** open Prelude, Predef, HarmonyTur in {
CardOrd = NCard | NOrd ; CardOrd = NCard | NOrd ;
oper oper
mkPron : (ben,beni,bana,banin,bende,benden,benli,bensiz:Str) -> Number -> Person -> Pron = mkPron : (ben,beni,bana,banin,bende,benden,benli,bensiz,benimle:Str) -> Number -> Person -> Pron =
\ben,beni,bana,benim,bende,benden,benli,bensiz,n,p -> { \ben,beni,bana,benim,bende,benden,benli,bensiz,benimle,n,p -> {
s = table { s = table {
Nom => ben ; Nom => ben ;
Acc => beni ; Acc => beni ;
@@ -73,7 +73,8 @@ resource ResTur = ParamX ** open Prelude, Predef, HarmonyTur in {
Loc => bende ; Loc => bende ;
Ablat => benden ; Ablat => benden ;
Abess Pos => benli ; Abess Pos => benli ;
Abess Neg => bensiz Abess Neg => bensiz ;
Instr => benimle
} ; } ;
h = getHarmony ben ; h = getHarmony ben ;
a = {n=n; p=p} ; a = {n=n; p=p} ;
@@ -92,15 +93,15 @@ resource ResTur = ParamX ** open Prelude, Predef, HarmonyTur in {
a = {n = n; p = p} a = {n = n; p = p}
} ; } ;
mkClause : Str -> Agr -> Verb -> {s : Tense => Str; subord : Str} = mkClause : Str -> Agr -> Str -> Verb -> {s : Tense => Str; subord : Str} =
\np, a, v -> { \np, a, compl, v -> {
s = table { s = table {
Pres => np ++ v.s ! VPres a ; Pres => np ++ compl ++ v.s ! VPres a ;
Past => np ++ v.s ! VPast a ; Past => np ++ compl ++ v.s ! VPast a ;
Fut => np ++ v.s ! VFuture a ; Fut => np ++ compl ++ v.s ! VFuture a ;
Cond => "TODO" Cond => "TODO"
} ; } ;
subord = np ++ v.s ! VNoun a.n Nom subord = np ++ compl ++ v.s ! VNoun a.n Nom
} ; } ;
mkDet : Str -> Number -> UseGen -> {s : Str; n : Number; useGen : UseGen} = mkDet : Str -> Number -> UseGen -> {s : Str; n : Number; useGen : UseGen} =
@@ -109,7 +110,7 @@ resource ResTur = ParamX ** open Prelude, Predef, HarmonyTur in {
attachMe : Verb -> {s : Str} = attachMe : Verb -> {s : Str} =
\v -> \v ->
let let
s : Str = v.s ! VImperative s : Str = v.s ! VImperative Sg
in in
case s of { case s of {
(_ + #vowel + _ )* + (_ + #frontVowel + _) => ss (s ++ "me") ; (_ + #vowel + _ )* + (_ + #frontVowel + _) => ss (s ++ "me") ;

View File

@@ -2,7 +2,7 @@ concrete SentenceTur of Sentence = CatTur ** open Prelude, ResTur in {
lin lin
PredVP np vp = mkClause (np.s ! Nom) np.a vp ; PredVP np vp = mkClause (np.s ! Nom) np.a vp.compl vp ;
PredSCVP sc vp = variants {} ; PredSCVP sc vp = variants {} ;
@@ -24,7 +24,7 @@ concrete SentenceTur of Sentence = CatTur ** open Prelude, ResTur in {
EmbedQS _ = variants {} ; EmbedQS _ = variants {} ;
EmbedS _ = variants {} ; EmbedS _ = variants {} ;
ImpVP _ = variants {} ; ImpVP vp = {s = \\n => vp.compl ++ vp.s ! VImperative n} ;
AdvS _ _ = variants {} ; AdvS _ _ = variants {} ;

View File

@@ -8,25 +8,25 @@ concrete StructuralTur of Structural = CatTur **
lin lin
he_Pron = he_Pron =
mkPron "o" "onu" "ona" "onun" "onda" "ondan" "onlu" "onsuz" Sg P3 ; mkPron "o" "onu" "ona" "onun" "onda" "ondan" "onlu" "onsuz" "onunlu" Sg P3 ;
i_Pron = i_Pron =
mkPron "ben" "beni" "bana" "benim" mkPron "ben" "beni" "bana" "benim"
"bende" "benden" "benli" "bensiz" "bende" "benden" "benli" "bensiz" "benimle"
Sg P1 ; Sg P1 ;
it_Pron = it_Pron =
mkPron "o" "onu" "ona" "onun" "onda" "ondan" "onlu" "onsuz" Sg P3 ; mkPron "o" "onu" "ona" "onun" "onda" "ondan" "onlu" "onsuz" "onunlu" Sg P3 ;
she_Pron = she_Pron =
mkPron "o" "onu" "ona" "onun" "onda" "ondan" "onlu" "onsuz" Sg P3 ; mkPron "o" "onu" "ona" "onun" "onda" "ondan" "onlu" "onsuz" "onunlu" Sg P3 ;
that_Quant = that_Quant =
mkQuant "o" ; mkQuant "o" ;
they_Pron = they_Pron =
mkPron "onlar" "onları" "onlara" "onların" "onlarda" "onlardan" "onlarlı" mkPron "onlar" "onları" "onlara" "onların" "onlarda" "onlardan" "onlarlı"
"onlarsız" Pl P3 ; "onlarsız" "onlarınli" Pl P3 ;
this_Quant = this_Quant =
mkQuant "bu" ; mkQuant "bu" ;
@@ -35,16 +35,16 @@ concrete StructuralTur of Structural = CatTur **
mkQuant "hiç" ; mkQuant "hiç" ;
we_Pron = we_Pron =
mkPron "biz" "bizi" "bize" "bizim" "bizde" "bizden" "bizli" "bizsiz" Pl P1 ; mkPron "biz" "bizi" "bize" "bizim" "bizde" "bizden" "bizli" "bizsiz" "bizimle" Pl P1 ;
youSg_Pron = youSg_Pron =
mkPron "sen" "seni" "sana" "senin" "sende" "senden" "senli" "sensiz" Sg P2 ; mkPron "sen" "seni" "sana" "senin" "sende" "senden" "senli" "sensiz" "seninle" Sg P2 ;
youPl_Pron = youPl_Pron =
mkPron "siz" "sizi" "size" "sizin" "sizde" "sizden" "sizli" "sizsiz" Pl P2 ; mkPron "siz" "sizi" "size" "sizin" "sizde" "sizden" "sizli" "sizsiz" "sizinle" Pl P2 ;
youPol_Pron = youPol_Pron =
mkPron "siz" "sizi" "size" "sizin" "sizde" "sizden" "sizli" "sizsiz" Pl P2 ; mkPron "siz" "sizi" "size" "sizin" "sizde" "sizden" "sizli" "sizsiz" "sizinle" Pl P2 ;
with_Prep = with_Prep =
mkPrep [] (Abess Pos) ; mkPrep [] (Abess Pos) ;

View File

@@ -62,6 +62,7 @@ resource SuffixTur = open Prelude, Predef, ResTur, HarmonyTur in {
ablatSuffix : Suffix = regSuffix "den" "den" ; ablatSuffix : Suffix = regSuffix "den" "den" ;
abessPosSuffix : Suffix = regSuffix "li" "li" ; abessPosSuffix : Suffix = regSuffix "li" "li" ;
abessNegSuffix : Suffix = regSuffix "siz" "siz" ; abessNegSuffix : Suffix = regSuffix "siz" "siz" ;
instrSuffix : Suffix = regSuffix "la" "la" ;
-- following 4 suffixes has other forms used after genSgP3Suffix -- following 4 suffixes has other forms used after genSgP3Suffix
accSuffixN : Suffix = regSuffix "i" "ni" ; accSuffixN : Suffix = regSuffix "i" "ni" ;
datSuffixN : Suffix = regSuffix "e" "ne" ; datSuffixN : Suffix = regSuffix "e" "ne" ;
@@ -96,6 +97,8 @@ resource SuffixTur = open Prelude, Predef, ResTur, HarmonyTur in {
p2PlVerbalSuffix : Suffix = regSuffix21 "siniz" "niz" ; p2PlVerbalSuffix : Suffix = regSuffix21 "siniz" "niz" ;
p3PlVerbalSuffix : Suffix = regSuffix "ler" "ler" ; p3PlVerbalSuffix : Suffix = regSuffix "ler" "ler" ;
p2PlImperSuffix : Suffix = regSuffix "in" "yin" ;
p1SgAlethicCopulaSuffix : Suffix = regSuffix "dim" "ydim" ; p1SgAlethicCopulaSuffix : Suffix = regSuffix "dim" "ydim" ;
p2SgAlethicCopulaSuffix : Suffix = regSuffix "din" "ydin" ; p2SgAlethicCopulaSuffix : Suffix = regSuffix "din" "ydin" ;
p3SgAlethicCopulaSuffix : Suffix = regSuffix "di" "ydi" ; p3SgAlethicCopulaSuffix : Suffix = regSuffix "di" "ydi" ;
@@ -127,7 +130,8 @@ resource SuffixTur = open Prelude, Predef, ResTur, HarmonyTur in {
Loc => locSuffix ; Loc => locSuffix ;
Ablat => ablatSuffix ; Ablat => ablatSuffix ;
Abess Pos => abessPosSuffix ; Abess Pos => abessPosSuffix ;
Abess Neg => abessNegSuffix Abess Neg => abessNegSuffix ;
Instr => instrSuffix
} ; } ;
genSuffixes : Agr => Suffix = genSuffixes : Agr => Suffix =

View File

@@ -1,8 +1,8 @@
concrete VerbTur of Verb = CatTur ** open Prelude, ResTur, SuffixTur, HarmonyTur in { concrete VerbTur of Verb = CatTur ** open Prelude, ResTur, SuffixTur, HarmonyTur in {
lin lin
UseV v = v ; UseV v = lin VP (v ** {compl = []}) ;
SlashV2a v = lin VP v ; SlashV2a v = v ** {compl = []} ;
Slash2V3 v = variants {} ; Slash2V3 v = variants {} ;
Slash3V3 v = variants {} ; Slash3V3 v = variants {} ;
@@ -13,20 +13,20 @@ concrete VerbTur of Verb = CatTur ** open Prelude, ResTur, SuffixTur, HarmonyTur
SlashVV v = variants {} ; SlashVV v = variants {} ;
SlashV2VNP = variants {} ; SlashV2VNP = variants {} ;
ComplSlash vps np = { ComplSlash vps np = vps ** {
s = \\ vf => vps.c.s ++ np.s ! vps.c.c ++ vps.s ! vf ; compl = vps.compl ++ vps.c.s ++ np.s ! vps.c.c ;
} ; } ;
-- TODO: test this and fix. -- TODO: test this and fix.
ComplVS vs s = { ComplVS vs s = vs ** {
s = \\vf => s.subord ++ vs.s ! vf compl = s.subord
} ; } ;
ComplVA _ _ = variants {} ; ComplVA _ _ = variants {} ;
ComplVV _ _ = variants {} ; ComplVV _ _ = variants {} ;
ComplVQ _ _ = variants {} ; ComplVQ _ _ = variants {} ;
UseComp comp = comp ; UseComp comp = comp ** {compl = []} ;
CompCN _ = variants {} ; CompCN _ = variants {} ;
CompNP ap = lin VP { CompNP ap = lin VP {
@@ -66,8 +66,13 @@ concrete VerbTur of Verb = CatTur ** open Prelude, ResTur, SuffixTur, HarmonyTur
ReflVP = variants {} ; ReflVP = variants {} ;
AdvVP = variants {} ; AdvVP vp adv = vp ** {
AdVVP = variants {} ; compl = vp.compl ++ adv.s ;
} ;
AdVVP adv vp = vp ** {
s = \\vf => adv.s ++ vp.s ! vf ;
} ;
PassV2 = variants {} ; PassV2 = variants {} ;
} }