diff options
Diffstat (limited to 'old-lib/resource/bulgarian/IdiomBul.gf')
| -rw-r--r-- | old-lib/resource/bulgarian/IdiomBul.gf | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/old-lib/resource/bulgarian/IdiomBul.gf b/old-lib/resource/bulgarian/IdiomBul.gf new file mode 100644 index 000000000..cd22f7908 --- /dev/null +++ b/old-lib/resource/bulgarian/IdiomBul.gf @@ -0,0 +1,65 @@ +concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in { + flags coding=cp1251 ; + + flags optimize=all_subs ; + + lin + ImpersCl vp = mkClause [] (agrP3 (GSg Neut)) vp ; + GenericCl vp = mkClause "някой" (agrP3 (GSg Neut)) vp ; + + CleftNP np rs = + mkClause (np.s ! RSubj) + {gn=GSg Neut; p=np.a.p} + (insertObj (\\_ => thisRP ! np.a.gn ++ rs.s ! np.a) (predV verbBe)) ; + + CleftAdv ad s = {s = \\t,a,p,o => case p of {Pos=>[]; Neg=>"не"} ++ ad.s ++ s.s } ; + + ExistNP np = + { s = \\t,a,p,o => + let verb = case p of { + Pos => mkV186 "имам" ; + Neg => mkV186 "нямам" + } ; + + agr=agrP3 (GSg Neut); + + present = verb ! (VPres (numGenNum agr.gn) agr.p) ; + aorist = verb ! (VAorist (numGenNum agr.gn) agr.p) ; + perfect = verb ! (VPerfect (aform agr.gn Indef (RObj Acc))) ; + + auxPres = auxBe ! VPres (numGenNum agr.gn) agr.p ; + auxAorist = auxBe ! VAorist (numGenNum agr.gn) agr.p ; + auxCondS = auxWould ! VAorist (numGenNum agr.gn) agr.p ; + + v : {aux1:Str; aux2:Str; main:Str} + = case <t,a> of { + <Pres,Simul> => {aux1=[]; aux2=[]; main=present} ; + <Pres,Anter> => {aux1=[]; aux2=auxPres; main=perfect} ; + <Past,Simul> => {aux1=[]; aux2=[]; main=aorist} ; + <Past,Anter> => {aux1=[]; aux2=auxAorist; main=perfect} ; + <Fut, Simul> => {aux1="ще"; aux2=[]; main=present} ; + <Fut, Anter> => {aux1="ще"++auxPres; aux2=[]; main=perfect} ; + <Cond,_> => {aux1=auxCondS; aux2=[]; main=perfect} + } ; + + in case o of { + Main => v.aux1 ++ v.main ++ v.aux2 ++ np.s ! RObj Acc ; + Inv => np.s ! RObj Acc ++ v.aux1 ++ v.main ++ v.aux2 ; + Quest => v.aux1 ++ v.main ++ "ли" ++ v.aux2 ++ np.s ! RObj Acc + } + } ; + + ExistIP ip = + mkQuestion {s = ip.s ! RSubj} + (mkClause "тук" (agrP3 ip.gn) (predV verbBe)) ; + + ProgrVP vp = { + s = \\_ => vp.s ! Imperf ; + ad = vp.ad ; + compl = vp.compl ; + vtype = vp.vtype + } ; + + ImpPl1 vp = {s = "нека" ++ daComplex vp ! Perf ! {gn = GPl ; p = P1}} ; +} + |
