diff --git a/src/somali/LexiconSom.gf b/src/somali/LexiconSom.gf index 585b1fcc3..107f07f7c 100644 --- a/src/somali/LexiconSom.gf +++ b/src/somali/LexiconSom.gf @@ -9,7 +9,7 @@ lin add_V3 = mkV3 "dar" ku NoPrep ; -- lin alas_Interj = mkInterj "" ; -- lin already_Adv = mkA "" ; lin animal_N = mkN "xayawaan" ; --- lin answer_V2S = mkV2 "" ; +lin answer_V2S = mkV2S "jawaab" ku ; -- lin apartment_N = mkN "" ; -- lin apple_N = mkN "" ; -- lin art_N = mkN "" ; diff --git a/src/somali/ParadigmsSom.gf b/src/somali/ParadigmsSom.gf index 075709608..76bfe1c37 100644 --- a/src/somali/ParadigmsSom.gf +++ b/src/somali/ParadigmsSom.gf @@ -95,6 +95,11 @@ oper mkVV : V -> VVForm -> VV ; -- VV out of an existing V } ; + mkV2S : overload { + mkV2S : Str -> V2S ; -- Predictable verb, no preposition. + mkV2S : Str -> Preposition -> V2S ; -- Predictable verb, preposition given as second argument. + mkV2S : V -> Preposition -> V2S -- Unpredictable verb, preposition. + } ; mkVA : Str -> VA = \s -> lin VA (regV s) ; @@ -107,8 +112,6 @@ oper = \s -> lin V2A (regV s ** {c2 = noPrep}) ; mkV2V : Str -> V2V = \s -> lin V2V (regV s ** {c2 = noPrep}) ; - mkV2S : Str -> V2S - = \s -> lin V2S (regV s ** {c2 = noPrep}) ; mkV2Q : Str -> V2Q = \s -> lin V2Q (regV s ** {c2 = noPrep}) ; @@ -248,6 +251,15 @@ oper in lin VV (dummyV ** {vvtype=b ; s = \\_ => "in"}) } ; + mkV2S = overload { + mkV2S : Str -> V2S -- Predictable verb, no preposition. + = \s -> lin V2S (regV s ** {c2 = noPrep}) ; + mkV2S : Str -> Preposition -> V2S -- Predictable verb, preposition given as second argument. + = \s,pr -> lin V2S (regV s ** {c2 = pr}) ; + mkV2S : V -> Preposition -> V2S -- Unpredictable verb, preposition. + = \v,pr -> lin V2S (v ** {c2 = pr}) + } ; + possPrep : N -> CatSom.Prep = \dhex -> emptyPrep ** { hoostiisa = \\agr => let qnt = PossPron (pronTable ! agr) ; diff --git a/src/somali/VerbSom.gf b/src/somali/VerbSom.gf index ed0940118..4df5e0ca7 100644 --- a/src/somali/VerbSom.gf +++ b/src/somali/VerbSom.gf @@ -66,13 +66,17 @@ lin -- : V3 -> NP -> VPSlash ; -- give (it) to her Slash2V3, Slash3V3 = \v3 -> insertComp (useVc3 v3) ; + + -- : V2S -> S -> VPSlash ; -- answer (to him) that it is good + SlashV2S v2s s = + let vps = useVc v2s ; + subord = SubjS {s="in"} s ; + in vps ** {obj = {s = subord.berri ; a = P3_Prep}} ; + {- -- : V2V -> VP -> VPSlash ; -- beg (her) to go SlashV2V v2v vp = ; - -- : V2S -> S -> VPSlash ; -- answer (to him) that it is good - SlashV2S v2s s = ; - -- : V2Q -> QS -> VPSlash ; -- ask (him) who came SlashV2Q v2q qs = ; -}