1
0
forked from GitHub/gf-core

fixed double infinitives in Dutch

This commit is contained in:
aarne
2009-11-18 09:18:44 +00:00
parent a01faec4f9
commit 30a1b5c4d8
3 changed files with 14 additions and 46 deletions

View File

@@ -431,52 +431,13 @@ param
_ => AAttr _ => AAttr
} ; } ;
--
---- This is used when forming determiners that are like adjectives.
--
-- appAdj : Adjective -> Number => Gender => Case => Str = \adj ->
-- let
-- ad : GenNum -> Case -> Str = \gn,c ->
-- adj.s ! Posit ! AMod gn c
-- in
-- \\n,g,c => case n of {
-- Sg => ad (GSg g) c ;
-- _ => ad GPl c
-- } ;
--
---- This auxiliary gives the forms in each degree of adjectives.
--
-- adjForms : (x1,x2 : Str) -> AForm => Str = \teuer,teur ->
-- table {
-- APred => teuer ;
-- AMod (GSg Masc) c =>
-- caselist (teur+"er") (teur+"en") (teur+"em") (teur+"es") ! c ;
-- AMod (GSg Fem) c =>
-- caselist (teur+"e") (teur+"e") (teur+"er") (teur+"er") ! c ;
-- AMod (GSg Neut) c =>
-- caselist (teur+"es") (teur+"es") (teur+"em") (teur+"es") ! c ;
-- AMod GPl c =>
-- caselist (teur+"e") (teur+"e") (teur+"en") (teur+"er") ! c
-- } ;
--
---- For $Verb$.
--
-- VPC : Type = {
-- s : Bool => Agr => VPForm => { -- True = prefix glued to verb
-- fin : Str ; -- hat
-- inf : Str -- wollen
-- }
-- } ;
--
oper VP : Type = { oper VP : Type = {
s : VVerb ; s : VVerb ;
a1 : Polarity => Str ; -- niet a1 : Polarity => Str ; -- niet
n2 : Agr => Str ; -- dich n2 : Agr => Str ; -- dich
a2 : Str ; -- heute a2 : Str ; -- heute
isAux : Bool ; -- is a double infinitive isAux : Bool ; -- is a double infinitive
inf : Str ; -- sagen inf : Str * Bool ; -- sagen (True = non-empty)
ext : Str -- dass sie kommt ext : Str -- dass sie kommt
} ; } ;
@@ -492,7 +453,8 @@ param
} ; } ;
a2 : Str = [] ; a2 : Str = [] ;
isAux = isAux ; ---- isAux = isAux ; ----
inf,ext : Str = [] inf : Str * Bool = <[],False> ;
ext : Str = []
} ; } ;
negation : Polarity => Str = table { negation : Polarity => Str = table {
@@ -548,7 +510,7 @@ param
n2 = vp.n2 ; n2 = vp.n2 ;
a2 = vp.a2 ; a2 = vp.a2 ;
isAux = vp.isAux ; ---- isAux = vp.isAux ; ----
inf = inf ++ vp.inf ; inf = <inf ++ vp.inf.p1, True> ;
ext = vp.ext ext = vp.ext
} ; } ;
@@ -578,7 +540,13 @@ param
neg = vp.a1 ! b ; neg = vp.a1 ! b ;
obj = vp.n2 ! agr ; obj = vp.n2 ! agr ;
compl = obj ++ neg ++ vp.a2 ++ vp.s.prefix ; compl = obj ++ neg ++ vp.a2 ++ vp.s.prefix ;
inf = vp.inf ++ verb.p2 ; inf =
case <vp.isAux, vp.inf.p2, a> of { --# notpresent
<True,True,Anter> => vp.s.s ! VInf ++ vp.inf.p1 ; --# notpresent
_ => --# notpresent
vp.inf.p1 ++ verb.p2
} --# notpresent
;
extra = vp.ext ; extra = vp.ext ;
inffin = inffin =
case <a,vp.isAux> of { --# notpresent case <a,vp.isAux> of { --# notpresent
@@ -604,7 +572,7 @@ param
\\agr => vp.n2 ! agr ++ vp.a2, \\agr => vp.n2 ! agr ++ vp.a2,
vp.a1 ! Pos ++ vp.a1 ! Pos ++
if_then_Str isAux [] "te" ++ vp.s.s ! VInf, if_then_Str isAux [] "te" ++ vp.s.s ! VInf,
vp.inf ++ vp.ext vp.inf.p1 ++ vp.ext
> ; > ;
useInfVP : Bool -> VP -> Str = \isAux,vp -> useInfVP : Bool -> VP -> Str = \isAux,vp ->

View File

@@ -17,7 +17,7 @@ concrete SentenceDut of Sentence = CatDut ** open ResDut, Prelude in {
} ; } ;
agr = {g = Utr ; n = ps.p3 ; p = P2} ; ---- P2? -- g does not matter agr = {g = Utr ; n = ps.p3 ; p = P2} ; ---- P2? -- g does not matter
verb = vp.s.s ! ps.p1 ; verb = vp.s.s ! ps.p1 ;
inf = vp.inf ; inf = vp.inf.p1 ;
in in
verb ++ ps.p2 ++ verb ++ ps.p2 ++
vp.n2 ! agr ++ vp.a1 ! pol ++ vp.a2 ++ inf ++ vp.ext vp.n2 ! agr ++ vp.a1 ! pol ++ vp.a2 ++ inf ++ vp.ext

View File

@@ -51,7 +51,7 @@ concrete StructuralDut of Structural = CatDut, Prelude **
most_Predet = mkPredet "meeste" "meeste" ; most_Predet = mkPredet "meeste" "meeste" ;
much_Det = mkDet "veel" "veel" Sg ; much_Det = mkDet "veel" "veel" Sg ;
must_VV = auxVV (mkV "moeten" "moest" "gemoete") ; must_VV = auxVV (mkV "moeten" "moest" "gemoeten") ;
only_Predet = {s = \\_,_ => "slechts"} ; only_Predet = {s = \\_,_ => "slechts"} ;
no_Utt = ss "neen" ; no_Utt = ss "neen" ;