summaryrefslogtreecommitdiff
path: root/grammars/health/HealthFre.gf
blob: cc5bfaa33a057a602d898fa26646249524e8e0a9 (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
73
74
75
76
77
78
79
80
81
-- UTF8 version currently differs from non-UTF8 !!!

-- use this path to read the grammar from the same directory
--# -path=.:../newresource/abstract:../prelude:../newresource/french:../newresource/romance

concrete HealthFre of Health = open PredicationFre, ResourceFre, Prelude, SyntaxFre, MorphoFre, ExtraFre in {

-- 1. still using "à" instead of "aux" in PainIn operations 
-- because of the UTF8 problem with non-utf8 resource grammars! 

flags 
  coding=utf8 ;
  startcat=Phr ; lexer=text ; parser=chart ; unlexer=text ;

lincat 
  Patient = NP ;
  Body = CN ;
  Symptom = NP ;
  SymptomDegree = AP ;
  Prop = S ;
  Illness = CN ; 
  Condition = VP ;
  Specialization = CN ;
  Medicine  = CN ;

lin 
   And x y = ConjS AndConj (TwoS x y) ;  

  ShePatient = SheNP ;
  TheyPatient = TheyNP ;
  IPatientHe = INP ;
                                               
  Influenza = mkCNomReg "grippe" Fem ** {lock_CN = <> }; 
  Malaria =  mkCNomReg "malaria" Fem ** {lock_CN = <> }; 
  HaveIllness patient illness = predV2 tvAvoir patient (DefOneNP illness) ;  
  Complain = predV2 tvAvoir ;

  BeInCondition = PredVP ; 
  CatchCold = PosVG (PredTV tvAvoir (IndefOneNP (mkCNomReg "rhume" Masc ** {lock_CN = <> })));
  Pregnant = PosVG (PredAP (mkAdjective (adjJeune "enceinte") adjPost** {lock_AP = <> })) ;

  High = AdjP1 (mkAdjReg "élevé" adjPost ** {lock_Adj1 = <> }) ;
  Terrible = AdjP1 ((mkAdjective (mkAdj "terrible" "terrible" "terrible" "terrible")  adjPre ** {lock_Adj1 = <> })** {lock_AP = <> });

  Head = mkCNomReg "tête" Fem ** {lock_CN = <> };
  Leg = mkCNomReg "jambe" Fem ** {lock_CN = <> };
  Dentist  = mkCNomReg "dentiste" Masc ** {lock_CN = <> } ;
  PainKiller = mkCNomReg "calmant" Masc ** {lock_CN = <> };

  NeedDoctor patient doctor = PredVP patient (avoirBesoin doctor ** {lock_VP = <> }) ;
  NeedMedicine patient medicine = PredVP patient (avoirBesoin medicine** {lock_VP = <> }) ;
  TakeMedicine patient medicine = predV2 (mkTransVerbDir (verbPres 
              (conj3prendre "prendre")) ** {lock_TV = <> } ) patient (IndefOneNP medicine) ;

  FeverMod degree = DetNP (delDet ** {lock_Det = <> }) (ModAdj degree (mkCNomReg "fièvre" Fem** {lock_CN = <> })) ;
  Fever = DetNP (delDet ** {lock_Det = <> }) (mkCNomReg "fièvre" Fem ** {lock_CN = <> }) ;

  PainInMod patient head degree = predV2 tvAvoir patient 
    (DetNP (nullDet ** {lock_Det = <> }) 
      ( ModAdj degree
        (
          AppFun ((mkCNomReg "mal" Masc ** {lock_CN = <> })** complementCas Dat** {lock_Fun = <> }) 
          (defNounPhrase patient.n head ** {lock_NP = <> })
        )
      )
    ) ;
              
  PainIn patient head = predV2 tvAvoir patient
     (DetNP (nullDet ** {lock_Det = <> }) 
      (
        AppFun 
          ((mkCNomReg "mal" Masc ** {lock_CN = <> })** complementCas Dat ** {lock_Fun = <> }) 
          (defNounPhrase patient.n head ** {lock_NP = <> })
      )
     ) ;

  Injured = injuredBody (adjReg "blessé") ;
  Broken = injuredBody (adjReg "cassé") ;

};