summaryrefslogtreecommitdiff
path: root/next-lib/src/italian/IdiomIta.gf
blob: bac30d741d9f250bd420553e3828b425765bb225 (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
concrete IdiomIta of Idiom = CatIta ** 
  open (P = ParamX), PhonoIta, MorphoIta, BeschIta, ParadigmsIta, Prelude in {

  flags optimize=all_subs ;

  lin
    ImpersCl vp = mkClause [] True (agrP3 Masc Sg) vp ;

    GenericCl vp = 
      mkClause [] True (agrP3 Masc Sg) (insertRefl vp) ;

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

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

    ExistNP np = 
      mkClause [] True (agrP3 np.a.g np.a.n) 
        (insertClit3 (elision "ci" "c'" "ci") 
          (insertComplement (\\_ => (np.s ! Nom).ton) 
            (predV copula))) ;

    ExistIP ip = {
      s = \\t,a,p,_ =>
        ip.s ! Nom ++ 
        (mkClause [] True (agrP3 ip.a.g ip.a.n) 
           (insertClit3 (elision "ci" "c'" "ci") 
              (predV copula))).s ! DDir ! t ! a ! p ! Indic
      } ;

    ProgrVP vpr =
      let vp = useVP vpr in 
      insertComplement 
        (\\agr => 
           let 
             clpr = <[],[],False> ; ----e pronArg agr.n agr.p vp.clAcc vp.clDat ;
             obj  = clpr.p2 ++ vp.comp ! agr ++ vp.ext ! Pos ---- pol
           in
           (vp.s ! VPGerund).inf ! (aagr agr.g agr.n) ++ clpr.p1 ++ obj
        )
        (predV (essereV (verboV (stare_16 "stare")))) ;

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

}