forked from GitHub/gf-core
fixed double infinitives in Dutch
This commit is contained in:
@@ -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 ->
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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" ;
|
||||
|
||||
Reference in New Issue
Block a user