1
0
forked from GitHub/gf-rgl

implement contractions with prepositions also for interrogative pronouns and quants and dets

This commit is contained in:
Inari Listenmaa
2018-01-05 00:13:48 +02:00
parent b7ee620c8a
commit fb7e7050b9
3 changed files with 19 additions and 15 deletions

View File

@@ -21,10 +21,10 @@ concrete CatDut of Cat =
-- Question -- Question
QCl = {s : ResDut.Tense => Anteriority => Polarity => QForm => Str} ; QCl = {s : ResDut.Tense => Anteriority => Polarity => QForm => Str} ;
IP = {s : NPCase => Str ; n : Number} ; IP = MergesWithPrep ** {s : NPCase => Str ; n : Number} ; -- met wat -> waarmee
IComp = {s : Agr => Str} ; IComp = {s : Agr => Str} ;
IDet = {s : Gender => Str ; n : Number} ; IDet = MergesWithPrep ** {s : Gender => Str ; n : Number} ;
IQuant = {s : Number => Gender => Str} ; IQuant = MergesWithPrep ** {s : Number => Gender => Str} ;
-- Relative -- Relative

View File

@@ -60,19 +60,18 @@ concrete QuestionDut of Question = CatDut ** open ResDut in {
} ; } ;
PrepIP p ip = { PrepIP p ip = {
s = appPrep p (noMerge ** ip) s = appPrep p ip
} ; } ;
AdvIP ip adv = { AdvIP ip adv = ip ** {
s = \\c => ip.s ! c ++ adv.s ; s = \\c => ip.s ! c ++ adv.s ;
n = ip.n
} ; } ;
IdetCN idet cn = IdetCN idet cn =
let let
g = cn.g ; g = cn.g ;
n = idet.n n = idet.n
in { in noMerge ** {
s = \\c => idet.s ! g ++ cn.s ! Weak ! NF n Nom ; s = \\c => idet.s ! g ++ cn.s ! Weak ! NF n Nom ;
n = n n = n
} ; } ;
@@ -83,7 +82,9 @@ concrete QuestionDut of Question = CatDut ** open ResDut in {
n = idet.n n = idet.n
in { in {
s = \\_ => idet.s ! g ; s = \\_ => idet.s ! g ;
n = n n = n ;
mergesWithPrep = idet.mergesWithPrep ;
mergeForm = idet.mergeForm
} ; } ;
IdetQuant idet num = IdetQuant idet num =
@@ -91,7 +92,9 @@ concrete QuestionDut of Question = CatDut ** open ResDut in {
n = num.n n = num.n
in { in {
s = \\g => idet.s ! n ! g ++ num.s ; s = \\g => idet.s ! n ! g ++ num.s ;
n = n n = n ;
mergesWithPrep = idet.mergesWithPrep ;
mergeForm = idet.mergeForm
} ; } ;
AdvIAdv i a = {s = i.s ++ a.s} ; AdvIAdv i a = {s = i.s ++ a.s} ;

View File

@@ -44,7 +44,8 @@ concrete StructuralDut of Structural = CatDut, Prelude **
in8front_Prep = mkPrep "voor" ; in8front_Prep = mkPrep "voor" ;
i_Pron = mkPronoun "ik" "me" "mijn" "ik" "mij" "mijn" "mijne" Utr Sg P1 ; i_Pron = mkPronoun "ik" "me" "mijn" "ik" "mij" "mijn" "mijne" Utr Sg P1 ;
in_Prep = mkPrep "in" ; in_Prep = mkPrep "in" ;
it_Pron = mkPronoun "het" "het" "zijn" "het" "het" "zijn" "zijne" Neutr Sg P3 ; it_Pron = mkPronoun "het" "het" "zijn" "het" "het" "zijn" "zijne" Neutr Sg P3 **
{ mergesWithPrep = True ; mergeForm = "er" } ;
less_CAdv = X.mkCAdv "minder" "dan" ; less_CAdv = X.mkCAdv "minder" "dan" ;
many_Det = mkDet "veel" "veel" Pl ; many_Det = mkDet "veel" "veel" Pl ;
@@ -90,16 +91,16 @@ concrete StructuralDut of Structural = CatDut, Prelude **
we_Pron = mkPronoun "we" "ons" "ons" "wij" "ons" "onze" "onze" Utr Pl P3 ; ---- we_Pron = mkPronoun "we" "ons" "ons" "wij" "ons" "onze" "onze" Utr Pl P3 ; ----
whatSg_IP = {s = \\_ => "wat" ; n = Sg} ; whatSg_IP = {s = \\_ => "wat" ; n = Sg ; mergesWithPrep = True ; mergeForm = "waar"} ;
whatPl_IP = {s = \\_ => "wat" ; n = Pl} ; whatPl_IP = {s = \\_ => "wat" ; n = Pl ; mergesWithPrep = True ; mergeForm = "waar"} ;
when_IAdv = ss "wanneer" ; when_IAdv = ss "wanneer" ;
when_Subj = ss "als" ; when_Subj = ss "als" ;
where_IAdv = ss "waar" ; where_IAdv = ss "waar" ;
which_IQuant = mkPredet "welke" "welk" ; which_IQuant = mkPredet "welke" "welk" ** { mergesWithPrep = True ; mergeForm = "waar"} ;
whoSg_IP = {s = \\_ => "wie" ; n = Sg} ; whoSg_IP = noMerge ** {s = \\_ => "wie" ; n = Sg} ;
whoPl_IP = {s = \\_ => "wie" ; n = Pl} ; whoPl_IP = noMerge ** {s = \\_ => "wie" ; n = Pl} ;
why_IAdv = ss "waarom" ; why_IAdv = ss "waarom" ;
without_Prep = nomergePrep "zonder" ; -- doesn't combine without_Prep = nomergePrep "zonder" ; -- doesn't combine
with_Prep = mkPrep "met" ** { mergeForm = "mee" } ; with_Prep = mkPrep "met" ** { mergeForm = "mee" } ;