summaryrefslogtreecommitdiff
path: root/next-lib/src/bulgarian/QuestionBul.gf
blob: 9a02bf3336762fd77d8bed806ef452707023a0a9 (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
concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in {
  flags coding=cp1251 ;


  flags optimize=all_subs ;

  lin

    QuestCl cl = {
      s = \\t,a,p => 
            let cls = cl.s ! t ! a ! p 
            in table {
              QDir   => cls ! Quest ;
              QIndir => "àêî" ++ cls ! Main
              } ---- "whether" in ExtEng
      } ;
      
    QuestVP ip vp = {
      s = \\t,a,b,qform =>
             (mkClause (ip.s ! RSubj ! qform) {gn = ip.gn ; p = P3} vp).s ! t ! a ! b ! Main
      } ;

    QuestSlash ip slash = 
      mkQuestion {s = \\qform => slash.c2.s ++ case slash.c2.c of {Dat=>"íà";_=>[]} ++ ip.s ! (RObj slash.c2.c) ! qform}
                 {s = slash.s ! (agrP3 ip.gn) } ;

    QuestIAdv iadv cl = mkQuestion iadv cl ;

    QuestIComp icomp np = 
      mkQuestion icomp (mkClause (np.s ! RSubj) np.a (predV verbBe)) ;

    PrepIP p ip = {s = \\qform => p.s ++ case p.c of {Dat=>"íà";_=>[]} ++ ip.s ! RSubj ! qform} ;

    AdvIP ip adv = {
      s = \\role,qform => ip.s ! role ! qform ++ adv.s ;
      gn = ip.gn
      } ;

    CompIAdv a = a ;

    IdetCN idet cn = {
      s = \\_,qform => let nf = case <idet.n, idet.nonEmpty> of {
                                  <Pl,True> => NFPlCount ;
                                   _         => NF idet.n Indef
                                }
                       in idet.s ! cn.g ! qform ++ cn.s ! nf ;
      gn = gennum cn.g idet.n
      } ;

    IdetIP idet = {
      s  = \\_ => idet.s ! DNeut ;
      gn = gennum DNeut idet.n
      } ;

    IdetQuant iquant num = {
      s = \\g,qform => iquant.s ! gennum g num.n ! qform ++
                       num.s ! dgenderSpecies g Indef RSubj ;
      n = num.n ;
      nonEmpty = num.nonEmpty
      } ;

    CompIP ip = {s = ip.s ! RSubj} ;
}