summaryrefslogtreecommitdiff
path: root/grammars/health/ExtraFre.gf
blob: 0d0bbfaadded134369f903f959442043e74a0538 (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
-- use this path to read the grammar from the same directory
--# -path=.:../abstract:../../prelude:../french:../romance

--1 Functions that are not in the API, but common in Russian 
--
-- Aarne Ranta, Janna Khegai 2003

resource ExtraFre = open PredicationFre, ResourceFre, Prelude, SyntaxFre, MorphoFre, ParadigmsFre in {

oper 
  NPMedicine: Type = NP ** {des : Bool};

  avoirBesoin1: CN -> VP = \doctor ->   
    PosVG ( PredTV (tvDir vAvoir) (DetNP nullDet (
           AppFun (funDe (nReg "besoin" Masc) ) 
           (IndefOneNP doctor)
         )
       )
    ) ;

  avoirBesoin: NPMedicine -> VP = \medicine ->   
    if_then_else VP medicine.des     

    (PosVG ( PredTV (tvDir vAvoir) (DetNP nullDet (
           AppFun (funPrep (nReg "besoin" Masc) "") 
           medicine
         )
       )
    )) 

    (PosVG ( PredTV (tvDir vAvoir) (DetNP nullDet (
           AppFun (funDe (nReg "besoin" Masc)) 
           medicine
         )
       )
    )) ;

  injuredBody: (Gender => Number => Str) -> NP -> CN -> S =
   \injured, patient, head -> 
    PredVP patient 
      {s = \\g,v => pronRefl patient.n patient.p ++ 
              verbEtre.s ! v ++
              injured ! g ! patient.n ++
              (DefOneNP head).s ! case2pform Acc;
       lock_VP = <> 
      } ;
  
  
  delDet : Det = mkDeterminer Sg (artDef Masc Sg genitive) 
    (artDef Fem Sg genitive)  ** {lock_Det = <>} ;
  desDet : Det = mkDeterminer1 Pl "des"  ** {lock_Det = <>} ;

  nullDet : Det = mkDeterminer1 Sg "" ** {lock_Det =<>} ;

---  tvAvoir = mkTransVerbDir (verbPres (conj3savoir ""))** {lock_TV = <> };

};