diff options
| author | aarne <aarne@chalmers.se> | 2009-06-22 15:39:08 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2009-06-22 15:39:08 +0000 |
| commit | e89fdae2fa1626348d8025824a7469252fa85e42 (patch) | |
| tree | c7d46bbd0494043b4bd6f917a25a7687517d0547 /old-lib/resource/russian/SentenceRus.gf | |
| parent | 3049b59b35b25381a7c6787444165c200d66e08b (diff) | |
next-lib renamed to lib, lib to old-lib
Diffstat (limited to 'old-lib/resource/russian/SentenceRus.gf')
| -rw-r--r-- | old-lib/resource/russian/SentenceRus.gf | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/old-lib/resource/russian/SentenceRus.gf b/old-lib/resource/russian/SentenceRus.gf new file mode 100644 index 000000000..963694673 --- /dev/null +++ b/old-lib/resource/russian/SentenceRus.gf @@ -0,0 +1,115 @@ + +--# -path=.:../abstract:../common:../../prelude + + +concrete SentenceRus of Sentence = CatRus ** open Prelude, ResRus in { + + flags optimize=all_subs ; coding=utf8 ; + + lin + + PredVP Ya tebyaNeVizhu = { s = \\b,clf => + let { + ya = Ya.s ! (case clf of { + ClInfinit => (mkPronForm Acc No NonPoss); + _ => (mkPronForm Nom No NonPoss) + }); + ne = case b of {Pos=>""; Neg=>"не"}; + vizhu = tebyaNeVizhu.s ! clf ! (pgNum Ya.g Ya.n)! Ya.p; + khorosho = tebyaNeVizhu.s2 ; + tebya = tebyaNeVizhu.s3 ! (pgen2gen Ya.g) ! Ya.n + } + in + if_then_else Str tebyaNeVizhu.negBefore + (ya ++ ne ++ vizhu ++ tebya ++ khorosho) + (ya ++ vizhu ++ ne ++ tebya ++ khorosho) + } ; + + + PredSCVP sc vp = { s = \\b,clf => + let { + ne = case b of {Pos=>""; Neg=>"не"}; + vizhu = vp.s ! clf ! (ASg Neut)! P3; + tebya = vp.s3 ! Neut ! Sg + } + in + if_then_else Str vp.negBefore + (sc.s ++ ne ++ vizhu ++ tebya) + (sc.s ++ vizhu ++ ne ++ tebya) + } ; +{- + SlashV2 ivan lubit = { s=\\b,clf => ivan.s ! PF Nom No NonPoss ++ + lubit.s! (getActVerbForm clf (pgen2gen ivan.g) ivan.n ivan.p) ; + s2=lubit.s2; c=lubit.c }; + + SlashVVV2 ivan khotet lubit = + { s=\\b,clf => ivan.s ! PF Nom No NonPoss ++ khotet.s! (getActVerbForm clf (pgen2gen ivan.g) ivan.n ivan.p) ++ lubit.s! VFORM Act VINF ; + s2=lubit.s2; + c=lubit.c }; +-} + AdvSlash slash adv = { + s = \\b,clf => slash.s ! b ! clf ++ adv.s ; + c = slash.c; + s2 = slash.s2; + } ; + + SlashPrep cl p = {s=cl.s; s2=p.s; c=p.c} ; + + --- AR 3/11/2007 + SlashVS ivan vidit tuUlubaeshsya = { + s=\\b,clf => ivan.s ! PF Nom No NonPoss ++ + vidit.s! (getActVerbForm clf (pgen2gen ivan.g) ivan.n ivan.p) ++ + [", что"] ++ tuUlubaeshsya.s ; + s2=tuUlubaeshsya.s2; + c=tuUlubaeshsya.c + } ; + + + + ImpVP inf = {s = \\pol, g,n => + let + dont = case pol of { + Neg => "не" ; + _ => [] + } + in + dont ++ inf.s ! ClImper ! (gNum g n )!P2 ++ + inf.s2++inf.s3!g!n + } ; + + EmbedS s = {s = "что" ++ s.s} ; + -- In Russian "Whether you go" transformed in "go whether you": + EmbedQS qs = {s = qs.s ! QIndir} ; + EmbedVP vp = {s = vp.s2 ++ vp.s!ClInfinit!(ASg Masc) !P3 ++ vp.s3!Masc!Sg} ; + + UseCl t a p cl = {s = case t.t of { + Cond => cl.s! p.p ! ClCondit ; --# notpresent + Pres => cl.s! p.p ! ClIndic Present a.a ; ---- AR work-around 13/12/2007 + _ => cl.s! p.p ! ClIndic (getTense t.t) a.a}}; + + UseQCl t a p qcl= {s = case t.t of { + Cond => qcl.s! p.p ! ClCondit ; --# notpresent + Pres => qcl.s! p.p ! ClIndic Present a.a ; + _ => qcl.s!p.p! ClIndic (getTense t.t) a.a }}; + + UseRCl t a p rcl ={s = \\gn,c,anim => case t.t of { + Cond => [", "] ++ rcl.s! p.p ! ClCondit ! gn !c !anim ; --# notpresent + Pres => [", "] ++ rcl.s! p.p ! ClIndic Present a.a !gn !c !anim; + _ => [", "] ++ rcl.s! p.p ! ClIndic (getTense t.t) a.a !gn !c !anim}}; + + UseSlash t a p cl = { + s = case t.t of { + Cond => cl.s! p.p ! ClCondit ; --# notpresent + Pres => cl.s! p.p ! ClIndic Present a.a ; + _ => cl.s! p.p ! ClIndic (getTense t.t) a.a + } ; + s2 = cl.s2 ; + c = cl.c + }; + + + AdvS a s = {s = a.s ++ "," ++ s.s} ; ---- AR 19/6/2007 + + +} + |
