diff options
Diffstat (limited to 'old-lib/resource/russian/VerbRus.gf')
| -rw-r--r-- | old-lib/resource/russian/VerbRus.gf | 289 |
1 files changed, 0 insertions, 289 deletions
diff --git a/old-lib/resource/russian/VerbRus.gf b/old-lib/resource/russian/VerbRus.gf deleted file mode 100644 index 193800034..000000000 --- a/old-lib/resource/russian/VerbRus.gf +++ /dev/null @@ -1,289 +0,0 @@ - ---# -path=.:../abstract:../common:../../prelude - -concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in { - --- 1.4 additions by AR 17/6/2008 - - flags optimize=all_subs ; coding=utf8 ; - lin - CompNP masha = - { s=\\clf,gn,p => case clf of - { - (ClIndic Present _) => masha.s ! (mkPronForm Nom No NonPoss) ; - (ClIndic PastRus _) => case gn of - { (ASg Fem) =>"была"++masha.s ! (mkPronForm Inst No NonPoss); - (ASg Masc) =>"был" ++ masha.s!(mkPronForm Inst No NonPoss); - (ASg Neut) =>"было" ++ masha.s!(mkPronForm Inst No NonPoss); - APl => "были" ++ masha.s ! (mkPronForm Inst No NonPoss) - }; - (ClIndic Future _) => case gn of - { APl => case p of - { P3 => "будут"++masha.s ! (mkPronForm Inst No NonPoss); - P2 => "будете"++masha.s !(mkPronForm Inst No NonPoss); - P1 => "будем"++masha.s ! (mkPronForm Inst No NonPoss) - }; - (ASg _) => case p of - { P3=>"будет"++masha.s!(mkPronForm Inst No NonPoss) ; - P2 => "будешь"++ masha.s ! (mkPronForm Inst No NonPoss) ; - P1=> "буду"++ masha.s ! (mkPronForm Inst No NonPoss) - } --case p - }; --case gn - ClCondit => "" ; - ClImper => case (numGNum gn) of - {Sg => "будь" ++ masha.s ! (mkPronForm Inst No NonPoss); - Pl => "будьте" ++ masha.s ! (mkPronForm Inst No NonPoss) - }; - ClInfin => "быть" ++ masha.s ! (mkPronForm Inst No NonPoss) -}; -- case clf - asp = Imperfective ; - w = Act; - negBefore = True; - s2 = ""; - s3 = \\g,n => "" - } ; - - CompAP zloj ={ - s= \\clf,gn,p => case clf of { --- person is ignored ! - ClInfinit => "быть" ++ zloj.s ! AF Inst Animate (ASg Masc) ; - ClImper => case gn of - { (ASg _) => "будь" ++ zloj.s ! AF Inst Animate (ASg Masc); - APl => "будьте" ++ zloj.s ! AF Inst Animate APl - }; --- infinitive does not save GenNum, --- but indicative does for the sake of adjectival predication ! - ClIndic Present _ => zloj.s ! AF Nom Animate gn ; - ClIndic PastRus _ => case gn of - { (ASg Fem) => "была" ++ zloj.s! AF Nom Animate (ASg Fem); - (ASg Masc) => "был" ++ zloj.s! AF Nom Animate (ASg Masc); - (ASg Neut) => "был" ++ zloj.s! AF Nom Animate (ASg Neut); - APl => "были" ++ zloj.s! AF Nom Animate APl - }; - ClIndic Future _ => case gn of - { APl => case p of - { P3 => "будут" ++ zloj.s! AF Nom Animate APl; - P2 => "будете" ++ zloj.s! AF Nom Animate APl; - P1 => "будем" ++ zloj.s! AF Nom Animate APl - } ; - (ASg _) => case p of - {P3 => "будет" ++ zloj.s! AF Nom Animate (ASg (genGNum gn)); - P2 => "будешь"++ zloj.s! AF Nom Animate (ASg (genGNum gn)); - P1=> "буду" ++ zloj.s! AF Nom Animate (ASg (genGNum gn)) - } - }; - ClCondit => "" - } ; - - asp = Imperfective ; - w = Act; - negBefore = True; - s2 = ""; - s3 = \\g,n=> "" - } ; - - --- Verb phrases can also be formed from adjectives (" молод"), --- common nouns (" человек"), and noun phrases (" самый молодой"). --- The third rule is overgenerating: " каждый человек" has to be ruled out --- on semantic grounds. --- Note: we omit a dash "-" because it will cause problems with negation word order: --- "Я не - волшебник". Alternatively, we can consider verb-based VP and --- all the rest. - - CompAdv zloj = - { s= \\clf,gn,p => case clf of { - ClImper => case gn of - { ASg _ => "будь" ++ zloj.s; -- person is ignored ! - APl => "будьте" ++ zloj.s - }; - ClInfinit => "быть" ++ zloj.s; - ClIndic Present _ => zloj.s ; - ClIndic PastRus _ => case gn of - { (ASg Fem) => "была" ++ zloj.s; - (ASg Masc) => "был" ++ zloj.s; - (ASg Neut) => "было" ++ zloj.s; - APl => "были" ++ zloj.s - }; - ClIndic Future _ => case gn of - { (ASg _) => "будет" ++ zloj.s; - APl => "будут" ++ zloj.s - }; - ClCondit => "" - } ; - asp = Imperfective ; - w = Act; - s2 = ""; - negBefore = True; - s3 = \\g,n => "" - } ; - - - - UseComp comp = comp ; - --- CompAP ap = ap ; --- CompNP np = {s = \\_ => np.s ! Acc} ; --- CompAdv a = {s = \\_ => a.s} ; - - --- A simple verb can be made into a verb phrase with an empty complement. --- There are two versions, depending on if we want to negate the verb. --- N.B. negation is *not* a function applicable to a verb phrase, since --- double negations with "inte" are not grammatical. - - UseV se = - {s=\\clf,gn,p => se.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ; - asp = se.asp ; - w=Act; - s2 = ""; - negBefore = True; - s3 = table{_=> table{_ => ""}} - } ; - --- The rule for using transitive verbs is the complementization rule: - SlashV2a se = - {s = \\clf,gn,p => se.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ; - asp = se.asp ; - w = Act; - s2 = ""; - s3 = \\g,n => ""; - negBefore = True ; - sc = se.s2 ; - c = se.c - } ; - - ComplSlash se tu = - {s = \\clf,gn,p => se.s ! clf ! gn ! p - ++ se.sc ++ tu.s ! (mkPronForm se.c No NonPoss) ; - asp = se.asp ; - w = se.w; - s2 = se.s2; - s3 = se.s3; - negBefore = se.negBefore - } ; - - Slash2V3 dat tu = - let - tebepivo = dat.s2 ++ tu.s ! PF dat.c No NonPoss ++ dat.s4 ; - in - {s = \\clf,gn,p => dat.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ++ tebepivo ; - asp = dat.asp ; - w = Act; - negBefore = True; - s2 = ""; - s3 = \\g,n=> "" ; - sc = dat.s4 ; - c = dat.c2 - } ; - - Slash3V3 dat pivo = - let - tebepivo = dat.s4 ++ pivo.s ! PF dat.c2 Yes NonPoss - in - {s = \\clf,gn,p => dat.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ++ tebepivo ; - asp = dat.asp ; - w = Act; - negBefore = True; - s2 = ""; - s3 = \\g,n=> "" ; - sc = dat.s2 ; - c = dat.c - } ; - -{- - ComplV3 dat tu pivo = - let - tebepivo = dat.s2 ++ - tu.s ! PF dat.c No NonPoss ++ dat.s4 ++ pivo.s ! PF dat.c2 Yes NonPoss - in - {s = \\clf,gn,p => dat.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ++ tebepivo ; - asp = dat.asp ; - w = Act; - negBefore = True; - s2 = ""; - s3 = \\g,n=> "" - } ; - - - ReflV2 v = - { s = \\clf,gn,p => v.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ++ v.s2 ++ sebya!v.c; - asp = v.asp ; - w = Act; - negBefore = True; - s2 = ""; - s3 = \\g,n=> "" - } ; --} - --- To generate "сказал, что Иван гуляет" / "не сказал, что Иван гуляет": - ComplVS vidit tuUlubaeshsya = - {s = \\clf,gn,p => vidit.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) - ++ [", что"] ++ tuUlubaeshsya.s ; - asp = vidit.asp; - w = Act; - s2=""; - negBefore = True; - s3 = \\g,n => "" - } ; --- To generate "can walk"/"can't walk"; "tries to walk"/"does not try to walk": --- The contraction of "not" is not provided, since it would require changing --- the verb parameter type. - - ComplVV putatsya bezhat = - { s = \\clf,gn,p => putatsya.s ! (getActVerbForm clf (genGNum gn) - (numGNum gn) p) ++ bezhat.s!ClInfinit !gn!p ; - asp = putatsya.asp ; - w = Act; - negBefore = True; - s2 = ""; - s3 =\\g,n => "" - } ; - ComplVQ dat esliOnPridet = - {s = \\clf,gn,p => dat.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ++ esliOnPridet.s ! QDir ; - asp = dat.asp ; - w = Act; - negBefore = True; - s2 = ""; - s3 = \\g,n=> "" - } ; - ComplVA vuglyadet molodoj = - {s = \\clf,gn,p => vuglyadet.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ; - asp = vuglyadet.asp ; - w = Act; - negBefore = True; - s2 = ""; - s3 = \\g,n => molodoj.s!(AF Inst Animate (gNum g n)) - } ; - - SlashV2A obechat molodoj = - {s = \\clf,gn,p => - obechat.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ++ - molodoj.s ! AF Inst Inanimate (ASg Neut) ; - ---- AR 17/6; AF Inst tu.anim (pgNum tu.g tu.n) ; - asp = obechat.asp ; - w = Act; - negBefore = True; - s2 = ""; - s3 = \\g,n =>"" ; - sc = obechat.s2 ; - c = obechat.c - } ; - - AdvVP poet khorosho = - {s = \\clf,gn,p => poet.s ! clf!gn!p; s2 = poet.s2 ++ khorosho.s; s3 = poet.s3; - asp = poet.asp; w = poet.w; t = poet.t ; negBefore = poet.negBefore } ; - - AdVVP khorosho poet = - {s = \\clf,gn,p => poet.s ! clf!gn!p; s2 = khorosho.s ++ poet.s2; s3 = poet.s3; - asp = poet.asp; w = poet.w; t = poet.t ; negBefore = poet.negBefore } ; - -PassV2 se = - {s=\\clf,gn,p => se.s ! (getPassVerbForm clf (genGNum gn) (numGNum gn) p) ; - asp=se.asp; w=Pass; s2 = se.s2; - negBefore = True; - s3 = table{_=> table{_ => ""}} -}; - -} - |
