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
} ;
--
---- 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 = {
s : VVerb ;
a1 : Polarity => Str ; -- niet
n2 : Agr => Str ; -- dich
a2 : Str ; -- heute
isAux : Bool ; -- is a double infinitive
inf : Str ; -- sagen
inf : Str * Bool ; -- sagen (True = non-empty)
ext : Str -- dass sie kommt
} ;
@@ -492,7 +453,8 @@ param
} ;
a2 : Str = [] ;
isAux = isAux ; ----
inf,ext : Str = []
inf : Str * Bool = <[],False> ;
ext : Str = []
} ;
negation : Polarity => Str = table {
@@ -548,7 +510,7 @@ param
n2 = vp.n2 ;
a2 = vp.a2 ;
isAux = vp.isAux ; ----
inf = inf ++ vp.inf ;
inf = <inf ++ vp.inf.p1, True> ;
ext = vp.ext
} ;
@@ -578,7 +540,13 @@ param
neg = vp.a1 ! b ;
obj = vp.n2 ! agr ;
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 ;
inffin =
case <a,vp.isAux> of { --# notpresent
@@ -604,7 +572,7 @@ param
\\agr => vp.n2 ! agr ++ vp.a2,
vp.a1 ! Pos ++
if_then_Str isAux [] "te" ++ vp.s.s ! VInf,
vp.inf ++ vp.ext
vp.inf.p1 ++ vp.ext
> ;
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
verb = vp.s.s ! ps.p1 ;
inf = vp.inf ;
inf = vp.inf.p1 ;
in
verb ++ ps.p2 ++
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" ;
much_Det = mkDet "veel" "veel" Sg ;
must_VV = auxVV (mkV "moeten" "moest" "gemoete") ;
must_VV = auxVV (mkV "moeten" "moest" "gemoeten") ;
only_Predet = {s = \\_,_ => "slechts"} ;
no_Utt = ss "neen" ;