diff --git a/src/abstract/Extend.gf b/src/abstract/Extend.gf index 4e641d7df..760114c2a 100644 --- a/src/abstract/Extend.gf +++ b/src/abstract/Extend.gf @@ -203,8 +203,9 @@ abstract Extend = Cat ** { ComplSlashPartLast : VPSlash -> NP -> VP ; -- Romance - DetNPFem : Det -> NP ; - + DetNPMasc : Det -> NP ; + DetNPFem : Det -> NP ; + iFem_Pron : Pron ; -- I (Fem) youFem_Pron : Pron ; -- you (Fem) weFem_Pron : Pron ; -- we (Fem) diff --git a/src/bulgarian/ExtendBul.gf b/src/bulgarian/ExtendBul.gf index c5411b3c7..63cb10234 100644 --- a/src/bulgarian/ExtendBul.gf +++ b/src/bulgarian/ExtendBul.gf @@ -179,6 +179,17 @@ lin lin ApposNP np1 np2 = {s = \\role => np1.s ! role ++ comma ++ np2.s ! role; a = np1.a; p = np1.p} ; + DetNPMasc det = { + s = \\role => let s = det.s ! False ! (AMasc Human) ! role + in case role of { + RObj Dat => "на" ++ s; + RObj WithPrep => with_Word ++ s; + _ => s + } ; + a = {gn = gennum (AMasc Human) (numnnum det.nn); p = P3} ; + p = det.p + } ; + DetNPFem det = { s = \\role => let s = det.s ! False ! AFem ! role in case role of { diff --git a/src/common/ExtendFunctor.gf b/src/common/ExtendFunctor.gf index cabc9730f..f2d85e6d5 100644 --- a/src/common/ExtendFunctor.gf +++ b/src/common/ExtendFunctor.gf @@ -93,9 +93,9 @@ lin CompQS = variants {} ; -- QS -> Comp ; -- (the question is) who sleeps CompVP = variants {} ; -- Ant -> Pol -> VP -> Comp ; -- (she is) to go - + DetNPMasc = DetNP ; DetNPFem = DetNP ; - + iFem_Pron = i_Pron ; -- DEFAULT I (masc) youFem_Pron = youSg_Pron ; -- DEFAULT you (masc) weFem_Pron = we_Pron ; -- DEFAULT we (masc) @@ -112,4 +112,4 @@ lin oper quoted : Str -> Str = \s -> "\"" ++ s ++ "\"" ; ---- TODO bind ; move to Prelude? -} \ No newline at end of file +} diff --git a/src/english/ExtendEng.gf b/src/english/ExtendEng.gf index 2e01da2dd..9f971ac2a 100644 --- a/src/english/ExtendEng.gf +++ b/src/english/ExtendEng.gf @@ -57,7 +57,12 @@ concrete ExtendEng of Extend = s = \\t,a,p,_ => slash.s ! t ! a ! p ! oDir ++ slash.c2 ; c = NPAcc } ; - + + DetNPMasc det = { + s = det.sp ; + a = agrgP3 det.n Masc + } ; + DetNPFem det = { s = det.sp ; a = agrgP3 det.n Fem diff --git a/src/swedish/ExtendSwe.gf b/src/swedish/ExtendSwe.gf index 0cf530a2a..5306a8b40 100644 --- a/src/swedish/ExtendSwe.gf +++ b/src/swedish/ExtendSwe.gf @@ -3,7 +3,7 @@ concrete ExtendSwe of Extend = CatSwe ** ExtendFunctor - [ GenNP, GenModNP, ComplBareVS, CompBareCN, - ApposNP, + ApposNP, DetNPMasc, DetNPFem, StrandRelSlash, EmptyRelSlash, StrandQuestSlash, PassVPSlash, PassAgentVPSlash, UttVPShort, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV, @@ -158,6 +158,16 @@ concrete ExtendSwe of Extend = CatSwe ** lin ApposNP np1 np2 = {s = \\nform => np1.s ! nform ++ comma ++ np2.s ! nform; a = np1.a; isPron = False} ; + DetNPMasc, DetNPFem = \det -> + let + g = utrum ; ---- + m = True ; ---- is this needed for other than Art? + in { + s = \\c => det.sp ! m ! g ; ---- case of det! + a = agrP3 (ngen2gen g) det.n ; + isPron = False + } ; + CompoundN n1 n2 = { s = \\n,s,c => n1.co ++ BIND ++ n2.s ! n ! s ! c ; co = n1.co ++ BIND ++ n2.co ;