From 2db416a76cd2f72909da05551c102776ed1d64e8 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 2 Oct 2007 05:57:57 +0000 Subject: [PATCH] test for gfcc --- devel/koe/Koe.gf | 12 ++++++++++++ devel/koe/KoeFre.gf | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 devel/koe/Koe.gf create mode 100644 devel/koe/KoeFre.gf diff --git a/devel/koe/Koe.gf b/devel/koe/Koe.gf new file mode 100644 index 000000000..203367bcd --- /dev/null +++ b/devel/koe/Koe.gf @@ -0,0 +1,12 @@ +abstract Koe = { + +cat S ; NP ; VP ; + +fun + Pred : NP -> VP -> S ; + + He, She : NP ; + + Strong : VP ; + +} diff --git a/devel/koe/KoeFre.gf b/devel/koe/KoeFre.gf new file mode 100644 index 000000000..9841e5bc4 --- /dev/null +++ b/devel/koe/KoeFre.gf @@ -0,0 +1,37 @@ +concrete KoeFre of Koe = { + +param + Gen = Masc | Fem ; + Num = Sg | Pl ; + +oper + Agr : Type = {g : Gen ; n : Num} ; + + predA : Str -> {s : Agr => Str} = \adj -> + {s = \\a => copula a.n ++ regA adj a.g a.n} ; + + copula : Num -> Str = \n -> case n of { + Sg => "est" ; + Pl => "sont" + } ; + + regA : Str -> Gen -> Num -> Str = \s,g,n -> case of { + => s ; + => s + "s" ; + => s + "e"; + => s + "es" + } ; + +lincat + NP = {s : Str ; a : Agr} ; + VP = {s : Agr => Str} ; + +lin + Pred np vp = {s = np.s ++ vp.s ! np.a} ; + + He = {s = "il" ; a = {g = Masc ; n = Sg}} ; + She = {s = "elle" ; a = {g = Fem ; n = Sg}} ; + + Strong = predA "fort" ; + +}