Files
gf-core/gf-book/examples/chapter9/ParadigmsIta.gf
2011-01-11 15:46:43 +00:00

48 lines
1.2 KiB
Plaintext

resource ParadigmsIta = GrammarIta [N,A,V] **
open ResIta, GrammarIta, Prelude in {
oper
masculine : Gender = Masc ;
feminine : Gender = Fem ;
accusative : Case = Acc ;
dative : Case = Dat ;
mkN = overload {
mkN : (vino : Str) -> N
= \n -> lin N (regNoun n) ;
mkN : (uomo, uomini : Str) -> Gender -> N
= \s,p,g -> lin N (mkNoun s p g) ;
} ;
mkA = overload {
mkA : (nero : Str) -> A
= \a -> lin A (regAdj a) ;
mkA : (buono,buona,buoni,buone : Str) -> Bool -> A
= \sm,sf,pm,pf,p -> lin A (mkAdj sm sf pm pf False) ;
} ;
preA : A -> A
= \a -> lin A {s = a.s ; isPre = True} ;
mkV = overload {
mkV : (finire : Str) -> V
= \v -> lin V (regVerb v) ;
mkV : (andare,vado,vadi,va,andiamo,andate,vanno,andato : Str) -> V
= \i,p1,p2,p3,p4,p5,p6,p -> lin V (mkVerb i p1 p2 p3 p4 p5 p6 p Avere) ;
} ;
essereV : V -> V
= \v -> lin V {s = v.s ; aux = Essere} ;
mkV2 = overload {
mkV2 : Str -> V2
= \s -> lin V2 (regVerb s ** {c = accusative}) ;
mkV2 : V -> V2
= \v -> lin V2 (v ** {c = accusative}) ;
mkV2 : V -> Case -> V2
= \v,c -> lin V2 (v ** {c = c}) ;
} ;
}