summaryrefslogtreecommitdiff
path: root/next-lib/src/english/QuestionEng.gf
blob: 2fc8949326161c978cf608a8719f8c616bdf157e (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
concrete QuestionEng of Question = CatEng ** open ResEng, Prelude in {

  flags optimize=all_subs ;

  lin

    QuestCl cl = {
      s = \\t,a,p => 
            let cls = cl.s ! t ! a ! p 
            in table {
              QDir   => cls ! OQuest ;
              QIndir => "if" ++ cls ! ODir
              } ---- "whether" in ExtEng
      } ;

    QuestVP qp vp = 
      let cl = mkClause (qp.s ! Nom) (agrP3 qp.n) vp
      in {s = \\t,a,b,_ => cl.s ! t ! a ! b ! ODir} ;

    QuestSlash ip slash = 
      mkQuestion (ss (slash.c2 ++ ip.s ! Acc)) slash ;
      --- stranding in ExratEng 

    QuestIAdv iadv cl = mkQuestion iadv cl ;

    QuestIComp icomp np = 
      mkQuestion icomp (mkClause (np.s ! Nom) np.a (predAux auxBe)) ;


    PrepIP p ip = {s = p.s ++ ip.s ! Acc} ;

    AdvIP ip adv = {
      s = \\c => ip.s ! c ++ adv.s ;
      n = ip.n
      } ;
 
    IdetCN idet cn = {
      s = \\c => idet.s ++ cn.s ! idet.n ! c ; 
      n = idet.n
      } ;

    IdetIP idet = {
      s = \\c => idet.s ; 
      n = idet.n
      } ;

    IdetQuant idet num = {
      s = idet.s ! num.n ++ num.s ; 
      n = num.n
      } ;

    CompIAdv a = a ;
    CompIP p = ss (p.s ! Nom) ;

}