summaryrefslogtreecommitdiff
path: root/next-lib/src/russian/QuestionRus.gf
blob: e3506aef60097be9e5003908660d56b41062022b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
--# -path=.:../abstract:../common:../../prelude

concrete QuestionRus of Question = CatRus ** open ResRus, Prelude in {

  flags optimize=all_subs ; coding=utf8 ;

  lin

    QuestCl cl = {s = \\b,cf,_ => cl.s ! b ! cf  } ; 

    QuestVP kto spit =
    {s = \\b,clf,qf  => (predVerbPhrase kto spit).s!b!clf  } ;

    QuestSlash Kto yaGovoruO =
    let {  kom = Kto.s ! (mkPronForm yaGovoruO.c No NonPoss) ; o = yaGovoruO.s2 } in 
    {s =  \\b,clf,_ => o ++ kom ++ yaGovoruO.s ! b ! clf  
    } ;

    QuestIAdv kak tuPozhivaesh =
    {s = \\b,clf,q => kak.s ++ tuPozhivaesh.s!b!clf } ; 
 
    QuestIComp kak tuPozhivaesh =
    {s = \\b,clf,q => let ne = case b of {Neg => ""; Pos => []}
     in 
     kak.s ++ ne ++tuPozhivaesh.s! PF Nom No NonPoss } ; 


    PrepIP p ip = {s = p.s ++ ip.s ! PF Nom No NonPoss} ;

    AdvIP ip adv = {
      s = \\c => ip.s ! c ++ adv.s ;
       n = ip.n; p=ip.p; g=ip.g; anim=ip.anim; pron=ip.pron 
      } ;

    IdetCN kakoj okhotnik =
    {s = \\pf => case kakoj.c of {
       Nom => 
        kakoj.s ! AF (extCase pf) okhotnik.anim (gennum okhotnik.g kakoj.n) ++ 
         okhotnik.s ! NF kakoj.n (extCase pf) ; 
       _ => 
        kakoj.s ! AF (extCase pf) okhotnik.anim (gennum okhotnik.g kakoj.n) ++ 
        okhotnik.s ! NF kakoj.n kakoj.c };
     n = kakoj.n ; 
     p = P3 ;
     pron = False;
     g = kakoj.g ;
     anim = okhotnik.anim 
    } ;

-- 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 = 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} ;
}