From 1379b1a8f6f92e455fb8cc13c4c38e627abe68e2 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 17 Jun 2008 06:55:02 +0000 Subject: [PATCH] some more 1.4 functions in russian --- lib/resource-1.4/Make.hs | 2 +- lib/resource-1.4/russian/NounRus.gf | 78 ++++++++++++++++++++++--- lib/resource-1.4/russian/QuestionRus.gf | 32 +++++----- lib/resource-1.4/russian/VerbRus.gf | 46 ++++++++++++--- 4 files changed, 125 insertions(+), 33 deletions(-) diff --git a/lib/resource-1.4/Make.hs b/lib/resource-1.4/Make.hs index cbef3c897..b4cda26ab 100644 --- a/lib/resource-1.4/Make.hs +++ b/lib/resource-1.4/Make.hs @@ -27,7 +27,7 @@ langs = [ ] -- languagues for which to compile Lang -langsLang = langs `except` ["Ara","Rus"] +langsLang = langs `except` ["Ara"] -- languages for which to compile Try langsAPI = langsLang `except` ["Cat","Hin","Tha"] diff --git a/lib/resource-1.4/russian/NounRus.gf b/lib/resource-1.4/russian/NounRus.gf index 8db19350d..7f4beb58c 100644 --- a/lib/resource-1.4/russian/NounRus.gf +++ b/lib/resource-1.4/russian/NounRus.gf @@ -55,24 +55,85 @@ concrete NounRus of Noun = CatRus ** open ResRus, Prelude, MorphoRus in { pron = np.pron } ; -{- - DetSg quant ord = { - s = \\af => quant.s!af ++ ord.s!af ; - n = Sg ; +-- 1.4 additions AR 17/6/2008 + + DetNP kazhduj = + let + g = Neut ; ---- + anim = Inanimate ; + in { + s = \\c => kazhduj.s ! AF (extCase c) anim (gNum g kazhduj.n) ; + n = kazhduj.n ; + p = P3 ; + pron = False; + g = case kazhduj.g of { PNoGen => (PGen g); _ => kazhduj.g }; + anim = anim + } ; + + DetQuantOrd quant num ord = { + s = \\af => quant.s !af ++ num.s! (caseAF af) ! (genAF af) ++ ord.s!af ; + n = num.n ; g = quant.g; c = quant.c } ; - DetPl quant num ord = { - s = \\af => quant.s !af ++ num.s! (caseAF af) ! (genAF af) ++ ord.s!af ; - n = num.n; ---- ?? AR 18/12/2007 + DetQuant quant num = { + s = \\af => quant.s !af ++ num.s! (caseAF af) ! (genAF af) ; + n = num.n ; g = quant.g; c = quant.c } ; --} + + DetArtOrd quant num ord = { + s = \\af => quant.s !af ++ num.s! (caseAF af) ! (genAF af) ++ ord.s!af ; + n = num.n ; + g = quant.g; + c = quant.c + } ; + + DetArtCard quant num = { + s = \\af => quant.s !af ++ num.s! (caseAF af) ! (genAF af) ; + n = num.n ; + g = quant.g; + c = quant.c + } ; + +-- MassDet = {s = \\_=>[] ; c=Nom; g = PNoGen; n = Sg} ; + + MassNP okhotnik = { + s = \\c => okhotnik.s ! Sg ! (extCase c) ; + n = Sg ; + p = P3 ; + pron = False; + g = PGen okhotnik.g ; + anim = okhotnik.anim + } ; + + DetArtSg kazhduj okhotnik = { + s = \\c => -- art case always Nom (AR 17/6/2008) + kazhduj.s ! AF (extCase c) okhotnik.anim (gNum okhotnik.g Sg) ++ + okhotnik.s ! Sg ! (extCase c) ; + n = Sg ; + p = P3 ; + pron = False; + g = case kazhduj.g of { PNoGen => (PGen okhotnik.g); _ => kazhduj.g }; + anim = okhotnik.anim + } ; + + DetArtPl kazhduj okhotnik = { + s = \\c => -- art case always Nom (AR 17/6/2008) + kazhduj.s ! AF (extCase c) okhotnik.anim (gNum okhotnik.g Pl) ++ + okhotnik.s ! Pl ! (extCase c) ; + n = Pl ; + p = P3 ; + pron = False; + g = case kazhduj.g of { PNoGen => (PGen okhotnik.g); _ => kazhduj.g }; + anim = okhotnik.anim + } ; PossPron p = {s = \\af => p.s ! mkPronForm (caseAF af) No (Poss (gNum (genAF af) (numAF af) )); c=Nom; g = PNoGen} ; + NumCard c = c ; NumSg = {s = \\_,_ => [] ; n = Sg} ; NumPl = {s = \\_,_ => [] ; n = Pl} ; @@ -90,7 +151,6 @@ concrete NounRus of Noun = CatRus ** open ResRus, Prelude, MorphoRus in { DefArt = {s = \\_=>[] ; c=Nom; g = PNoGen }; IndefArt = { s = \\_=>[] ; c=Nom; g = PNoGen }; --- MassDet = {s = \\_=>[] ; c=Nom; g = PNoGen; n = Sg} ; UseN sb = {s = \\n,c => sb.s ! SF n c ; diff --git a/lib/resource-1.4/russian/QuestionRus.gf b/lib/resource-1.4/russian/QuestionRus.gf index 977e50e52..46a33f4b8 100644 --- a/lib/resource-1.4/russian/QuestionRus.gf +++ b/lib/resource-1.4/russian/QuestionRus.gf @@ -47,26 +47,26 @@ concrete QuestionRus of Question = CatRus ** open ResRus, Prelude in { anim = okhotnik.anim } ; -{- - IDetCN kakoj pyat umeluj okhotnik = - {s = \\pf => case kakoj.c of { - Nom => - kakoj.s ! AF (extCase pf) okhotnik.anim (gNum okhotnik.g kakoj.n) ++ - pyat.s! (extCase pf) ! okhotnik.g ++ - umeluj.s!AF (extCase pf) okhotnik.anim (gNum okhotnik.g kakoj.n)++ - okhotnik.s ! kakoj.n ! (extCase pf) ; - _ => - kakoj.s ! AF (extCase pf) okhotnik.anim (gNum okhotnik.g kakoj.n) ++ - pyat.s! (extCase pf) ! okhotnik.g ++ - umeluj.s!AF (extCase pf) okhotnik.anim (gNum okhotnik.g kakoj.n)++ - okhotnik.s ! kakoj.n ! kakoj.c }; +-- 1.4 additions 17/6/2008 by AR + + IdetIP kakoj = let anim = Inanimate in + {s = \\pf => kakoj.s ! AF (extCase pf) anim (pgNum kakoj.g kakoj.n) ; n = kakoj.n ; p = P3 ; pron = False; - g = kakoj.g ; - anim = okhotnik.anim + g = kakoj.g ; + anim = anim + } ; + + IdetQuant kakoj pyat = -- okhotnik = + {s = \\af => + kakoj.s ! pyat.n ! af ++ + pyat.s ! caseAF af ! genAF af ; + n = pyat.n ; + g = kakoj.g ; + c = kakoj.c } ; --} CompIAdv a = a ; + CompIP ip = {s = ip.s ! PF Nom No NonPoss} ; } diff --git a/lib/resource-1.4/russian/VerbRus.gf b/lib/resource-1.4/russian/VerbRus.gf index 9b7d8131c..193800034 100644 --- a/lib/resource-1.4/russian/VerbRus.gf +++ b/lib/resource-1.4/russian/VerbRus.gf @@ -3,6 +3,8 @@ 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 = @@ -161,6 +163,34 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in { 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 @@ -225,19 +255,21 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in { s2 = ""; s3 = \\g,n => molodoj.s!(AF Inst Animate (gNum g n)) } ; -{- - SlashV2A obechat tu molodoj = - {s = \\clf,gn,p => obechat.s2++ + + SlashV2A obechat molodoj = + {s = \\clf,gn,p => obechat.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ++ - tu.s ! PF obechat.c No NonPoss ++ - molodoj.s!AF Inst tu.anim (pgNum tu.g tu.n) ; + 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 =>"" + 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 } ;