summaryrefslogtreecommitdiff
path: root/next-lib/src/finnish/AdjectiveFin.gf
blob: 737887d170fb2b657445e2e55c97bd93b95f2928 (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
concrete AdjectiveFin of Adjective = CatFin ** open ResFin, Prelude in {

  flags optimize=all_subs ; -- gfc size from 2864336 to 6786 - i.e. factor 422

  lin

    PositA  a = {
      s = \\_,nf => a.s ! Posit ! AN nf
      } ;
    ComparA a np = {
      s = \\isMod,af => case isMod of {
        True => np.s ! NPCase Part ++ a.s ! Compar ! AN af ;        -- minua isompi
        _    => a.s ! Compar ! AN af ++ "kuin" ++ np.s ! NPCase Nom -- isompi kuin minä
        } 
      } ;
    UseComparA a = {
      s = \\_,nf => a.s ! Compar ! AN nf ;
      } ;

-- $SuperlA$ belongs to determiner syntax in $Noun$.
    AdjOrd ord = {
      s = \\_ => ord.s
      } ;


    ComplA2 adj np = {
      s = \\isMod,af => 
          preOrPost isMod (appCompl True Pos adj.c2 np) (adj.s ! Posit ! AN af)
      } ;

    ReflA2 adj = {
      s = \\isMod,af => 
          preOrPost isMod 
            (appCompl True Pos adj.c2 (reflPron (agrP3 Sg))) (adj.s ! Posit ! AN af)
      } ;

    SentAP ap sc = {
      s = \\b,a => ap.s ! b ! a ++ sc.s
      } ;

    AdAP ada ap = {
      s = \\b,af => ada.s ++ ap.s ! b ! af
      } ;

    UseA2 a = {
      s = \\_,nf => a.s ! Posit ! AN nf
      } ;

}