summaryrefslogtreecommitdiff
path: root/next-lib/src/french/IdiomFre.gf
blob: bb38c8774eb112669552f25a657b94d5cefb3df1 (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
concrete IdiomFre of Idiom = CatFre ** 
  open (P = ParamX), PhonoFre, MorphoFre, ParadigmsFre, Prelude in {

  flags optimize=all_subs ;

  lin
    ImpersCl vp = mkClause "il" True (agrP3 Masc Sg) vp ;
    GenericCl vp = mkClause "on" True (agrP3 Masc Sg) vp ;

    ExistNP np = 
      mkClause "il" True (agrP3 Masc Sg)
        (insertClit2 "y" (insertComplement (\\_ => np.s ! Ton Acc) (predV avoir_V))) ;

    ExistIP ip = {
      s = \\t,a,p,_ => 
        ip.s ! Nom ++ 
        (mkClause "il" True (agrP3 Masc Sg)
              (insertClit2 "y" (predV avoir_V))).s 
           ! DDir ! t ! a ! p ! Indic ---- DInv
      } ;

    CleftNP np rs = mkClause elisCe True (agrP3 Masc Sg) 
      (insertComplement (\\_ => rs.s ! Indic ! np.a)
        (insertComplement (\\_ => np.s ! Ton rs.c) (predV copula))) ;

    CleftAdv ad s = mkClause elisCe True (agrP3 Masc Sg) 
      (insertComplement (\\_ => conjThat ++ s.s ! Indic)
        (insertComplement (\\_ => ad.s) (predV copula))) ;


    ProgrVP vp = 
      insertComplement 
        (\\a => "en" ++ "train" ++ elisDe ++ infVP vp a) 
        (predV copula) ;

    ImpPl1 vpr = let vp = useVP vpr in {s =
      (mkImperative False P1 vp).s ! Pos ! {n = Pl ; g = Masc} --- fem
      } ;

  oper
    elisCe = elision "c" ;

}